diff --git a/.gitignore b/.gitignore index 46a8067531..688df229b3 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ **/*.l[ao] **/*.lai **/*.map -**/*.mo **/*.o **/*.plog @@ -24,6 +23,7 @@ libtool pathnames.h ChangeLog PVS-Studio.cfg +stamp-* uncrustify.files docs/*.man diff --git a/.hgignore b/.hgignore index c681989e70..c278fa4e4d 100644 --- a/.hgignore +++ b/.hgignore @@ -3,7 +3,6 @@ \.l[ao]$ \.lai$ \.map$ -\.mo$ \.o$ \.plog$ @@ -21,6 +20,7 @@ Makefile$ ^ChangeLog$ ^PVS-Studio\.cfg$ +^stamp- ^uncrustify\.files$ ^docs/.*\.man$ ^docs/.*\.mdoc$ diff --git a/INSTALL.md b/INSTALL.md index 9946bd08b9..34f60f6b63 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -138,9 +138,9 @@ Defaults are listed in brackets after the description. The directory to be used for sudo-specific files that do not survive a system reboot. This is typically where the time stamp directory is located. By default, configure - will choose from the following list: - /run/sudo /var/run/sudo, /var/db/sudo, /var/lib/sudo, - /var/adm/sudo, /usr/adm/sudo + will choose from the following list: /run/sudo /var/run/sudo, + /var/db/sudo, /var/lib/sudo, /var/adm/sudo, /usr/adm/sudo. + This directory should be cleared when the system reboots. On systems that lack /run or /var/run, the default rundir and vardir may be the same. In this case, only the ts directory @@ -150,8 +150,9 @@ Defaults are listed in brackets after the description. The directory to be used for sudo-specific files that survive a system reboot. This is typically where the lecture status directory is stored. By default, configure will choose - from the following list: - /var/db/sudo, /var/lib/sudo, /var/adm/sudo, /usr/adm/sudo + from the following list: /var/db/sudo, /var/lib/sudo, + /var/adm/sudo, /usr/adm/sudo. + This directory should **not** be cleared when the system boots. --with-relaydir=DIR @@ -165,8 +166,9 @@ Defaults are listed in brackets after the description. is only used when sanitizing the TZ environment variable to allow for fully-qualified paths in TZ. By default, configure will look for an existing "zoneinfo" directory - in the following locations: - /usr/share /usr/share/lib /usr/lib /etc + in the following locations: /usr/share, /usr/share/lib, + /usr/lib, /etc. + If no zoneinfo directory is found, the TZ variable may not contain a fully-qualified path. @@ -332,6 +334,17 @@ Defaults are listed in brackets after the description. via the user's PATH) and the default libtool that comes with sudo. + --with-aix-soname=svr4 + Starting with version 1.9.13, sudo will build AIX-style + shared libraries and dynamic shared objects by default + instead of svr4-style.. This means that the default sudo + plugins are now .a (archive) files that contain a .so shared + object file instead of bare .so files. This was done to + improve compatibility with the AIX Freeware ecosystem, + specifically, the AIX Freeware build of OpenSSL. To restore + the old, pre-1.9.13 behavior, run configure using the + --with-aix-soname=svr4 option. + ### Optional features: --disable-root-mailer @@ -753,7 +766,7 @@ Defaults are listed in brackets after the description. the standard output. This value may overridden at run-time in the sudo.conf file. - --with-badpass-message="BAD PASSWORD MESSAGE" + --with-badpass-message="MESSAGE" Message that is displayed if a user enters an incorrect password. The default is "Sorry, try again." unless insults are turned on. Sudoers option: badpass_message @@ -910,7 +923,7 @@ Defaults are listed in brackets after the description. the command they are trying is not listed in their sudoers file entry. Sudoers option: mail_no_perms - --with-mailsubject="SUBJECT OF MAIL" + --with-mailsubject="SUBJECT" Subject of the mail sent to the "mailto" user. The token "%h" will expand to the hostname of the machine. The default value is "*** SECURITY information for %h ***". @@ -921,7 +934,7 @@ Defaults are listed in brackets after the description. This should go to a sysadmin at your site. The default value is "root". Sudoers option: mailto - --with-passprompt="PASSWORD PROMPT" + --with-passprompt="PROMPT" Default prompt to use when asking for a password; can be overridden via the -p option and the SUDO_PROMPT environment variable. Supports the "%H", "%h", "%U", and "%u" escapes as documented in the sudo diff --git a/LICENSE.md b/LICENSE.md index 07c91799da..32d6f2daac 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ Sudo is distributed under the following license: - Copyright (c) 1994-1996, 1998-2022 + Copyright (c) 1994-1996, 1998-2023 Todd C. Miller Permission to use, copy, modify, and distribute this software for any @@ -148,14 +148,15 @@ following license: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - 3. Neither the name of the University nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE @@ -176,6 +177,7 @@ The file fnmatch.c bears the following license: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright @@ -207,11 +209,12 @@ The file getopt_long.c bears the following license: Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED @@ -244,9 +247,9 @@ The file inet_pton.c bears the following license: The file arc4random.c bears the following license: - Copyright (c) 1996, David Mazieres - Copyright (c) 2008, Damien Miller - Copyright (c) 2013, Markus Friedl + Copyright (c) 1996, David Mazieres + Copyright (c) 2008, Damien Miller + Copyright (c) 2013, Markus Friedl Copyright (c) 2014, Theo de Raadt Permission to use, copy, modify, and distribute this software for any @@ -279,7 +282,7 @@ The file arc4random_uniform.c bears the following license: The file getentropy.c bears the following license: - Copyright (c) 2014 Theo de Raadt + Copyright (c) 2014 Theo de Raadt Copyright (c) 2014 Bob Beck Permission to use, copy, modify, and distribute this software for any @@ -306,13 +309,14 @@ The embedded copy of zlib bears the following license: including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + 3. This notice may not be removed or altered from any source + distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu diff --git a/MANIFEST b/MANIFEST index ed456e6f26..be7dad1bf1 100644 --- a/MANIFEST +++ b/MANIFEST @@ -156,20 +156,30 @@ lib/iolog/regress/corpus/seed/log_json/pkg_add.json lib/iolog/regress/corpus/seed/log_json/pkg_delete.json lib/iolog/regress/corpus/seed/log_json/printenv.json lib/iolog/regress/corpus/seed/log_legacy/id.log +lib/iolog/regress/corpus/seed/log_legacy/less.log lib/iolog/regress/corpus/seed/log_legacy/ls.log lib/iolog/regress/corpus/seed/log_legacy/mailq.log lib/iolog/regress/corpus/seed/log_legacy/make.log lib/iolog/regress/corpus/seed/log_legacy/pkg_add.log lib/iolog/regress/corpus/seed/log_legacy/pkg_delete.log lib/iolog/regress/corpus/seed/log_legacy/printenv.log +lib/iolog/regress/corpus/seed/log_legacy/smtpctl.log +lib/iolog/regress/corpus/seed/log_legacy/vi.log lib/iolog/regress/corpus/seed/timing/timing.1 lib/iolog/regress/corpus/seed/timing/timing.2 lib/iolog/regress/corpus/seed/timing/timing.3 lib/iolog/regress/corpus/seed/timing/timing.4 +lib/iolog/regress/corpus/seed/timing/timing.5 +lib/iolog/regress/corpus/seed/timing/timing.6 +lib/iolog/regress/corpus/seed/timing/timing.7 +lib/iolog/regress/corpus/seed/timing/timing.8 +lib/iolog/regress/corpus/seed/timing/timing.9 lib/iolog/regress/fuzz/fuzz_iolog_json.c lib/iolog/regress/fuzz/fuzz_iolog_json.dict lib/iolog/regress/fuzz/fuzz_iolog_legacy.c +lib/iolog/regress/fuzz/fuzz_iolog_legacy.dict lib/iolog/regress/fuzz/fuzz_iolog_timing.c +lib/iolog/regress/fuzz/fuzz_iolog_timing.dict lib/iolog/regress/host_port/host_port_test.c lib/iolog/regress/iolog_filter/check_iolog_filter.c lib/iolog/regress/iolog_filter/test1/log @@ -192,6 +202,7 @@ lib/iolog/regress/iolog_json/test1.in lib/iolog/regress/iolog_json/test2.in lib/iolog/regress/iolog_json/test2.out.ok lib/iolog/regress/iolog_json/test3.in +lib/iolog/regress/iolog_json/test3.out.ok lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c lib/iolog/regress/iolog_path/check_iolog_path.c lib/iolog/regress/iolog_path/data @@ -236,6 +247,7 @@ lib/util/getusershell.c lib/util/gidlist.c lib/util/glob.c lib/util/gmtime_r.c +lib/util/hexchar.c lib/util/inet_ntop.c lib/util/inet_pton.c lib/util/isblank.c @@ -280,11 +292,14 @@ lib/util/regress/glob/files lib/util/regress/glob/globtest.c lib/util/regress/glob/globtest.in lib/util/regress/harness.in +lib/util/regress/hexchar/hexchar_test.c +lib/util/regress/json/json_test.c lib/util/regress/mktemp/mktemp_test.c lib/util/regress/multiarch/multiarch_test.c lib/util/regress/open_parent_dir/open_parent_dir_test.c lib/util/regress/parse_gids/parse_gids_test.c lib/util/regress/progname/progname_test.c +lib/util/regress/regex/regex_test.c lib/util/regress/strsig/strsig_test.c lib/util/regress/strsplit/strsplit_test.c lib/util/regress/strtofoo/strtobool_test.c @@ -308,9 +323,6 @@ lib/util/regress/sudo_conf/test6.in lib/util/regress/sudo_conf/test6.out.ok lib/util/regress/sudo_conf/test7.in lib/util/regress/sudo_conf/test7.out.ok -lib/util/regress/sudo_conf/test8.err.ok -lib/util/regress/sudo_conf/test8.in -lib/util/regress/sudo_conf/test8.out.ok lib/util/regress/sudo_parseln/parseln_test.c lib/util/regress/sudo_parseln/test1.in lib/util/regress/sudo_parseln/test1.out.ok @@ -425,14 +437,21 @@ m4/ax_check_link_flag.m4 m4/ax_func_getaddrinfo.m4 m4/ax_func_snprintf.m4 m4/ax_prog_cc_for_build.m4 +m4/gettext.m4 +m4/hardening.m4 +m4/ldap.m4 m4/libtool.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4 +m4/openssl.m4 +m4/pie.m4 m4/python.m4 m4/runlog.m4 +m4/sanitizer.m4 m4/sudo.m4 +m4/visibility.m4 pathnames.h.in plugins/audit_json/Makefile.in plugins/audit_json/audit_json.c @@ -456,7 +475,6 @@ plugins/python/pyhelpers.h plugins/python/pyhelpers_cpychecker.h plugins/python/python_baseplugin.c plugins/python/python_convmessage.c -plugins/python/python_importblocker.c plugins/python/python_loghandler.c plugins/python/python_plugin.exp plugins/python/python_plugin_approval.c @@ -544,8 +562,6 @@ plugins/python/regress/testdata/check_loading_succeeds_with_missing_classname.st plugins/python/regress/testdata/check_multiple_approval_plugin_and_arguments.stderr plugins/python/regress/testdata/check_multiple_approval_plugin_and_arguments.stdout plugins/python/regress/testdata/check_python_plugins_do_not_affect_each_other.stdout -plugins/python/regress/testdata/sudo.conf.developer_mode -plugins/python/regress/testdata/sudo.conf.normal_mode plugins/python/regress/testhelpers.c plugins/python/regress/testhelpers.h plugins/python/sudo_python_debug.c @@ -617,7 +633,6 @@ plugins/sudoers/gram.c plugins/sudoers/gram.h plugins/sudoers/gram.y plugins/sudoers/group_plugin.c -plugins/sudoers/hexchar.c plugins/sudoers/ins_2001.h plugins/sudoers/ins_classic.h plugins/sudoers/ins_csops.h @@ -679,6 +694,8 @@ plugins/sudoers/po/it.mo plugins/sudoers/po/it.po plugins/sudoers/po/ja.mo plugins/sudoers/po/ja.po +plugins/sudoers/po/ka.mo +plugins/sudoers/po/ka.po plugins/sudoers/po/ko.mo plugins/sudoers/po/ko.po plugins/sudoers/po/lt.mo @@ -724,6 +741,10 @@ plugins/sudoers/pwutil_impl.c plugins/sudoers/redblack.c plugins/sudoers/redblack.h plugins/sudoers/regress/check_symbols/check_symbols.c +plugins/sudoers/regress/corpus/seed/ldif/invalid_b64.ldif +plugins/sudoers/regress/corpus/seed/ldif/pr196.ldif +plugins/sudoers/regress/corpus/seed/ldif/sample.ldif +plugins/sudoers/regress/corpus/seed/ldif/valid_b64.ldif plugins/sudoers/regress/corpus/seed/policy/policy.1 plugins/sudoers/regress/corpus/seed/policy/policy.2 plugins/sudoers/regress/corpus/seed/policy/policy.3 @@ -804,8 +825,12 @@ plugins/sudoers/regress/cvtsudoers/test37.out.ok plugins/sudoers/regress/cvtsudoers/test37.sh plugins/sudoers/regress/cvtsudoers/test38.out.ok plugins/sudoers/regress/cvtsudoers/test38.sh +plugins/sudoers/regress/cvtsudoers/test39.out.ok +plugins/sudoers/regress/cvtsudoers/test39.sh plugins/sudoers/regress/cvtsudoers/test4.out.ok plugins/sudoers/regress/cvtsudoers/test4.sh +plugins/sudoers/regress/cvtsudoers/test40.out.ok +plugins/sudoers/regress/cvtsudoers/test40.sh plugins/sudoers/regress/cvtsudoers/test5.out.ok plugins/sudoers/regress/cvtsudoers/test5.sh plugins/sudoers/regress/cvtsudoers/test6.out.ok @@ -837,7 +862,6 @@ plugins/sudoers/regress/parser/check_digest.c plugins/sudoers/regress/parser/check_digest.out.ok plugins/sudoers/regress/parser/check_fill.c plugins/sudoers/regress/parser/check_gentime.c -plugins/sudoers/regress/parser/check_hexchar.c plugins/sudoers/regress/serialize_list/check_serialize_list.c plugins/sudoers/regress/starttime/check_starttime.c plugins/sudoers/regress/sudoers/test1.in @@ -1167,6 +1191,8 @@ po/sk.mo po/sk.po po/sl.mo po/sl.po +po/sq.mo +po/sq.po po/sr.mo po/sr.po po/sudo.pot diff --git a/Makefile.in b/Makefile.in index c4055c3be1..0b70609cb5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ # # SPDX-License-Identifier: ISC # -# Copyright (c) 2010-2015, 2017-2021 Todd C. Miller +# Copyright (c) 2010-2015, 2017-2022 Todd C. Miller # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -47,7 +47,6 @@ install_uid = 0 install_gid = 0 # sudoers owner and mode for package building -sudoersdir = $(sysconfdir) sudoers_uid = @SUDOERS_UID@ sudoers_gid = @SUDOERS_GID@ sudoers_mode = @SUDOERS_MODE@ @@ -71,7 +70,6 @@ LIBTOOL_DEPS = @LIBTOOL_DEPS@ SHELL = @SHELL@ EGREP = @EGREP@ -GREP = @GREP@ SED = @SED@ INSTALL = $(SHELL) $(scriptdir)/install-sh -c @@ -119,7 +117,7 @@ check check-verbose check-fuzzer fuzz pre-install: config.status done uncrustify.files: Makefile - $(GREP) '\.[ch]$$' $(top_srcdir)/MANIFEST | $(EGREP) -v '(/zlib/|/(arc4random|arc4random_uniform|chacha_private|charclass|fnmatch|getaddrinfo|getcwd|getdate|getentropy|getopt|getopt_long|glob|gram|inet_ntop|inet_pton|log_server.pb-c|mktemp|pw_dup|reallocarray|mktemp_test|protobuf-c|snprintf|stdbool|strlcat|strlcpy|sudo_queue|toke)\.[ch]$$)' > uncrustify.files + $(EGREP) '\.[ch]$$' $(top_srcdir)/MANIFEST | $(EGREP) -v '(/zlib/|/(arc4random|arc4random_uniform|chacha_private|charclass|fnmatch|getaddrinfo|getcwd|getdate|getentropy|getopt|getopt_long|glob|gram|inet_ntop|inet_pton|log_server.pb-c|mktemp|pw_dup|reallocarray|mktemp_test|protobuf-c|snprintf|stdbool|strlcat|strlcpy|sudo_queue|toke)\.[ch]$$)' > uncrustify.files reformat: uncrustify.files ( cd $(top_srcdir) && uncrustify -c etc/uncrustify.cfg --replace --no-backup -F $(top_builddir)/uncrustify.files ) @@ -234,16 +232,28 @@ depend: siglist.c signame.c --file $(top_builddir)/plugins/python/Makefile \ --file $(top_builddir)/src/Makefile +# Only try to build ChangeLog from a repo checkout, not a release tarball. +# The CODEOWNERS file is not present in the release tarball. ChangeLog: - if test -d $(srcdir)/.hg; then \ - if hg log -R $(srcdir) --template=changelog -r "sort(branch(.) or follow(), -date)" > $@.tmp; then \ - mv -f $@.tmp $(srcdir)/$@; \ - else \ - rm -f $@.tmp; \ + if test -f $(srcdir)/docs/CODEOWNERS; then \ + if test -d $(srcdir)/.hg && hg -R $(srcdir) identify -ibt >stamp-$@.tmp 2>&1; then \ + cmp stamp-$@.tmp stamp-$@ >/dev/null 2>&1 || { \ + mv -f stamp-$@.tmp stamp-$@; \ + if hg log -R $(srcdir) --template=changelog -r "sort(branch(.) or follow(), -date)" > $@.tmp; then \ + mv -f $@.tmp $(srcdir)/$@; \ + fi; \ + }; \ + elif test -d $(srcdir)/.git && git --git-dir $(srcdir)/.git describe --tags >stamp-$@.tmp 2>&1; then \ + cmp stamp-$@.tmp stamp-$@ >/dev/null 2>&1 || { \ + mv -f stamp-$@.tmp stamp-$@; \ + if $(scriptdir)/log2cl.pl -R $(srcdir)/.git > $@.tmp; then \ + mv -f $@.tmp $(srcdir)/$@; \ + fi; \ + }; \ fi; \ - elif test -d $(srcdir)/.git; then \ - $(scriptdir)/log2cl.pl -R $(srcdir)/.git > $(srcdir)/$@; \ - elif test ! -f $(srcdir)/$@; then \ + rm -f $@.tmp stamp-$@.tmp; \ + fi + if test ! -f $(srcdir)/$@; then \ echo "ChangeLog data not available" > $(srcdir)/$@; \ fi @@ -374,10 +384,9 @@ check-dist: update-pot compile-po mkdefaults dist: check-dist force-dist force-dist: ChangeLog $(srcdir)/MANIFEST - cd $(top_srcdir) && \ - pax -w -x ustar -s '/^/$(PACKAGE_TARNAME)-$(VERSION)\//' \ - -f ../$(PACKAGE_TARNAME)-$(VERSION).tar \ - `$(SED) 's/[ ].*//' $(srcdir)/MANIFEST` && \ + cd $(top_srcdir) && $(SED) 's/[ ].*//' MANIFEST | \ + pax -w -x ustar -f ../$(PACKAGE_TARNAME)-$(VERSION).tar \ + -s '/^/$(PACKAGE_TARNAME)-$(VERSION)\//' && \ gzip -9f ../$(PACKAGE_TARNAME)-$(VERSION).tar && \ ls -l ../$(PACKAGE_TARNAME)-$(VERSION).tar.gz @@ -399,7 +408,6 @@ package: @PPFILES@ docdir=$(docdir) \ exampledir=$(exampledir) \ sysconfdir=$(sysconfdir) \ - sudoersdir=$(sudoersdir) \ sudoers_uid=$(sudoers_uid) \ sudoers_gid=$(sudoers_gid) \ sudoers_mode=$(sudoers_mode) \ diff --git a/NEWS b/NEWS index 31f0ed8ebc..6390fcd46b 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,107 @@ +What's new in Sudo 1.9.13 + + * Fixed a bug running relative commands via sudo when "log_subcmds" + is enabled. GitHub issue #194. + + * Fixed a signal handling bug when running sudo commands in a shell + script. Signals were not being forwarded to the command when + the sudo process was not run in its own process group. + + * Fixed a bug in cvtsudoers' LDIF parsing when the file ends without + a newline and a backslash is the last character of the file. + + * Fixed a potential use-after-free bug with cvtsudoers filtering. + GitHub issue #198. + + * Added a reminder to the default lecture that the password will + not echo. This line is only displayed when the pwfeedback option + is disabled. GitHub issue #195. + + * Fixed potential memory leaks in error paths. GitHub issues #199, + #202. + + * Fixed potential NULL dereferences on memory allocation failure. + GitHub issues #204, #211. + + * Sudo now uses C23-style attributes in function prototypes instead + of gcc-style attributes if supported. + + * Added a new "list" pseudo-command in sudoers to allow a user to + list another user's privileges. Previously, only root or a user + with the ability to run any command as either root or the target + user on the current host could use the -U option. This also + includes a fix to the log entry when a user lacks permission to + run "sudo -U otheruser -l command". Previously, the logs would + indicate that the user tried to run the actual command, now the + log entry includes the list operation. + + * JSON logging now escapes control characters if they happen to + appear in the command or environment. + + * New Albanian translation from translationproject.org. + + * Regular expressions in sudoers or logsrvd.conf may no longer + contain consecutive repetition operators. This is implementation- + specific behavior according to POSIX, but some implementations + will allocate excessive amounts of memory. This mainly affects + the fuzzers. + + * Sudo now builds AIX-style shared libraries and dynamic shared + objects by default instead of svr4-style. This means that the + default sudo plugins are now .a (archive) files that contain a + .so shared object file instead of bare .so files. This was done + to improve compatibility with the AIX Freeware ecosystem, + specifically, the AIX Freeware build of OpenSSL. Sudo will still + load svr4-style .so plugins and if a .so file is requested, + either via sudo.conf or the sudoers file, and only the .a file + is present, sudo will convert the path from plugin.so to + plugin.a(plugin.so) when loading it. This ensures compatibility + with existing configurations. To restore the old, pre-1.9.13 + behavior, run configure using the --with-aix-soname=svr4 option. + + * Sudo no longer checks the ownership and mode of the plugins that + it loads. Plugins are configured via either the sudo.conf or + sudoers file which are trusted configuration files. These checks + suffered from time-of-check vs. time-of-use race conditions and + complicate loading plugins that are not simple paths. Ownership + and mode checks are still performed when loading the sudo.conf + and sudoers files, which do not suffer from race conditions. + The sudo.conf "developer_mode" setting is no longer used. + + * Control characters in sudo log messages and "sudoreplay -l" + output are now escaped in octal format. Space characters in the + command path are also escaped. Command line arguments that + contain spaces are surrounded by single quotes and any literal + single quote or backslash characters are escaped with a backslash. + This makes it possible to distinguish multiple command line + arguments from a single argument that contains spaces. + + * Improved support for DragonFly BSD which uses a different struct + procinfo than either FreeBSD or 4.4BSD. + + * Fixed a compilation error on Linux arm systems running older + kernels that may not define EM_ARM in linux/elf-em.h. + GitHub issue #232. + + * Fixed a compilation error when LDFLAGS contains -Wl,--no-undefined. + Sudo will now link using -Wl,--no-undefined by default if possible. + GitHub issue #234. + + * Fixed a bug executing a command with a very long argument vector + when "log_subcmds" or "intercept" is enabled on a system where + "intercept_type" is set to "trace". GitHub issue #194. + + * When sudo is configured to run a command in a pseudo-terminal + but the standard input is not connected to a terminal, the command + will now be run as a background process. This works around a + problem running sudo commands in the background from a shell + script where changing the terminal to raw mode could interfere + with the interactive shell that ran the script. + GitHub issue #237. + + * A missing include file in sudoers is no longer a fatal error + unless the error_recovery plugin argument has been set to false. + What's new in Sudo 1.9.12p2 * Fixed a compilation error on Linux/aarch64. GitHub issue #197. diff --git a/aclocal.m4 b/aclocal.m4 index ffabc7f245..336e610dd9 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -18,11 +18,18 @@ m4_include([m4/ax_check_link_flag.m4]) m4_include([m4/ax_func_getaddrinfo.m4]) m4_include([m4/ax_func_snprintf.m4]) m4_include([m4/ax_prog_cc_for_build.m4]) +m4_include([m4/gettext.m4]) +m4_include([m4/hardening.m4]) +m4_include([m4/ldap.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) +m4_include([m4/openssl.m4]) +m4_include([m4/pie.m4]) m4_include([m4/python.m4]) m4_include([m4/runlog.m4]) +m4_include([m4/sanitizer.m4]) m4_include([m4/sudo.m4]) +m4_include([m4/visibility.m4]) diff --git a/autogen.sh b/autogen.sh index d844cd935c..a922f60e14 100755 --- a/autogen.sh +++ b/autogen.sh @@ -7,7 +7,7 @@ if [ "`/usr/bin/uname 2>&1`" = "OpenBSD" ]; then AUTOMAKE_VERSION=1.16; export AUTOMAKE_VERSION fi if [ X"$AUTOCONF_VERSION" = X"" ]; then - AUTOCONF_VERSION=2.69; export AUTOCONF_VERSION + AUTOCONF_VERSION=2.71; export AUTOCONF_VERSION fi fi diff --git a/config.h.in b/config.h.in index ba4d000562..8ed7fb2419 100644 --- a/config.h.in +++ b/config.h.in @@ -35,8 +35,8 @@ /* Define to 1 if you want to require fully qualified hosts in sudoers. */ #undef FQDN -/* Define to the type of elements in the array set by `getgroups'. Usually - this is either `int' or `gid_t'. */ +/* Define to the type of elements in the array set by 'getgroups'. Usually + this is either 'int' or 'gid_t'. */ #undef GETGROUPS_T /* Define to 1 if you want insults from the "Goon Show". */ @@ -54,35 +54,35 @@ /* Define to 1 to enable AppArmor support. */ #undef HAVE_APPARMOR -/* Define to 1 if you have the `arc4random' function. */ +/* Define to 1 if you have the 'arc4random' function. */ #undef HAVE_ARC4RANDOM -/* Define to 1 if you have the `arc4random_buf' function. */ +/* Define to 1 if you have the 'arc4random_buf' function. */ #undef HAVE_ARC4RANDOM_BUF -/* Define to 1 if you have the `arc4random_uniform' function. */ +/* Define to 1 if you have the 'arc4random_uniform' function. */ #undef HAVE_ARC4RANDOM_UNIFORM -/* Define to 1 if you have the `ASN1_STRING_get0_data' function. */ +/* Define to 1 if you have the 'ASN1_STRING_get0_data' function. */ #undef HAVE_ASN1_STRING_GET0_DATA -/* Define to 1 if you have the `asprintf' function. */ +/* Define to 1 if you have the 'asprintf' function. */ #undef HAVE_ASPRINTF -/* Define to 1 if the system has the type `authdb_t'. */ +/* Define to 1 if the system has the type 'authdb_t'. */ #undef HAVE_AUTHDB_T -/* Define to 1 if you have the `authenticate' function. */ +/* Define to 1 if you have the 'authenticate' function. */ #undef HAVE_AUTHENTICATE -/* Define to 1 if you have the `auth_challenge' function. */ +/* Define to 1 if you have the 'auth_challenge' function. */ #undef HAVE_AUTH_CHALLENGE -/* Define to 1 if the `au_close' functions takes 4 arguments like Solaris 11. +/* Define to 1 if the 'au_close' functions takes 4 arguments like Solaris 11. */ #undef HAVE_AU_CLOSE_SOLARIS11 -/* Define to 1 if you have the `bigcrypt' function. */ +/* Define to 1 if you have the 'bigcrypt' function. */ #undef HAVE_BIGCRYPT /* Define to 1 if you use BSD authentication. */ @@ -91,250 +91,262 @@ /* Define to 1 to enable BSM audit support. */ #undef HAVE_BSM_AUDIT -/* Define to 1 if you have the `bzero' function. */ +/* Define to 1 if you have the 'bzero' function. */ #undef HAVE_BZERO -/* Define to 1 if you have the `cfmakeraw' function. */ +/* Define to 1 if you have the 'cfmakeraw' function. */ #undef HAVE_CFMAKERAW -/* Define to 1 if you have the `clock_gettime' function. */ +/* Define to 1 if you have the 'clock_gettime' function. */ #undef HAVE_CLOCK_GETTIME -/* Define to 1 if you have the `closefrom' function. */ +/* Define to 1 if you have the 'closefrom' function. */ #undef HAVE_CLOSEFROM -/* Define to 1 if you have the `close_range' function. */ +/* Define to 1 if you have the 'close_range' function. */ #undef HAVE_CLOSE_RANGE -/* Define to 1 if you have the `crypt' function. */ +/* Define to 1 if you have the 'crypt' function. */ #undef HAVE_CRYPT /* Define to 1 if you use OSF DCE. */ #undef HAVE_DCE -/* Define to 1 if your `DIR' contains dd_fd. */ +/* Define to 1 if your 'DIR' contains dd_fd. */ #undef HAVE_DD_FD -/* Define to 1 if you have the declaration of `errno', and to 0 if you don't. +/* Define to 1 if you have the declaration of 'errno', and to 0 if you don't. */ #undef HAVE_DECL_ERRNO -/* Define to 1 if you have the declaration of `getdelim', and to 0 if you +/* Define to 1 if you have the declaration of 'getdelim', and to 0 if you don't. */ #undef HAVE_DECL_GETDELIM -/* Define to 1 if you have the declaration of `getdomainname', and to 0 if you +/* Define to 1 if you have the declaration of 'getdomainname', and to 0 if you don't. */ #undef HAVE_DECL_GETDOMAINNAME -/* Define to 1 if you have the declaration of `getgrouplist_2', and to 0 if +/* Define to 1 if you have the declaration of 'getgrouplist_2', and to 0 if you don't. */ #undef HAVE_DECL_GETGROUPLIST_2 -/* Define to 1 if you have the declaration of `getresuid', and to 0 if you +/* Define to 1 if you have the declaration of 'getresuid', and to 0 if you don't. */ #undef HAVE_DECL_GETRESUID -/* Define to 1 if you have the declaration of `getusershell', and to 0 if you +/* Define to 1 if you have the declaration of 'getusershell', and to 0 if you don't. */ #undef HAVE_DECL_GETUSERSHELL -/* Define to 1 if you have the declaration of `h_errno', and to 0 if you +/* Define to 1 if you have the declaration of 'h_errno', and to 0 if you don't. */ #undef HAVE_DECL_H_ERRNO -/* Define to 1 if you have the declaration of `innetgr', and to 0 if you +/* Define to 1 if you have the declaration of 'innetgr', and to 0 if you don't. */ #undef HAVE_DECL_INNETGR -/* Define to 1 if you have the declaration of `LLONG_MAX', and to 0 if you +/* Define to 1 if you have the declaration of 'LLONG_MAX', and to 0 if you don't. */ #undef HAVE_DECL_LLONG_MAX -/* Define to 1 if you have the declaration of `LLONG_MIN', and to 0 if you +/* Define to 1 if you have the declaration of 'LLONG_MIN', and to 0 if you don't. */ #undef HAVE_DECL_LLONG_MIN -/* Define to 1 if you have the declaration of `PATH_MAX', and to 0 if you +/* Define to 1 if you have the declaration of 'NSIG', and to 0 if you don't. + */ +#undef HAVE_DECL_NSIG + +/* Define to 1 if you have the declaration of 'PATH_MAX', and to 0 if you don't. */ #undef HAVE_DECL_PATH_MAX -/* Define to 1 if you have the declaration of `pread64', and to 0 if you +/* Define to 1 if you have the declaration of 'pread64', and to 0 if you don't. */ #undef HAVE_DECL_PREAD64 -/* Define to 1 if you have the declaration of `pwrite64', and to 0 if you +/* Define to 1 if you have the declaration of 'pwrite64', and to 0 if you don't. */ #undef HAVE_DECL_PWRITE64 -/* Define to 1 if you have the declaration of `QUAD_MAX', and to 0 if you +/* Define to 1 if you have the declaration of 'QUAD_MAX', and to 0 if you don't. */ #undef HAVE_DECL_QUAD_MAX -/* Define to 1 if you have the declaration of `QUAD_MIN', and to 0 if you +/* Define to 1 if you have the declaration of 'QUAD_MIN', and to 0 if you don't. */ #undef HAVE_DECL_QUAD_MIN -/* Define to 1 if you have the declaration of `SECCOMP_MODE_FILTER', and to 0 +/* Define to 1 if you have the declaration of 'SECCOMP_MODE_FILTER', and to 0 if you don't. */ #undef HAVE_DECL_SECCOMP_MODE_FILTER -/* Define to 1 if you have the declaration of `setauthdb', and to 0 if you +/* Define to 1 if you have the declaration of 'setauthdb', and to 0 if you don't. */ #undef HAVE_DECL_SETAUTHDB -/* Define to 1 if you have the declaration of `setresuid', and to 0 if you +/* Define to 1 if you have the declaration of 'setresuid', and to 0 if you don't. */ #undef HAVE_DECL_SETRESUID -/* Define to 1 if you have the declaration of `SIG2STR_MAX', and to 0 if you +/* Define to 1 if you have the declaration of 'SIG2STR_MAX', and to 0 if you don't. */ #undef HAVE_DECL_SIG2STR_MAX -/* Define to 1 if you have the declaration of `SIZE_MAX', and to 0 if you +/* Define to 1 if you have the declaration of 'SIZE_MAX', and to 0 if you don't. */ #undef HAVE_DECL_SIZE_MAX -/* Define to 1 if you have the declaration of `SIZE_T_MAX', and to 0 if you +/* Define to 1 if you have the declaration of 'SIZE_T_MAX', and to 0 if you don't. */ #undef HAVE_DECL_SIZE_T_MAX -/* Define to 1 if you have the declaration of `SSIZE_MAX', and to 0 if you +/* Define to 1 if you have the declaration of 'SSIZE_MAX', and to 0 if you don't. */ #undef HAVE_DECL_SSIZE_MAX -/* Define to 1 if you have the declaration of `sys_sigabbrev', and to 0 if you +/* Define to 1 if you have the declaration of 'sys_sigabbrev', and to 0 if you don't. */ #undef HAVE_DECL_SYS_SIGABBREV -/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you +/* Define to 1 if you have the declaration of 'sys_siglist', and to 0 if you don't. */ #undef HAVE_DECL_SYS_SIGLIST -/* Define to 1 if you have the declaration of `sys_signame', and to 0 if you +/* Define to 1 if you have the declaration of 'sys_signame', and to 0 if you don't. */ #undef HAVE_DECL_SYS_SIGNAME -/* Define to 1 if you have the declaration of `ULLONG_MAX', and to 0 if you +/* Define to 1 if you have the declaration of 'ULLONG_MAX', and to 0 if you don't. */ #undef HAVE_DECL_ULLONG_MAX -/* Define to 1 if you have the declaration of `UQUAD_MAX', and to 0 if you +/* Define to 1 if you have the declaration of 'UQUAD_MAX', and to 0 if you don't. */ #undef HAVE_DECL_UQUAD_MAX -/* Define to 1 if you have the declaration of `usrinfo', and to 0 if you +/* Define to 1 if you have the declaration of 'usrinfo', and to 0 if you don't. */ #undef HAVE_DECL_USRINFO -/* Define to 1 if you have the declaration of `_innetgr', and to 0 if you +/* Define to 1 if you have the declaration of '_innetgr', and to 0 if you don't. */ #undef HAVE_DECL__INNETGR -/* Define to 1 if you have the declaration of `_POSIX_PATH_MAX', and to 0 if +/* Define to 1 if you have the declaration of '_NSIG', and to 0 if you don't. + */ +#undef HAVE_DECL__NSIG + +/* Define to 1 if you have the declaration of '_POSIX_PATH_MAX', and to 0 if you don't. */ #undef HAVE_DECL__POSIX_PATH_MAX -/* Define to 1 if you have the declaration of `_sys_siglist', and to 0 if you +/* Define to 1 if you have the declaration of '_sys_siglist', and to 0 if you don't. */ #undef HAVE_DECL__SYS_SIGLIST -/* Define to 1 if you have the declaration of `_sys_signame', and to 0 if you +/* Define to 1 if you have the declaration of '_sys_signame', and to 0 if you don't. */ #undef HAVE_DECL__SYS_SIGNAME -/* Define to 1 if you have the `devname' function. */ +/* Define to 1 if you have the declaration of '__NSIG', and to 0 if you don't. + */ +#undef HAVE_DECL___NSIG + +/* Define to 1 if you have the 'devname' function. */ #undef HAVE_DEVNAME -/* Define to 1 if you have the header file, and it defines `DIR'. +/* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_DIRENT_H -/* Define to 1 if you have the `dirfd' function or macro. */ +/* Define to 1 if you have the 'dirfd' function or macro. */ #undef HAVE_DIRFD -/* Define to 1 if you have the `dispcrypt' function. */ +/* Define to 1 if you have the 'dispcrypt' function. */ #undef HAVE_DISPCRYPT /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H -/* Define to 1 if you have the `dlopen' function. */ +/* Define to 1 if you have the 'dlopen' function. */ #undef HAVE_DLOPEN -/* Define to 1 if you have the `dl_iterate_phdr' function. */ +/* Define to 1 if you have the 'dl_iterate_phdr' function. */ #undef HAVE_DL_ITERATE_PHDR /* Define to 1 if the compiler supports the __visibility__ attribute. */ #undef HAVE_DSO_VISIBILITY -/* Define to 1 if you have the `dup3' function. */ +/* Define to 1 if you have the 'dup3' function. */ #undef HAVE_DUP3 /* Define to 1 if you have the header file. */ #undef HAVE_ENDIAN_H -/* Define to 1 if you have the `exect' function. */ +/* Define to 1 if you have the 'exect' function. */ #undef HAVE_EXECT -/* Define to 1 if you have the `execvP' function. */ +/* Define to 1 if you have the 'execvP' function. */ #undef HAVE_EXECVP -/* Define to 1 if you have the `execvpe' function. */ +/* Define to 1 if you have the 'execvpe' function. */ #undef HAVE_EXECVPE -/* Define to 1 if you have the `explicit_bzero' function. */ +/* Define to 1 if you have the 'explicit_bzero' function. */ #undef HAVE_EXPLICIT_BZERO -/* Define to 1 if you have the `explicit_memset' function. */ +/* Define to 1 if you have the 'explicit_memset' function. */ #undef HAVE_EXPLICIT_MEMSET -/* Define to 1 if you have the `faccessat' function. */ +/* Define to 1 if you have the 'faccessat' function. */ #undef HAVE_FACCESSAT /* Define to 1 if the compiler supports the fallthrough attribute. */ #undef HAVE_FALLTHROUGH_ATTRIBUTE -/* Define to 1 if you have the `fchmodat' function. */ +/* Define to 1 if you have the 'fchmodat' function. */ #undef HAVE_FCHMODAT -/* Define to 1 if you have the `fchownat' function. */ +/* Define to 1 if you have the 'fchownat' function. */ #undef HAVE_FCHOWNAT /* Define to 1 if your system has the F_CLOSEM fcntl. */ #undef HAVE_FCNTL_CLOSEM -/* Define to 1 if you have the `fexecve' function. */ +/* Define to 1 if you have the 'fexecve' function. */ #undef HAVE_FEXECVE -/* Define to 1 if you have the `fmemopen' function. */ +/* Define to 1 if you have the 'fmemopen' function. */ #undef HAVE_FMEMOPEN -/* Define to 1 if you have the `fnmatch' function. */ +/* Define to 1 if you have the 'fnmatch' function. */ #undef HAVE_FNMATCH -/* Define to 1 if you have the `freeifaddrs' function. */ +/* Define to 1 if you have the 'freeifaddrs' function. */ #undef HAVE_FREEIFADDRS -/* Define to 1 if you have the `freezero' function. */ +/* Define to 1 if you have the 'freezero' function. */ #undef HAVE_FREEZERO -/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ +/* Define to 1 if fseeko (and ftello) are declared in stdio.h. */ #undef HAVE_FSEEKO -/* Define to 1 if you have the `fstatat' function. */ +/* Define to 1 if you have the 'fstatat' function. */ #undef HAVE_FSTATAT -/* Define to 1 if you have the `futime' function. */ +/* Define to 1 if you have the 'futime' function. */ #undef HAVE_FUTIME -/* Define to 1 if you have the `futimens' function. */ +/* Define to 1 if you have the 'futimens' function. */ #undef HAVE_FUTIMENS -/* Define to 1 if you have the `futimes' function. */ +/* Define to 1 if you have the 'futimes' function. */ #undef HAVE_FUTIMES -/* Define to 1 if you have the `futimesat' function. */ +/* Define to 1 if you have the 'futimesat' function. */ #undef HAVE_FUTIMESAT /* Define to 1 if you use the FWTK authsrv daemon. */ @@ -343,84 +355,84 @@ /* Define to 1 if you are using gcrypt's sha2 functions. */ #undef HAVE_GCRYPT -/* Define to 1 if you have the `getaddrinfo' function. */ +/* Define to 1 if you have the 'getaddrinfo' function. */ #undef HAVE_GETADDRINFO -/* Define to 1 if you have the `getauxval' function. */ +/* Define to 1 if you have the 'getauxval' function. */ #undef HAVE_GETAUXVAL -/* Define to 1 if you have the `getdelim' function. */ +/* Define to 1 if you have the 'getdelim' function. */ #undef HAVE_GETDELIM -/* Define to 1 if you have the `getdomainname' function. */ +/* Define to 1 if you have the 'getdomainname' function. */ #undef HAVE_GETDOMAINNAME -/* Define to 1 if you have the `getentropy' function. */ +/* Define to 1 if you have the 'getentropy' function. */ #undef HAVE_GETENTROPY -/* Define to 1 if you have the `getgrouplist' function. */ +/* Define to 1 if you have the 'getgrouplist' function. */ #undef HAVE_GETGROUPLIST -/* Define to 1 if you have the `getgrouplist_2' function. */ +/* Define to 1 if you have the 'getgrouplist_2' function. */ #undef HAVE_GETGROUPLIST_2 -/* Define to 1 if your system has a working `getgroups' function. */ +/* Define to 1 if your system has a working 'getgroups' function. */ #undef HAVE_GETGROUPS -/* Define to 1 if you have the `getgrset' function. */ +/* Define to 1 if you have the 'getgrset' function. */ #undef HAVE_GETGRSET -/* Define to 1 if you have the `gethrtime' function. */ +/* Define to 1 if you have the 'gethrtime' function. */ #undef HAVE_GETHRTIME -/* Define to 1 if you have the `getifaddrs' function. */ +/* Define to 1 if you have the 'getifaddrs' function. */ #undef HAVE_GETIFADDRS -/* Define to 1 if you have the `getopt_long' function. */ +/* Define to 1 if you have the 'getopt_long' function. */ #undef HAVE_GETOPT_LONG -/* Define to 1 if you have the `getprogname' function. */ +/* Define to 1 if you have the 'getprogname' function. */ #undef HAVE_GETPROGNAME -/* Define to 1 if you have the `getprpwnam' function. (SecureWare-style shadow +/* Define to 1 if you have the 'getprpwnam' function. (SecureWare-style shadow passwords). */ #undef HAVE_GETPRPWNAM -/* Define to 1 if you have the `getpwnam_shadow' function. */ +/* Define to 1 if you have the 'getpwnam_shadow' function. */ #undef HAVE_GETPWNAM_SHADOW -/* Define to 1 if you have the `getresuid' function. */ +/* Define to 1 if you have the 'getresuid' function. */ #undef HAVE_GETRESUID -/* Define to 1 if you have the `getspnam' function (SVR4-style shadow +/* Define to 1 if you have the 'getspnam' function (SVR4-style shadow passwords). */ #undef HAVE_GETSPNAM -/* Define to 1 if you have the `getttyent' function. */ +/* Define to 1 if you have the 'getttyent' function. */ #undef HAVE_GETTTYENT -/* Define to 1 if you have the `getuserattr' function. */ +/* Define to 1 if you have the 'getuserattr' function. */ #undef HAVE_GETUSERATTR -/* Define to 1 if you have the `getusershell' function. */ +/* Define to 1 if you have the 'getusershell' function. */ #undef HAVE_GETUSERSHELL -/* Define to 1 if you have the `getutid' function. */ +/* Define to 1 if you have the 'getutid' function. */ #undef HAVE_GETUTID -/* Define to 1 if you have the `getutsid' function. */ +/* Define to 1 if you have the 'getutsid' function. */ #undef HAVE_GETUTSID -/* Define to 1 if you have the `getutxid' function. */ +/* Define to 1 if you have the 'getutxid' function. */ #undef HAVE_GETUTXID -/* Define to 1 if you have the `glob' function. */ +/* Define to 1 if you have the 'glob' function. */ #undef HAVE_GLOB -/* Define to 1 if you have the `gmtime_r' function. */ +/* Define to 1 if you have the 'gmtime_r' function. */ #undef HAVE_GMTIME_R -/* Define to 1 if you have the `grantpt' function. */ +/* Define to 1 if you have the 'grantpt' function. */ #undef HAVE_GRANTPT /* Define to 1 if you have the header file. */ @@ -432,38 +444,53 @@ /* Define to 1 if you have the header file. */ #undef HAVE_GSSAPI_H -/* Define to 1 if you have the `gss_krb5_ccache_name' function. */ +/* Define to 1 if you have the 'gss_krb5_ccache_name' function. */ #undef HAVE_GSS_KRB5_CCACHE_NAME /* Define to 1 if your Kerberos is Heimdal. */ #undef HAVE_HEIMDAL -/* Define to 1 if you have the `inet_ntop' function. */ +/* Define to 1 if you have the 'inet_ntop' function. */ #undef HAVE_INET_NTOP -/* Define to 1 if you have the `inet_pton' function. */ +/* Define to 1 if you have the 'inet_pton' function. */ #undef HAVE_INET_PTON -/* Define to 1 if you have the `initprivs' function. */ +/* Define to 1 if you have the 'initprivs' function. */ #undef HAVE_INITPRIVS -/* Define to 1 if you have the `innetgr' function. */ +/* Define to 1 if you have the 'innetgr' function. */ #undef HAVE_INNETGR +/* Define to 1 if the system has the type 'int16_t'. */ +#undef HAVE_INT16_T + +/* Define to 1 if the system has the type 'int32_t'. */ +#undef HAVE_INT32_T + +/* Define to 1 if the system has the type 'int64_t'. */ +#undef HAVE_INT64_T + +/* Define to 1 if the system has the type 'int8_t'. */ +#undef HAVE_INT8_T + +/* Define to 1 if the system has the type 'intmax_t'. */ +#undef HAVE_INTMAX_T + /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if you have isblank(3). */ #undef HAVE_ISBLANK -/* Define to 1 if you have the `iscomsec' function. (HP-UX >= 10.x check for +/* Define to 1 if you have the 'iscomsec' function. (HP-UX >= 10.x check for shadow enabled). */ #undef HAVE_ISCOMSEC /* Define to 1 if you use Kerberos V. */ #undef HAVE_KERB5 -/* Define to 1 if you have the `killpg' function. */ +/* Define to 1 if you have the 'killpg' function. */ #undef HAVE_KILLPG /* Define to 1 if your system has a NetBSD-style kinfo_proc2 struct. */ @@ -472,23 +499,26 @@ /* Define to 1 if your system has a 4.4BSD-style kinfo_proc struct. */ #undef HAVE_KINFO_PROC_44BSD +/* Define to 1 if your system has a Dragonfly-style kinfo_proc struct. */ +#undef HAVE_KINFO_PROC_DFLY + /* Define to 1 if your system has a FreeBSD-style kinfo_proc struct. */ #undef HAVE_KINFO_PROC_FREEBSD /* Define to 1 if your system has an OpenBSD-style kinfo_proc struct. */ #undef HAVE_KINFO_PROC_OPENBSD -/* Define to 1 if you have the `krb5_get_init_creds_opt_alloc' function. */ +/* Define to 1 if you have the 'krb5_get_init_creds_opt_alloc' function. */ #undef HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC -/* Define to 1 if your `krb5_get_init_creds_opt_free' function takes two +/* Define to 1 if your 'krb5_get_init_creds_opt_free' function takes two arguments. */ #undef HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS -/* Define to 1 if you have the `krb5_init_secure_context' function. */ +/* Define to 1 if you have the 'krb5_init_secure_context' function. */ #undef HAVE_KRB5_INIT_SECURE_CONTEXT -/* Define to 1 if you have the `krb5_verify_user' function. */ +/* Define to 1 if you have the 'krb5_verify_user' function. */ #undef HAVE_KRB5_VERIFY_USER /* Define to 1 if your LDAP needs . (OpenLDAP does not). */ @@ -500,49 +530,49 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LDAPSSL_H -/* Define to 1 if you have the `ldapssl_init' function. */ +/* Define to 1 if you have the 'ldapssl_init' function. */ #undef HAVE_LDAPSSL_INIT -/* Define to 1 if you have the `ldapssl_set_strength' function. */ +/* Define to 1 if you have the 'ldapssl_set_strength' function. */ #undef HAVE_LDAPSSL_SET_STRENGTH -/* Define to 1 if you have the `ldap_create' function. */ +/* Define to 1 if you have the 'ldap_create' function. */ #undef HAVE_LDAP_CREATE -/* Define to 1 if you have the `ldap_initialize' function. */ +/* Define to 1 if you have the 'ldap_initialize' function. */ #undef HAVE_LDAP_INITIALIZE -/* Define to 1 if you have the `ldap_sasl_bind_s' function. */ +/* Define to 1 if you have the 'ldap_sasl_bind_s' function. */ #undef HAVE_LDAP_SASL_BIND_S -/* Define to 1 if you have the `ldap_sasl_interactive_bind_s' function. */ +/* Define to 1 if you have the 'ldap_sasl_interactive_bind_s' function. */ #undef HAVE_LDAP_SASL_INTERACTIVE_BIND_S -/* Define to 1 if you have the `ldap_search_ext_s' function. */ +/* Define to 1 if you have the 'ldap_search_ext_s' function. */ #undef HAVE_LDAP_SEARCH_EXT_S -/* Define to 1 if you have the `ldap_search_st' function. */ +/* Define to 1 if you have the 'ldap_search_st' function. */ #undef HAVE_LDAP_SEARCH_ST -/* Define to 1 if you have the `ldap_ssl_client_init' function. */ +/* Define to 1 if you have the 'ldap_ssl_client_init' function. */ #undef HAVE_LDAP_SSL_CLIENT_INIT /* Define to 1 if you have the header file. */ #undef HAVE_LDAP_SSL_H -/* Define to 1 if you have the `ldap_ssl_init' function. */ +/* Define to 1 if you have the 'ldap_ssl_init' function. */ #undef HAVE_LDAP_SSL_INIT -/* Define to 1 if you have the `ldap_start_tls_s' function. */ +/* Define to 1 if you have the 'ldap_start_tls_s' function. */ #undef HAVE_LDAP_START_TLS_S -/* Define to 1 if you have the `ldap_start_tls_s_np' function. */ +/* Define to 1 if you have the 'ldap_start_tls_s_np' function. */ #undef HAVE_LDAP_START_TLS_S_NP -/* Define to 1 if you have the `ldap_str2dn' function. */ +/* Define to 1 if you have the 'ldap_str2dn' function. */ #undef HAVE_LDAP_STR2DN -/* Define to 1 if you have the `ldap_unbind_ext_s' function. */ +/* Define to 1 if you have the 'ldap_unbind_ext_s' function. */ #undef HAVE_LDAP_UNBIND_EXT_S /* Define to 1 if you have the header file. */ @@ -563,85 +593,79 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LINUX_RANDOM_H -/* Define to 1 if you have the `localtime_r' function. */ +/* Define to 1 if you have the 'localtime_r' function. */ #undef HAVE_LOCALTIME_R -/* Define to 1 if you have the `lockf' function. */ +/* Define to 1 if you have the 'lockf' function. */ #undef HAVE_LOCKF /* Define to 1 if you have the header file. */ #undef HAVE_LOGIN_CAP_H -/* Define to 1 if the system has the type `long long int'. */ -#undef HAVE_LONG_LONG_INT - -/* Define to 1 if you have the `lrand48' function. */ -#undef HAVE_LRAND48 - /* Define to 1 if you have the header file. */ #undef HAVE_MACHINE_ENDIAN_H -/* Define to 1 if you have the `mach_continuous_time' function. */ +/* Define to 1 if you have the 'mach_continuous_time' function. */ #undef HAVE_MACH_CONTINUOUS_TIME /* Define to 1 if you have the header file. */ #undef HAVE_MAILLOCK_H -/* Define to 1 if you have the `memrchr' function. */ +/* Define to 1 if you have the 'memrchr' function. */ #undef HAVE_MEMRCHR -/* Define to 1 if you have the `memset_explicit' function. */ +/* Define to 1 if you have the 'memset_explicit' function. */ #undef HAVE_MEMSET_EXPLICIT -/* Define to 1 if you have the `memset_s' function. */ +/* Define to 1 if you have the 'memset_s' function. */ #undef HAVE_MEMSET_S /* Define to 1 if you have the header file. */ #undef HAVE_MINIX_CONFIG_H -/* Define to 1 if you have the `mkdirat' function. */ +/* Define to 1 if you have the 'mkdirat' function. */ #undef HAVE_MKDIRAT -/* Define to 1 if you have the `mkdtempat' function. */ +/* Define to 1 if you have the 'mkdtempat' function. */ #undef HAVE_MKDTEMPAT -/* Define to 1 if you have the `mkdtempat_np' function. */ +/* Define to 1 if you have the 'mkdtempat_np' function. */ #undef HAVE_MKDTEMPAT_NP -/* Define to 1 if you have the `mkostempsat' function. */ +/* Define to 1 if you have the 'mkostempsat' function. */ #undef HAVE_MKOSTEMPSAT -/* Define to 1 if you have the `mkostempsat_np' function. */ +/* Define to 1 if you have the 'mkostempsat_np' function. */ #undef HAVE_MKOSTEMPSAT_NP /* Define to 1 if you have the header file. */ #undef HAVE_MPS_LDAP_SSL_H -/* Define to 1 if you have the `nanosleep' function. */ +/* Define to 1 if you have the 'nanosleep' function. */ #undef HAVE_NANOSLEEP -/* Define to 1 if you have the header file, and it defines `DIR'. */ +/* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_NETGROUP_H -/* Define to 1 if you have the `ngettext' function. */ +/* Define to 1 if you have the 'ngettext' function. */ #undef HAVE_NGETTEXT -/* Define to 1 if you have the `nl_langinfo' function. */ +/* Define to 1 if you have the 'nl_langinfo' function. */ #undef HAVE_NL_LANGINFO /* Define to 1 if you have the header file. */ #undef HAVE_NSS_DBDEFS_H -/* Define to 1 if you have the `nss_search' function. */ +/* Define to 1 if you have the 'nss_search' function. */ #undef HAVE_NSS_SEARCH -/* Define to 1 if you have the `openat' function. */ +/* Define to 1 if you have the 'openat' function. */ #undef HAVE_OPENAT -/* Define to 1 if you have the `openpty' function. */ +/* Define to 1 if you have the 'openpty' function. */ #undef HAVE_OPENPTY /* Define to 1 if you are using OpenSSL's TLS and sha2 functions. */ @@ -650,13 +674,13 @@ /* Define to 1 if you use NRL OPIE. */ #undef HAVE_OPIE -/* Define to 1 if you have the `optreset' symbol. */ +/* Define to 1 if you have the 'optreset' symbol. */ #undef HAVE_OPTRESET /* Define to 1 if you use PAM authentication. */ #undef HAVE_PAM -/* Define to 1 if you have the `pam_getenvlist' function. */ +/* Define to 1 if you have the 'pam_getenvlist' function. */ #undef HAVE_PAM_GETENVLIST /* Define to 1 if you use a specific PAM session for sudo -i. */ @@ -668,52 +692,52 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PATHS_H -/* Define to 1 if you have the `pipe2' function. */ +/* Define to 1 if you have the 'pipe2' function. */ #undef HAVE_PIPE2 -/* Define to 1 if you have the `poll' function. */ +/* Define to 1 if you have the 'poll' function. */ #undef HAVE_POLL -/* Define to 1 if you have the `posix_openpt' function. */ +/* Define to 1 if you have the 'posix_openpt' function. */ #undef HAVE_POSIX_OPENPT -/* Define to 1 if you have the `posix_spawn' function. */ +/* Define to 1 if you have the 'posix_spawn' function. */ #undef HAVE_POSIX_SPAWN -/* Define to 1 if you have the `posix_spawnp' function. */ +/* Define to 1 if you have the 'posix_spawnp' function. */ #undef HAVE_POSIX_SPAWNP -/* Define to 1 if you have the `ppoll' function. */ +/* Define to 1 if you have the 'ppoll' function. */ #undef HAVE_PPOLL -/* Define to 1 if you have the `pread' function. */ +/* Define to 1 if you have the 'pread' function. */ #undef HAVE_PREAD -/* Define to 1 if you have the `pread64' function. */ +/* Define to 1 if you have the 'pread64' function. */ #undef HAVE_PREAD64 -/* Define to 1 if you have the `priv_set' function. */ +/* Define to 1 if you have the 'priv_set' function. */ #undef HAVE_PRIV_SET -/* Define to 1 if you have the `process_vm_readv' function. */ +/* Define to 1 if you have the 'process_vm_readv' function. */ #undef HAVE_PROCESS_VM_READV /* Define to 1 if you have the header file. */ #undef HAVE_PROCFS_H -/* Define to 1 if you have the `proc_pidinfo' function. */ +/* Define to 1 if you have the 'proc_pidinfo' function. */ #undef HAVE_PROC_PIDINFO /* Define to 1 if you have the header file. */ #undef HAVE_PROJECT_H -/* Define to 1 if you have the `pselect' function. */ +/* Define to 1 if you have the 'pselect' function. */ #undef HAVE_PSELECT -/* Define to 1 if you have the `pstat_getproc' function. */ +/* Define to 1 if you have the 'pstat_getproc' function. */ #undef HAVE_PSTAT_GETPROC -/* Define to 1 if you have the `pthread_atfork' function. */ +/* Define to 1 if you have the 'pthread_atfork' function. */ #undef HAVE_PTHREAD_ATFORK /* Define to 1 if you have the header file. */ @@ -722,22 +746,19 @@ /* Define to 1 if you have the header file. */ #undef HAVE_PTY_H -/* Define to 1 if you have the `pwrite' function. */ +/* Define to 1 if you have the 'pwrite' function. */ #undef HAVE_PWRITE -/* Define to 1 if you have the `pwrite64' function. */ +/* Define to 1 if you have the 'pwrite64' function. */ #undef HAVE_PWRITE64 -/* Define to 1 if you have the `pw_dup' function. */ +/* Define to 1 if you have the 'pw_dup' function. */ #undef HAVE_PW_DUP -/* Define to 1 if you have the `random' function. */ -#undef HAVE_RANDOM - -/* Define to 1 if you have the `reallocarray' function. */ +/* Define to 1 if you have the 'reallocarray' function. */ #undef HAVE_REALLOCARRAY -/* Define to 1 if you have the `revoke' function. */ +/* Define to 1 if you have the 'revoke' function. */ #undef HAVE_REVOKE /* Define to 1 if the skeychallenge() function is RFC1938-compliant and takes @@ -759,77 +780,83 @@ /* Define to 1 to enable SELinux RBAC support. */ #undef HAVE_SELINUX -/* Define to 1 if you have the `setauthdb' function. */ +/* Define to 1 if you have the 'setauthdb' function. */ #undef HAVE_SETAUTHDB -/* Define to 1 if you have the `seteuid' function. */ +/* Define to 1 if you have the 'seteuid' function. */ #undef HAVE_SETEUID -/* Define to 1 if you have the `setgroupent' function. */ +/* Define to 1 if you have the 'setgroupent' function. */ #undef HAVE_SETGROUPENT -/* Define to 1 if you have the `setkeycreatecon' function. */ +/* Define to 1 if you have the 'setkeycreatecon' function. */ #undef HAVE_SETKEYCREATECON -/* Define to 1 if you have the `setpassent' function. */ +/* Define to 1 if you have the 'setpassent' function. */ #undef HAVE_SETPASSENT -/* Define to 1 if you have the `setprogname' function. */ +/* Define to 1 if you have the 'setprogname' function. */ #undef HAVE_SETPROGNAME -/* Define to 1 if you have the `setresuid' function. */ +/* Define to 1 if you have the 'setresuid' function. */ #undef HAVE_SETRESUID -/* Define to 1 if you have the `setreuid' function. */ +/* Define to 1 if you have the 'setreuid' function. */ #undef HAVE_SETREUID -/* Define to 1 if you have the `setrlimit64' function. */ +/* Define to 1 if you have the 'setrlimit64' function. */ #undef HAVE_SETRLIMIT64 -/* Define to 1 if you have the `set_auth_parameters' function. */ +/* Define to 1 if you have the 'set_auth_parameters' function. */ #undef HAVE_SET_AUTH_PARAMETERS -/* Define to 1 if you have the `SHA224Update' function. */ +/* Define to 1 if you have the 'SHA224Update' function. */ #undef HAVE_SHA224UPDATE -/* Define to 1 if you have the `shl_load' function. */ +/* Define to 1 if you have the 'shl_load' function. */ #undef HAVE_SHL_LOAD -/* Define to 1 if you have the `sia_ses_init' function. */ +/* Define to 1 if you have the 'sia_ses_init' function. */ #undef HAVE_SIA_SES_INIT -/* Define to 1 if you have the `sig2str' function. */ +/* Define to 1 if you have the 'sig2str' function. */ #undef HAVE_SIG2STR -/* Define to 1 if you have the `sigabbrev_np' function. */ +/* Define to 1 if you have the 'sigabbrev_np' function. */ #undef HAVE_SIGABBREV_NP +/* Define to 1 if the system has the type 'sig_atomic_t'. */ +#undef HAVE_SIG_ATOMIC_T + /* Define to 1 if you use S/Key. */ #undef HAVE_SKEY /* Define to 1 if your S/Key library has skeyaccess(). */ #undef HAVE_SKEYACCESS -/* Define to 1 if you have the `snprintf' function. */ +/* Define to 1 if you have the 'snprintf' function. */ #undef HAVE_SNPRINTF +/* Define to 1 if the system has the type 'socklen_t'. */ +#undef HAVE_SOCKLEN_T + /* Define to 1 to enable Solaris audit support. */ #undef HAVE_SOLARIS_AUDIT /* Define to 1 if you have the header file. */ #undef HAVE_SPAWN_H -/* Define to 1 if you have the `SSL_CTX_get0_certificate' function. */ +/* Define to 1 if you have the 'SSL_CTX_get0_certificate' function. */ #undef HAVE_SSL_CTX_GET0_CERTIFICATE -/* Define to 1 if you have the `SSL_CTX_set0_tmp_dh_pkey' function. */ +/* Define to 1 if you have the 'SSL_CTX_set0_tmp_dh_pkey' function. */ #undef HAVE_SSL_CTX_SET0_TMP_DH_PKEY -/* Define to 1 if you have the `SSL_CTX_set_ciphersuites' function or macro. +/* Define to 1 if you have the 'SSL_CTX_set_ciphersuites' function or macro. */ #undef HAVE_SSL_CTX_SET_CIPHERSUITES -/* Define to 1 if you have the `SSL_CTX_set_min_proto_version' function or +/* Define to 1 if you have the 'SSL_CTX_set_min_proto_version' function or macro. */ #undef HAVE_SSL_CTX_SET_MIN_PROTO_VERSION @@ -848,7 +875,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H -/* Define to 1 if you have the `str2sig' function. */ +/* Define to 1 if you have the 'str2sig' function. */ #undef HAVE_STR2SIG /* Define to 1 if you have the header file. */ @@ -857,34 +884,34 @@ /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H -/* Define to 1 if you have the `strlcat' function. */ +/* Define to 1 if you have the 'strlcat' function. */ #undef HAVE_STRLCAT -/* Define to 1 if you have the `strlcpy' function. */ +/* Define to 1 if you have the 'strlcpy' function. */ #undef HAVE_STRLCPY -/* Define to 1 if you have the `strndup' function. */ +/* Define to 1 if you have the 'strndup' function. */ #undef HAVE_STRNDUP -/* Define to 1 if you have the `strnlen' function. */ +/* Define to 1 if you have the 'strnlen' function. */ #undef HAVE_STRNLEN -/* Define to 1 if you have the `strsignal' function. */ +/* Define to 1 if you have the 'strsignal' function. */ #undef HAVE_STRSIGNAL -/* Define to 1 if you have the `strtoull' function. */ +/* Define to 1 if you have the 'strtoull' function. */ #undef HAVE_STRTOULL -/* Define to 1 if `d_namlen' is a member of `struct dirent'. */ +/* Define to 1 if 'd_namlen' is a member of 'struct dirent'. */ #undef HAVE_STRUCT_DIRENT_D_NAMLEN -/* Define to 1 if `d_type' is a member of `struct dirent'. */ +/* Define to 1 if 'd_type' is a member of 'struct dirent'. */ #undef HAVE_STRUCT_DIRENT_D_TYPE -/* Define to 1 if the system has the type `struct in6_addr'. */ +/* Define to 1 if the system has the type 'struct in6_addr'. */ #undef HAVE_STRUCT_IN6_ADDR -/* Define to 1 if `pr_ttydev' is a member of `struct psinfo'. */ +/* Define to 1 if 'pr_ttydev' is a member of 'struct psinfo'. */ #undef HAVE_STRUCT_PSINFO_PR_TTYDEV /* Define if your struct sockaddr_in has a sin_len field. */ @@ -893,31 +920,31 @@ /* Define if your struct sockaddr has an sa_len field. */ #undef HAVE_STRUCT_SOCKADDR_SA_LEN -/* Define to 1 if `tm_gmtoff' is a member of `struct tm'. */ +/* Define to 1 if 'tm_gmtoff' is a member of 'struct tm'. */ #undef HAVE_STRUCT_TM_TM_GMTOFF -/* Define to 1 if `ut_exit' is a member of `struct utmp'. */ +/* Define to 1 if 'ut_exit' is a member of 'struct utmp'. */ #undef HAVE_STRUCT_UTMP_UT_EXIT -/* Define to 1 if `ut_exit.e_termination' is a member of `struct utmp'. */ +/* Define to 1 if 'ut_exit.e_termination' is a member of 'struct utmp'. */ #undef HAVE_STRUCT_UTMP_UT_EXIT_E_TERMINATION -/* Define to 1 if `ut_exit.__e_termination' is a member of `struct utmp'. */ +/* Define to 1 if 'ut_exit.__e_termination' is a member of 'struct utmp'. */ #undef HAVE_STRUCT_UTMP_UT_EXIT___E_TERMINATION -/* Define to 1 if `ut_id' is a member of `struct utmp'. */ +/* Define to 1 if 'ut_id' is a member of 'struct utmp'. */ #undef HAVE_STRUCT_UTMP_UT_ID -/* Define to 1 if `ut_pid' is a member of `struct utmp'. */ +/* Define to 1 if 'ut_pid' is a member of 'struct utmp'. */ #undef HAVE_STRUCT_UTMP_UT_PID -/* Define to 1 if `ut_tv' is a member of `struct utmp'. */ +/* Define to 1 if 'ut_tv' is a member of 'struct utmp'. */ #undef HAVE_STRUCT_UTMP_UT_TV -/* Define to 1 if `ut_type' is a member of `struct utmp'. */ +/* Define to 1 if 'ut_type' is a member of 'struct utmp'. */ #undef HAVE_STRUCT_UTMP_UT_TYPE -/* Define to 1 if `ut_user' is a member of `struct utmp'. */ +/* Define to 1 if 'ut_user' is a member of 'struct utmp'. */ #undef HAVE_STRUCT_UTMP_UT_USER /* Define to 1 if your struct stat has an st_mtim member. */ @@ -932,23 +959,23 @@ /* Define to 1 if your struct stat uses an st__tim union. */ #undef HAVE_ST__TIM -/* Define to 1 if you have the `sysctl' function. */ +/* Define to 1 if you have the 'sysctl' function. */ #undef HAVE_SYSCTL -/* Define to 1 if you have the `sysinfo' function. */ +/* Define to 1 if you have the 'sysinfo' function. */ #undef HAVE_SYSINFO /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BSDTYPES_H -/* Define to 1 if you have the header file, and it defines `DIR'. +/* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_ENDIAN_H -/* Define to 1 if you have the header file, and it defines `DIR'. +/* Define to 1 if you have the header file, and it defines 'DIR'. */ #undef HAVE_SYS_NDIR_H @@ -961,7 +988,7 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SELECT_H -/* Define to 1 if your libc has the `sys_sigabbrev' symbol. */ +/* Define to 1 if your libc has the 'sys_sigabbrev' symbol. */ #undef HAVE_SYS_SIGABBREV /* Define to 1 if you have the header file. */ @@ -991,34 +1018,46 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H -/* Define to 1 if you have the `timegm' function. */ +/* Define to 1 if you have the 'timegm' function. */ #undef HAVE_TIMEGM -/* Define to 1 if you have the `TLS_method' function. */ +/* Define to 1 if you have the 'TLS_method' function. */ #undef HAVE_TLS_METHOD -/* Define to 1 if you have the `ttyslot' function. */ +/* Define to 1 if you have the 'ttyslot' function. */ #undef HAVE_TTYSLOT +/* Define to 1 if the system has the type 'uint16_t'. */ +#undef HAVE_UINT16_T + +/* Define to 1 if the system has the type 'uint32_t'. */ +#undef HAVE_UINT32_T + +/* Define to 1 if the system has the type 'uint64_t'. */ +#undef HAVE_UINT64_T + +/* Define to 1 if the system has the type 'uint8_t'. */ +#undef HAVE_UINT8_T + +/* Define to 1 if the system has the type 'uintmax_t'. */ +#undef HAVE_UINTMAX_T + /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H -/* Define to 1 if you have the `unlinkat' function. */ +/* Define to 1 if you have the 'unlinkat' function. */ #undef HAVE_UNLINKAT -/* Define to 1 if you have the `unsetenv' function. */ +/* Define to 1 if you have the 'unsetenv' function. */ #undef HAVE_UNSETENV -/* Define to 1 if the system has the type `unsigned long long int'. */ -#undef HAVE_UNSIGNED_LONG_LONG_INT - /* Define to 1 if you have the header file. */ #undef HAVE_UTIL_H -/* Define to 1 if you have the `utimensat' function. */ +/* Define to 1 if you have the 'utimensat' function. */ #undef HAVE_UTIMENSAT -/* Define to 1 if you have the `utimes' function. */ +/* Define to 1 if you have the 'utimes' function. */ #undef HAVE_UTIMES /* Define to 1 if you have the header file. */ @@ -1027,13 +1066,13 @@ /* Define to 1 if you have the header file. */ #undef HAVE_UTMPX_H -/* Define to 1 if you have the `vasprintf' function. */ +/* Define to 1 if you have the 'vasprintf' function. */ #undef HAVE_VASPRINTF -/* Define to 1 if you have the `va_copy' function. */ +/* Define to 1 if you have the 'va_copy' function. */ #undef HAVE_VA_COPY -/* Define to 1 if you have the `vsnprintf' function. */ +/* Define to 1 if you have the 'vsnprintf' function. */ #undef HAVE_VSNPRINTF /* Define to 1 if you have the header file. */ @@ -1042,34 +1081,34 @@ /* Define to 1 if you are using wolfSSL's TLS and sha2 functions. */ #undef HAVE_WOLFSSL -/* Define to 1 if you have the `wordexp' function. */ +/* Define to 1 if you have the 'wordexp' function. */ #undef HAVE_WORDEXP /* Define to 1 if you have the header file. */ #undef HAVE_WORDEXP_H -/* Define to 1 if you have the `X509_STORE_CTX_get0_cert' function. */ +/* Define to 1 if you have the 'X509_STORE_CTX_get0_cert' function. */ #undef HAVE_X509_STORE_CTX_GET0_CERT /* Define to 1 if you have the header file. */ #undef HAVE_ZLIB_H -/* Define to 1 if the system has the type `_Bool'. */ +/* Define to 1 if the system has the type '_Bool'. */ #undef HAVE__BOOL -/* Define to 1 if you have the `_getpty' function. */ +/* Define to 1 if you have the '_getpty' function. */ #undef HAVE__GETPTY -/* Define to 1 if you have the `_innetgr' function. */ +/* Define to 1 if you have the '_innetgr' function. */ #undef HAVE__INNETGR -/* Define to 1 if you have the `_nss_initf_group' function. */ +/* Define to 1 if you have the '_nss_initf_group' function. */ #undef HAVE__NSS_INITF_GROUP -/* Define to 1 if you have the `_nss_XbyY_buf_alloc' function. */ +/* Define to 1 if you have the '_nss_XbyY_buf_alloc' function. */ #undef HAVE__NSS_XBYY_BUF_ALLOC -/* Define to 1 if you have the `_ttyname_dev' function. */ +/* Define to 1 if you have the '_ttyname_dev' function. */ #undef HAVE__TTYNAME_DEV /* Define to 1 if the compiler supports the C99 __func__ variable. */ @@ -1078,16 +1117,16 @@ /* Define to 1 if you have dyld with __interpose attribute support. */ #undef HAVE___INTERPOSE -/* Define to 1 if you have the `__nss_initf_group' function. */ +/* Define to 1 if you have the '__nss_initf_group' function. */ #undef HAVE___NSS_INITF_GROUP -/* Define to 1 if you have the `__nss_XbyY_buf_alloc' function. */ +/* Define to 1 if you have the '__nss_XbyY_buf_alloc' function. */ #undef HAVE___NSS_XBYY_BUF_ALLOC /* Define to 1 if your crt0.o defines the __progname symbol for you. */ #undef HAVE___PROGNAME -/* Define to 1 if you have the `__va_copy' function. */ +/* Define to 1 if you have the '__va_copy' function. */ #undef HAVE___VA_COPY /* Define to 1 if you want the hostname to be entered into the log file. */ @@ -1117,11 +1156,11 @@ /* The user or email address that sudo mail is sent to. */ #undef MAILTO -/* Define to 1 if `major', `minor', and `makedev' are declared in . +/* Define to 1 if 'major', 'minor', and 'makedev' are declared in . */ #undef MAJOR_IN_MKDEV -/* Define to 1 if `major', `minor', and `makedev' are declared in +/* Define to 1 if 'major', 'minor', and 'makedev' are declared in . */ #undef MAJOR_IN_SYSMACROS @@ -1132,8 +1171,8 @@ */ #undef MAX_UID_T_LEN -/* Define to 1 if resolv.h must be included to get the `inet_ntop' or - `inet_pton' function prototypes. */ +/* Define to 1 if resolv.h must be included to get the 'inet_ntop' or + 'inet_pton' function prototypes. */ #undef NEED_RESOLV_H /* Define to 1 if you don't want sudo to prompt for a password by default. */ @@ -1202,7 +1241,7 @@ /* The syslog priority sudo will use for successful attempts. */ #undef PRI_SUCCESS -/* Define to const if the `putenv' takes a const argument. */ +/* Define to const if the 'putenv' takes a const argument. */ #undef PUTENV_CONST /* Define to 1 if you want insults from "Monty Python's Flying Circus". */ @@ -1237,7 +1276,7 @@ /* Define to 1 to send mail when the user is not in the sudoers file. */ #undef SEND_MAIL_WHEN_NO_USER -/* Define to 1 if the sha2 functions use `const void *' instead of `const +/* Define to 1 if the sha2 functions use 'const void *' instead of 'const unsigned char'. */ #undef SHA2_VOID_PTR @@ -1247,20 +1286,20 @@ /* Define to 1 if you want sudo to set $HOME in shell mode. */ #undef SHELL_SETS_HOME -/* The size of `id_t', as computed by sizeof. */ +/* The size of 'id_t', as computed by sizeof. */ #undef SIZEOF_ID_T -/* The size of `long long', as computed by sizeof. */ +/* The size of 'long long', as computed by sizeof. */ #undef SIZEOF_LONG_LONG -/* The size of `time_t', as computed by sizeof. */ +/* The size of 'time_t', as computed by sizeof. */ #undef SIZEOF_TIME_T /* Define to 1 to compile the sudoers plugin statically into the sudo binary. */ #undef STATIC_SUDOERS_PLUGIN -/* Define to 1 if all of the C90 standard headers exist (not just the ones +/* Define to 1 if all of the C89 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS @@ -1291,7 +1330,7 @@ restrictive than the invoking user's. */ #undef UMASK_OVERRIDE -/* Define to 1 if the `unsetenv' function returns void instead of `int'. */ +/* Define to 1 if the 'unsetenv' function returns void instead of 'int'. */ #undef UNSETENV_VOID /* Define to 1 if you want to insult the user for entering an incorrect @@ -1301,7 +1340,7 @@ /* Define to 1 if you use GNU stow packaging. */ #undef USE_STOW -/* Enable extensions on AIX 3, Interix. */ +/* Enable extensions on AIX, Interix, z/OS. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif @@ -1362,11 +1401,15 @@ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # undef __STDC_WANT_IEC_60559_DFP_EXT__ #endif +/* Enable extensions specified by C23 Annex F. */ +#ifndef __STDC_WANT_IEC_60559_EXT__ +# undef __STDC_WANT_IEC_60559_EXT__ +#endif /* Enable extensions specified by ISO/IEC TS 18661-4:2015. */ #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # undef __STDC_WANT_IEC_60559_FUNCS_EXT__ #endif -/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */ +/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015. */ #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__ # undef __STDC_WANT_IEC_60559_TYPES_EXT__ #endif @@ -1395,70 +1438,88 @@ /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS -/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* Define to 1 if necessary to make fseeko visible. */ #undef _LARGEFILE_SOURCE -/* Define for large files, on AIX-style hosts. */ +/* Define to 1 on platforms where this makes off_t a 64-bit type. */ #undef _LARGE_FILES -/* Number of bits in a time_t, on hosts where this is settable. */ +/* Number of bits in time_t, on hosts where this is settable. */ #undef _TIME_BITS +/* Define to 1 on platforms where this makes time_t a 64-bit type. */ +#undef __MINGW_USE_VC2005_COMPAT + /* Define to __FUNCTION__ if your compiler supports __FUNCTION__ but not __func__ */ #undef __func__ -/* Define to `int' if does not define. */ -#undef clockid_t - -/* Define to empty if `const' does not conform to ANSI C. */ +/* Define to empty if 'const' does not conform to ANSI C. */ #undef const -/* Define to `int' if doesn't define. */ +/* Define to 'int' if doesn't define. */ #undef gid_t -/* Define to `__inline__' or `__inline' if that's what the C compiler +/* Define to '__inline__' or '__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif -/* Define to `long long' if does not define. */ -#undef intmax_t - -/* Define to `int' if does not define. */ -#undef mode_t - -/* Define to an OS-specific initialization function or `os_init_common'. */ +/* Define to an OS-specific initialization function or 'os_init_common'. */ #undef os_init -/* Define to `int' if does not define. */ -#undef sig_atomic_t - -/* Define to `unsigned int' if does not define. */ +/* Define to 'unsigned int' if does not define. */ #undef size_t -/* Define to `unsigned int' if doesn't define. */ -#undef socklen_t - -/* Define to `int' if doesn't define. */ +/* Define to 'int' if doesn't define. */ #undef uid_t -/* Define to `unsigned int' if does not define. */ -#undef uint32_t - -/* Define to `unsigned long long' if does not define. */ -#undef uint64_t +/* Define to empty if the keyword 'volatile' does not work. Warning: valid + code using 'volatile' can become incorrect without. Disable with care. */ +#undef volatile -/* Define to `unsigned char' if does not define. */ -#undef uint8_t +/* Define C99 types if stdint.h and inttypes.h are missing. */ +#if !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H) +# ifndef HAVE_INT8_T +typedef char int8_t; +# endif +# ifndef HAVE_UINT8_T +typedef unsigned char uint8_t; +# endif +# ifndef HAVE_INT16_T +typedef short int16_t; +# endif +# ifndef HAVE_UINT16_T +typedef unsigned short uint16_t; +# endif +# ifndef HAVE_INT32_T +typedef int int32_t; +# endif +# ifndef HAVE_UINT32_T +typedef unsigned int uint32_t; +# endif +# ifndef HAVE_INT64_T +typedef long long int64_t; +# endif +# ifndef HAVE_UINT64_T +typedef unsigned long long uint64_t; +# endif +# ifndef HAVE_INTMAX_T +typedef long long intmax_t; +# endif +# ifndef HAVE_UINTMAX_T +typedef unsigned long long uintmax_t; +# endif +#endif /* !HAVE_STDINT_H && !HAVE_INTTYPES_H */ -/* Define to `unsigned long long' if does not define. */ -#undef uintmax_t +#ifndef HAVE_SIG_ATOMIC_T +typedef int sig_atomic_t; +#endif -/* Define to empty if the keyword `volatile' does not work. Warning: valid - code using `volatile' can become incorrect without. Disable with care. */ -#undef volatile +#ifndef HAVE_SOCKLEN_T +typedef unsigned int socklen_t; +#endif #ifndef __GNUC_PREREQ__ # ifdef __GNUC__ @@ -1475,10 +1536,17 @@ #endif /* For functions that call exit() directly. */ -#if __GNUC_PREREQ__(2, 5) -# define sudo_noreturn __attribute__((__noreturn__)) -#else -# define sudo_noreturn +#ifdef __has_c_attribute +# if __has_c_attribute(__noreturn__) +# define sudo_noreturn [[__noreturn__]] +# endif +#endif +#ifndef sudo_noreturn +# if __GNUC_PREREQ__(2, 5) +# define sudo_noreturn __attribute__((__noreturn__)) +# else +# define sudo_noreturn +# endif #endif /* For malloc-like functions that return uninitialized or zeroed memory. */ @@ -1506,6 +1574,20 @@ # define sudo_attr_fmt_arg(_f) #endif +/* C23 defines a fallthrough attribute, gcc 7.0 and clang 10 have their own. */ +#ifdef __has_c_attribute +# if __has_c_attribute(__fallthrough__) +# define FALLTHROUGH [[__fallthrough__]] +# endif +#endif +#ifndef FALLTHROUGH +# if defined(HAVE_FALLTHROUGH_ATTRIBUTE) +# define FALLTHROUGH __attribute__((__fallthrough__)) +# else +# define FALLTHROUGH do { } while (0) +# endif +#endif + /* Symbol visibility controls. */ #ifdef HAVE_DSO_VISIBILITY # if defined(__GNUC__) diff --git a/configure b/configure index 21da8f6f01..c7c643bec6 100755 --- a/configure +++ b/configure @@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for sudo 1.9.12p2. +# Generated by GNU Autoconf 2.72a for sudo 1.9.13. # # Report bugs to . # # -# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, # Inc. # # @@ -17,7 +17,6 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh @@ -26,12 +25,13 @@ then : # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in #( +else case e in #( + e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi @@ -103,7 +103,7 @@ IFS=$as_save_IFS ;; esac -# We did not find ourselves, most probably we were run as `sh COMMAND' +# We did not find ourselves, most probably we were run as 'sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 @@ -133,15 +133,14 @@ case $- in # (((( esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. +# out after a failed 'exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then - as_bourne_compatible="as_nop=: -if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 + as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: @@ -149,12 +148,13 @@ then : # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST -else \$as_nop - case \`(set -o) 2>/dev/null\` in #( +else case e in #( + e) case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi " @@ -172,8 +172,9 @@ as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : -else \$as_nop - exitcode=1; echo positional parameters were not saved. +else case e in #( + e) exitcode=1; echo positional parameters were not saved. ;; +esac fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) @@ -195,14 +196,15 @@ test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes -else $as_nop - as_have_required=no +else case e in #( + e) as_have_required=no ;; +esac fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : -else $as_nop - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +else case e in #( + e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do @@ -235,12 +237,13 @@ IFS=$as_save_IFS if $as_found then : -else $as_nop - if { test -f "$SHELL" || test -f "$SHELL.exe"; } && +else case e in #( + e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes -fi +fi ;; +esac fi @@ -262,7 +265,7 @@ case $- in # (((( esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. +# out after a failed 'exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi @@ -282,7 +285,8 @@ $0: install a modern shell, or manually run the script $0: under such a shell if you do have one." fi exit 1 -fi +fi ;; +esac fi fi SHELL=${CONFIG_SHELL-/bin/sh} @@ -321,14 +325,6 @@ as_fn_exit () as_fn_set_status $1 exit $1 } # as_fn_exit -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop # as_fn_mkdir_p # ------------- @@ -397,11 +393,12 @@ then : { eval $1+=\$2 }' -else $as_nop - as_fn_append () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -415,21 +412,14 @@ then : { as_val=$(( $* )) }' -else $as_nop - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith -# as_fn_nop -# --------- -# Do nothing but, unlike ":", preserve the value of $?. -as_fn_nop () -{ - return $? -} -as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- @@ -503,6 +493,8 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits /[$]LINENO/= ' <$as_myself | sed ' + t clear + :clear s/[$]LINENO.*/&-/ t lineno b @@ -551,7 +543,6 @@ esac as_echo='printf %s\n' as_echo_n='printf %s' - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file @@ -563,9 +554,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -590,10 +581,12 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated SHELL=${CONFIG_SHELL-/bin/sh} @@ -621,8 +614,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sudo' PACKAGE_TARNAME='sudo' -PACKAGE_VERSION='1.9.12p2' -PACKAGE_STRING='sudo 1.9.12p2' +PACKAGE_VERSION='1.9.13' +PACKAGE_STRING='sudo 1.9.13' PACKAGE_BUGREPORT='https://bugzilla.sudo.ws/' PACKAGE_URL='' @@ -662,6 +655,8 @@ ac_includes_default="\ ac_header_c_list= ac_func_c_list= ac_c_werror_flag= +enable_year2038=yes +enable_largefile=yes ac_subst_vars='LTLIBOBJS KRB5CONFIG LIBOBJS @@ -680,8 +675,6 @@ PYTHON FLEX YFLAGS YACC -NROFFPROG -MANDOCPROG TRPROG UNAMEPROG SHA1SUM @@ -730,6 +723,8 @@ OBJEXT EXEEXT ac_ct_CC CC +python_plugin +sudoers_plugin plugindir pam_login_service pam_session @@ -1067,10 +1062,11 @@ enable_intercept with_noexec with_netsvc enable_sia -enable_largefile with_pam_login enable_pam_session enable_kerb5_instance +enable_year2038 +enable_largefile ' ac_precious_vars='SENDMAILPROG VIPROG @@ -1200,7 +1196,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1226,7 +1222,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid feature name: \`$ac_useropt'" + as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1439,7 +1435,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1455,7 +1451,7 @@ do ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - as_fn_error $? "invalid package name: \`$ac_useropt'" + as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in @@ -1485,8 +1481,8 @@ do | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error $? "unrecognized option: \`$ac_option' -Try \`$0 --help' for more information" + -*) as_fn_error $? "unrecognized option: '$ac_option' +Try '$0 --help' for more information" ;; *=*) @@ -1494,7 +1490,7 @@ Try \`$0 --help' for more information" # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) - as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + as_fn_error $? "invalid variable name: '$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; @@ -1544,7 +1540,7 @@ do as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done -# There might be people who depend on the old broken behavior: `$host' +# There might be people who depend on the old broken behavior: '$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias @@ -1612,7 +1608,7 @@ if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` @@ -1640,7 +1636,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sudo 1.9.12p2 to adapt to many kinds of systems. +'configure' configures sudo 1.9.13 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1654,11 +1650,11 @@ Configuration: --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking ...' messages + -q, --quiet, --silent do not print 'checking ...' messages --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' + -C, --config-cache alias for '--cache-file=config.cache' -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] + --srcdir=DIR find the sources in DIR [configure dir or '..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX @@ -1666,10 +1662,10 @@ Installation directories: --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. +By default, 'make install' will install all the files in +'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc. You can specify +an installation prefix other than '$ac_default_prefix' using '--prefix', +for instance '--prefix=\$HOME'. For better control, use the options below. @@ -1706,7 +1702,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sudo 1.9.12p2:";; + short | recursive ) echo "Configuration of sudo 1.9.13:";; esac cat <<\_ACEOF @@ -1780,10 +1776,11 @@ Optional Features: --disable-libtool-lock avoid locking (might break parallel builds) --enable-intercept fully qualified pathname of sudo_intercept.so --disable-sia Disable SIA on Digital UNIX - --disable-largefile omit support for large files --disable-pam-session Disable PAM session support --enable-kerb5-instance instance string to append to the username (separated by a slash) + --disable-year2038 omit support for dates after Jan 2038 + --disable-largefile omit support for large files Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1838,10 +1835,10 @@ Optional Packages: --with-fqdn expect fully qualified hosts in sudoers --with-timedir=DIR deprecated --with-rundir=DIR directory for sudo-specific files that do not - survive a system reboot, e.g. `/var/run/sudo' + survive a system reboot, e.g. '/var/run/sudo' --with-vardir=DIR directory for sudo-specific files that survive a - system reboot, e.g. `/var/db/sudo' or - `/var/lib/sudo' + system reboot, e.g. '/var/db/sudo' or + '/var/lib/sudo' --with-iologdir=DIR directory to store sudo I/O log files in --with-relaydir=DIR directory to store sudo_logsrvd relay temporary files in @@ -1916,12 +1913,12 @@ Some influential environment variables: CPP C preprocessor LT_SYS_LIBRARY_PATH User-defined run-time library search path. - YACC The `Yet Another Compiler Compiler' implementation to use. - Defaults to the first program found out of: `bison -y', `byacc', - `yacc'. + YACC The 'Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: 'bison -y', 'byacc', + 'yacc'. YFLAGS The list of arguments that will be passed by default to $YACC. This script will default YFLAGS to the empty string to avoid a - default value of `-d' given by some make applications. + default value of '-d' given by some make applications. PYTHON the Python interpreter PYTHON_INCLUDE Include flags for python, bypassing python-config @@ -1929,7 +1926,7 @@ Some influential environment variables: PYTHON_CONFIG Path to python-config -Use these variables to override the choices made by `configure' or to help +Use these variables to override the choices made by 'configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . @@ -1996,10 +1993,10 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sudo configure 1.9.12p2 -generated by GNU Autoconf 2.71 +sudo configure 1.9.13 +generated by GNU Autoconf 2.72a -Copyright (C) 2021 Free Software Foundation, Inc. +Copyright (C) 2023 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -2038,11 +2035,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } && test -s conftest.$ac_objext then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -2061,8 +2059,8 @@ printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> @@ -2070,10 +2068,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2113,11 +2113,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would @@ -2156,11 +2157,12 @@ printf "%s\n" "$ac_try_echo"; } >&5 } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1 + ac_retval=1 ;; +esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval @@ -2178,15 +2180,15 @@ printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $2 (); below. */ + which can conflict with char $2 (void); below. */ #include #undef $2 @@ -2197,7 +2199,7 @@ else $as_nop #ifdef __cplusplus extern "C" #endif -char $2 (); +char $2 (void); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ @@ -2216,11 +2218,13 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$3=yes" -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2241,8 +2245,8 @@ printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 @@ -2272,12 +2276,14 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - eval "$3=yes" +else case e in #( + e) eval "$3=yes" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2299,8 +2305,8 @@ printf %s "checking whether $as_decl_name is declared... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 -else $as_nop - as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` +else case e in #( + e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` eval ac_save_FLAGS=\$$6 as_fn_append $6 " $5" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -2324,12 +2330,14 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" -else $as_nop - eval "$3=no" +else case e in #( + e) eval "$3=no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval $6=\$ac_save_FLAGS - + ;; +esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2350,8 +2358,8 @@ printf %s "checking for $2.$3... " >&6; } if eval test \${$4+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int @@ -2367,8 +2375,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$4=yes" -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int @@ -2384,12 +2392,15 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$4=yes" -else $as_nop - eval "$4=no" +else case e in #( + e) eval "$4=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$4 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -2428,12 +2439,13 @@ printf "%s\n" "$ac_try_echo"; } >&5 test $ac_status = 0; }; } then : ac_retval=0 -else $as_nop - printf "%s\n" "$as_me: program exited with status $ac_status" >&5 +else case e in #( + e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5 printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=$ac_status + ac_retval=$ac_status ;; +esac fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno @@ -2486,18 +2498,19 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=$ac_mid; break -else $as_nop - as_fn_arith $ac_mid + 1 && ac_lo=$as_val +else case e in #( + e) as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int @@ -2532,20 +2545,23 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_lo=$ac_mid; break -else $as_nop - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val +else case e in #( + e) as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done -else $as_nop - ac_lo= ac_hi= +else case e in #( + e) ac_lo= ac_hi= ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Binary search between lo and hi bounds. @@ -2568,8 +2584,9 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=$ac_mid -else $as_nop - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +else case e in #( + e) as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done @@ -2617,8 +2634,9 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : echo >>conftest.val; read $3 config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sudo $as_me 1.9.12p2, which was -generated by GNU Autoconf 2.71. Invocation command line was +It was created by sudo $as_me 1.9.13, which was +generated by GNU Autoconf 2.72a. Invocation command line was $ $0$ac_configure_args_raw @@ -2900,10 +2918,10 @@ esac printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ - || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } fi done @@ -2940,9 +2958,7 @@ struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; +static char *e (char **p, int i) { return p[i]; } @@ -2993,6 +3009,7 @@ extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); +extern void free (void *); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare @@ -3108,6 +3125,8 @@ ac_c_conftest_c99_main=' ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; + // Work around memory leak warnings. + free (ia); // Check named initializers. struct named_init ni = { @@ -3252,7 +3271,6 @@ as_fn_append ac_header_c_list " sys/bsdtypes.h sys_bsdtypes_h HAVE_SYS_BSDTYPES_ as_fn_append ac_header_c_list " sys/select.h sys_select_h HAVE_SYS_SELECT_H" as_fn_append ac_header_c_list " sys/stropts.h sys_stropts_h HAVE_SYS_STROPTS_H" as_fn_append ac_header_c_list " sys/sysmacros.h sys_sysmacros_h HAVE_SYS_SYSMACROS_H" -as_fn_append ac_header_c_list " sys/syscall.h sys_syscall_h HAVE_SYS_SYSCALL_H" as_fn_append ac_header_c_list " sys/statvfs.h sys_statvfs_h HAVE_SYS_STATVFS_H" as_fn_append ac_func_c_list " fexecve HAVE_FEXECVE" as_fn_append ac_func_c_list " fmemopen HAVE_FMEMOPEN" @@ -3260,7 +3278,6 @@ as_fn_append ac_func_c_list " killpg HAVE_KILLPG" as_fn_append ac_func_c_list " nl_langinfo HAVE_NL_LANGINFO" as_fn_append ac_func_c_list " faccessat HAVE_FACCESSAT" as_fn_append ac_func_c_list " wordexp HAVE_WORDEXP" -as_fn_append ac_func_c_list " getauxval HAVE_GETAUXVAL" as_fn_append ac_func_c_list " strtoull HAVE_STRTOULL" as_fn_append ac_func_c_list " seteuid HAVE_SETEUID" @@ -3342,8 +3359,9 @@ IFS=$as_save_IFS if $as_found then : -else $as_nop - as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +else case e in #( + e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;; +esac fi @@ -3371,12 +3389,12 @@ for ac_var in $ac_precious_vars; do eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) @@ -3385,18 +3403,18 @@ printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 -printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 -printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 -printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. @@ -3412,11 +3430,11 @@ printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi done if $ac_cache_corrupted; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} - as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## @@ -3575,6 +3593,8 @@ ac_config_headers="$ac_config_headers config.h pathnames.h" + + @@ -3626,6 +3646,8 @@ secure_path="not set" pam_session=on pam_login_service=sudo plugindir="$libexecdir/sudo" +sudoers_plugin="sudoers.so" +python_plugin="python_plugin.so" DIGEST=digest.lo devsearch="/dev/pts:/dev/vt:/dev/term:/dev/zcons:/dev/pty:/dev" # @@ -3717,8 +3739,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3740,7 +3762,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -3762,8 +3785,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3785,7 +3808,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -3820,8 +3844,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3843,7 +3867,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -3865,8 +3890,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no @@ -3905,7 +3930,8 @@ if test $ac_prog_rejected = yes; then ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -3929,8 +3955,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -3952,7 +3978,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -3978,8 +4005,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4001,7 +4028,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -4039,8 +4067,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC"; then +else case e in #( + e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4062,7 +4090,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then @@ -4084,8 +4113,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC"; then +else case e in #( + e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -4107,7 +4136,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then @@ -4136,10 +4166,10 @@ fi fi -test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -4211,8 +4241,8 @@ printf "%s\n" "$ac_try_echo"; } >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' + # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'. +# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. @@ -4232,7 +4262,7 @@ do ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' + # safe: cross compilers may not add the suffix if given an '-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. @@ -4243,8 +4273,9 @@ do done test "$ac_cv_exeext" = no && ac_cv_exeext= -else $as_nop - ac_file='' +else case e in #( + e) ac_file='' ;; +esac fi if test -z "$ac_file" then : @@ -4253,13 +4284,14 @@ printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } +See 'config.log' for more details" "$LINENO" 5; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } @@ -4283,10 +4315,10 @@ printf "%s\n" "$ac_try_echo"; } >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. + # If both 'conftest.exe' and 'conftest' are 'present' (well, observable) +# catch 'conftest.exe'. For instance with Cygwin, 'ls conftest' will +# work properly (i.e., refer to 'conftest.exe'), while it won't with +# 'rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in @@ -4296,11 +4328,12 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 @@ -4355,26 +4388,27 @@ printf "%s\n" "$ac_try_echo"; } >&5 if test "$cross_compiling" = maybe; then cross_compiling=yes else - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } +If you meant to cross compile, use '--host'. +See 'config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +rm -f conftest.$ac_ext conftest$ac_cv_exeext \ + conftest.o conftest.obj conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -4406,16 +4440,18 @@ then : break;; esac done -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext +rm -f conftest.$ac_cv_objext conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } @@ -4426,8 +4462,8 @@ printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -4444,12 +4480,14 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } @@ -4467,8 +4505,8 @@ printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_c_werror_flag=$ac_c_werror_flag +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" @@ -4486,8 +4524,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes -else $as_nop - CFLAGS="" +else case e in #( + e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4502,8 +4540,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - ac_c_werror_flag=$ac_save_c_werror_flag +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4520,12 +4558,15 @@ if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } @@ -4552,8 +4593,8 @@ printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c11=no +else case e in #( + e) ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4570,25 +4611,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c11" = x +else case e in #( + e) if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } - CC="$CC $ac_cv_prog_cc_c11" + CC="$CC $ac_cv_prog_cc_c11" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 - ac_prog_cc_stdc=c11 + ac_prog_cc_stdc=c11 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno @@ -4598,8 +4642,8 @@ printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c99=no +else case e in #( + e) ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4616,25 +4660,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c99" = x +else case e in #( + e) if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } - CC="$CC $ac_cv_prog_cc_c99" + CC="$CC $ac_cv_prog_cc_c99" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 - ac_prog_cc_stdc=c99 + ac_prog_cc_stdc=c99 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno @@ -4644,8 +4691,8 @@ printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_prog_cc_c89=no +else case e in #( + e) ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -4662,25 +4709,28 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext -CC=$ac_save_CC +CC=$ac_save_CC ;; +esac fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_prog_cc_c89" = x +else case e in #( + e) if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } - CC="$CC $ac_cv_prog_cc_c89" + CC="$CC $ac_cv_prog_cc_c89" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 - ac_prog_cc_stdc=c89 + ac_prog_cc_stdc=c89 ;; +esac fi fi @@ -4731,8 +4781,8 @@ printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; } if test ${ac_cv_safe_to_define___extensions__+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 @@ -4748,10 +4798,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_safe_to_define___extensions__=yes -else $as_nop - ac_cv_safe_to_define___extensions__=no +else case e in #( + e) ac_cv_safe_to_define___extensions__=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; } @@ -4761,8 +4813,8 @@ printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; } if test ${ac_cv_should_define__xopen_source+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_should_define__xopen_source=no +else case e in #( + e) ac_cv_should_define__xopen_source=no if test $ac_cv_header_wchar_h = yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -4781,8 +4833,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 500 @@ -4800,10 +4852,12 @@ if ac_fn_c_try_compile "$LINENO" then : ac_cv_should_define__xopen_source=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi +fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } @@ -4828,6 +4882,8 @@ printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; } printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h + printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h + printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h @@ -4847,8 +4903,9 @@ then : printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h -else $as_nop - MINIX= +else case e in #( + e) MINIX= ;; +esac fi if test $ac_cv_safe_to_define___extensions__ = yes then : @@ -4949,15 +5006,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-DSUDO_DEVEL { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi DEVEL="true" @@ -5042,10 +5100,11 @@ then : SUDOERS_LIBS="${SUDO_LIBS} -laudit" SUDOERS_OBJS="${SUDOERS_OBJS} linux_audit.lo" -else $as_nop - +else case e in #( + e) as_fn_error $? "unable to find AUDIT_USER_CMD in libaudit.h for --with-linux-audit" "$LINENO" 5 - + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; @@ -5155,15 +5214,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${i} { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi done @@ -5462,12 +5522,13 @@ then : *) as_fn_error $? "unknown argument to --with-logging: $with_logging" "$LINENO" 5 ;; esac -else $as_nop - +else case e in #( + e) with_logging=syslog printf "%s\n" "#define LOGGING SLOG_SYSLOG" >>confdefs.h - + ;; +esac fi @@ -5594,8 +5655,9 @@ then : esac fi -if test "$mail_no_user" = "on"; then - printf "%s\n" "#define SEND_MAIL_WHEN_NO_USER 1" >>confdefs.h +if test "$mail_no_user" = "on" +then : + printf "%s\n" "#define SEND_MAIL_WHEN_NO_USER 1" >>confdefs.h fi @@ -5953,9 +6015,10 @@ printf "%s\n" "#define EDITOR \"$with_editor\"" >>confdefs.h editor="$with_editor" ;; esac -else $as_nop - printf "%s\n" "#define EDITOR _PATH_VI" >>confdefs.h - +else case e in #( + e) printf "%s\n" "#define EDITOR _PATH_VI" >>confdefs.h + ;; +esac fi @@ -5973,8 +6036,9 @@ then : esac fi -if test "$env_editor" = "on"; then - printf "%s\n" "#define ENV_EDITOR 1" >>confdefs.h +if test "$env_editor" = "on" +then : + printf "%s\n" "#define ENV_EDITOR 1" >>confdefs.h fi @@ -6262,22 +6326,29 @@ then : no) ;; *) ;; esac -else $as_nop - +else case e in #( + e) with_askpass=no - + ;; +esac fi -if test X"$with_askpass" != X"no"; then +if test X"$with_askpass" != X"no" +then : + cat >>confdefs.h <>confdefs.h <&5 -printf "%s\n" "no" >&6; } fi @@ -6517,8 +6585,9 @@ fi if test ${enable_zlib+y} then : enableval=$enable_zlib; -else $as_nop - enable_zlib=yes +else case e in #( + e) enable_zlib=yes ;; +esac fi @@ -6543,15 +6612,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-DZLIB_CONST { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi @@ -6571,12 +6641,18 @@ printf "%s\n" "$as_me: WARNING: ignoring unknown argument to --enable-env-reset: fi -if test "$env_reset" = "on"; then +if test "$env_reset" = "on" +then : + printf "%s\n" "#define ENV_RESET 1" >>confdefs.h -else + +else case e in #( + e) printf "%s\n" "#define ENV_RESET 0" >>confdefs.h + ;; +esac fi # Check whether --enable-warnings was given. @@ -6611,8 +6687,9 @@ fi if test ${enable_ssp+y} then : enableval=$enable_ssp; -else $as_nop - enable_ssp=yes +else case e in #( + e) enable_ssp=yes ;; +esac fi @@ -6620,8 +6697,9 @@ fi if test ${enable_hardening+y} then : enableval=$enable_hardening; -else $as_nop - enable_hardening=yes +else case e in #( + e) enable_hardening=yes ;; +esac fi @@ -6636,12 +6714,16 @@ fi if test ${enable_sanitizer+y} then : enableval=$enable_sanitizer; -if test X"$enable_sanitizer" = X"yes"; then - enable_sanitizer="-fsanitize=address,undefined" + if test X"$enable_sanitizer" = X"yes" +then : + + enable_sanitizer="-fsanitize=address,undefined" + fi -else $as_nop - enable_sanitizer=no +else case e in #( + e) enable_sanitizer=no ;; +esac fi @@ -6649,8 +6731,9 @@ fi if test ${enable_fuzzer+y} then : enableval=$enable_fuzzer; -else $as_nop - enable_fuzzer=no +else case e in #( + e) enable_fuzzer=no ;; +esac fi @@ -6729,8 +6812,9 @@ fi if test ${enable_nls+y} then : enableval=$enable_nls; -else $as_nop - enable_nls=yes +else case e in #( + e) enable_nls=yes ;; +esac fi @@ -6738,8 +6822,9 @@ fi if test ${enable_rpath+y} then : enableval=$enable_rpath; -else $as_nop - enable_rpath=yes +else case e in #( + e) enable_rpath=yes ;; +esac fi @@ -6747,8 +6832,9 @@ fi if test ${enable_static_sudoers+y} then : enableval=$enable_static_sudoers; -else $as_nop - enable_static_sudoers=no +else case e in #( + e) enable_static_sudoers=no ;; +esac fi @@ -6756,8 +6842,9 @@ fi if test ${enable_shared_libutil+y} then : enableval=$enable_shared_libutil; -else $as_nop - enable_shared_libutil=yes +else case e in #( + e) enable_shared_libutil=yes ;; +esac fi @@ -6771,10 +6858,11 @@ then : ;; *) TMPFILES_D="$enableval" esac -else $as_nop - +else case e in #( + e) test -f /usr/lib/tmpfiles.d/systemd.conf && TMPFILES_D=/usr/lib/tmpfiles.d - + ;; +esac fi @@ -6815,16 +6903,22 @@ printf %s "checking for setkeycreatecon in -lselinux... " >&6; } if test ${ac_cv_lib_selinux_setkeycreatecon+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lselinux $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char setkeycreatecon (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char setkeycreatecon (void); int main (void) { @@ -6836,12 +6930,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_selinux_setkeycreatecon=yes -else $as_nop - ac_cv_lib_selinux_setkeycreatecon=no +else case e in #( + e) ac_cv_lib_selinux_setkeycreatecon=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_setkeycreatecon" >&5 printf "%s\n" "$ac_cv_lib_selinux_setkeycreatecon" >&6; } @@ -6856,8 +6952,9 @@ fi *) as_fn_error $? "--with-selinux does not take an argument." "$LINENO" 5 ;; esac -else $as_nop - with_selinux=no +else case e in #( + e) with_selinux=no ;; +esac fi @@ -6876,8 +6973,9 @@ then : *) as_fn_error $? "--with-apparmor does not take an argument." "$LINENO" 5 esac -else $as_nop - with_apparmor=no +else case e in #( + e) with_apparmor=no ;; +esac fi @@ -6915,12 +7013,14 @@ printf "%s\n" "#define TIMESTAMP_TYPE $timestamp_type" >>confdefs.h if test ${enable_offensive_insults+y} then : enableval=$enable_offensive_insults; -else $as_nop - enable_offensive_insults=no +else case e in #( + e) enable_offensive_insults=no ;; +esac fi -if test "$enable_offensive_insults" = "yes"; then - printf "%s\n" "#define OFFENSIVE_INSULTS 1" >>confdefs.h +if test "$enable_offensive_insults" = "yes" +then : + printf "%s\n" "#define OFFENSIVE_INSULTS 1" >>confdefs.h fi @@ -6928,8 +7028,9 @@ fi if test ${enable_package_build+y} then : enableval=$enable_package_build; -else $as_nop - enable_package_build=no +else case e in #( + e) enable_package_build=no ;; +esac fi @@ -6937,8 +7038,9 @@ fi if test ${enable_gss_krb5_ccache_name+y} then : enableval=$enable_gss_krb5_ccache_name; check_gss_krb5_ccache_name=$enableval -else $as_nop - check_gss_krb5_ccache_name=no +else case e in #( + e) check_gss_krb5_ccache_name=no ;; +esac fi @@ -6983,40 +7085,52 @@ printf "%s\n" "$as_me: WARNING: ignoring unknown argument to --enable-log-client ;; esac -else $as_nop - printf "%s\n" "#define SUDOERS_LOG_CLIENT 1" >>confdefs.h - +else case e in #( + e) printf "%s\n" "#define SUDOERS_LOG_CLIENT 1" >>confdefs.h + ;; +esac fi -if test X"${enable_log_client}${enable_log_server}" = X"nono"; then +if test X"${enable_log_client}${enable_log_server}" = X"nono" +then : + # No need for liblogsrv.la LOGSRV_SRC= LIBLOGSRV= + fi -if test X"$LOGSRVD_SRC" != X""; then +if test X"$LOGSRVD_SRC" != X"" +then : + PPFILES="$PPFILES "'$(srcdir)/etc/sudo-logsrvd.pp' + fi # Check whether --enable-openssl was given. if test ${enable_openssl+y} then : enableval=$enable_openssl; -else $as_nop - +else case e in #( + e) # Enable OpenSSL by default unless logsrvd and client are disabled - if test X"${enable_log_client}${enable_log_server}" != X"nono"; then + if test X"${enable_log_client}${enable_log_server}" != X"nono" +then : + enable_openssl=maybe - fi +fi + ;; +esac fi # Check whether --enable-openssl-pkgconfig-template was given. if test ${enable_openssl_pkgconfig_template+y} then : enableval=$enable_openssl_pkgconfig_template; -else $as_nop - enable_openssl_pkgconfig_template="%s" +else case e in #( + e) enable_openssl_pkgconfig_template="%s" ;; +esac fi @@ -7033,11 +7147,14 @@ fi if test ${enable_gcrypt+y} then : enableval=$enable_gcrypt; - if test "${enable_openssl-no}${enable_wolfssl-no}" != "nono"; then + if test "${enable_openssl-no}${enable_wolfssl-no}" != "nono" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ignoring --enable-gcrypt when OpenSSL or wolfSSL is enabled." >&5 printf "%s\n" "$as_me: WARNING: ignoring --enable-gcrypt when OpenSSL or wolfSSL is enabled." >&2;} enable_gcrypt=no - fi + +fi fi @@ -7071,8 +7188,8 @@ if test -z "$CPP"; then if test ${ac_cv_prog_CPP+y} then : printf %s "(cached) " >&6 -else $as_nop - # Double quotes because $CC needs to be expanded +else case e in #( + e) # Double quotes because $CC needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false @@ -7090,9 +7207,10 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -7106,15 +7224,16 @@ if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : @@ -7123,7 +7242,8 @@ fi done ac_cv_prog_CPP=$CPP - + ;; +esac fi CPP=$ac_cv_prog_CPP else @@ -7146,9 +7266,10 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -7162,24 +7283,26 @@ if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi ac_ext=c @@ -7196,8 +7319,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AR"; then +else case e in #( + e) if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7219,7 +7342,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi AR=$ac_cv_prog_AR if test -n "$AR"; then @@ -7241,8 +7365,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_AR"; then +else case e in #( + e) if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7264,7 +7388,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then @@ -7298,8 +7423,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RANLIB+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$RANLIB"; then +else case e in #( + e) if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7321,7 +7446,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then @@ -7343,8 +7469,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_RANLIB+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_RANLIB"; then +else case e in #( + e) if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7366,7 +7492,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then @@ -7392,8 +7519,11 @@ else RANLIB="$ac_cv_prog_RANLIB" fi -if test X"$AR" = X"false"; then +if test X"$AR" = X"false" +then : + as_fn_error $? "the \"ar\" utility is required to build sudo" "$LINENO" 5 + fi @@ -7407,15 +7537,16 @@ printf %s "checking build system type... " >&6; } if test ${ac_cv_build+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_build_alias=$build_alias +else case e in #( + e) ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 printf "%s\n" "$ac_cv_build" >&6; } @@ -7457,10 +7588,10 @@ ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_F ac_compiler_gnu=$ac_cv_build_c_compiler_gnu -was_set_ac_cv_c_compiler_gnu=${ac_cv_c_compiler_gnu+y} -if test ${was_set_ac_cv_c_compiler_gnu} +was_set_c_compiler_gnu=${ac_cv_c_compiler_gnu+y} +if test ${was_set_c_compiler_gnu} then : - saved_ac_cv_c_compiler_gnu=$ac_cv_c_compiler_gnu + saved_c_compiler_gnu=$ac_cv_c_compiler_gnu { ac_cv_c_compiler_gnu=; unset ac_cv_c_compiler_gnu;} fi @@ -7477,8 +7608,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC_FOR_BUILD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC_FOR_BUILD"; then +else case e in #( + e) if test -n "$CC_FOR_BUILD"; then ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7500,7 +7631,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD if test -n "$CC_FOR_BUILD"; then @@ -7522,8 +7654,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC_FOR_BUILD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC_FOR_BUILD"; then +else case e in #( + e) if test -n "$ac_ct_CC_FOR_BUILD"; then ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_ct_CC_FOR_BUILD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7545,7 +7677,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC_FOR_BUILD=$ac_cv_prog_ac_ct_CC_FOR_BUILD if test -n "$ac_ct_CC_FOR_BUILD"; then @@ -7580,8 +7713,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC_FOR_BUILD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC_FOR_BUILD"; then +else case e in #( + e) if test -n "$CC_FOR_BUILD"; then ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7603,7 +7736,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD if test -n "$CC_FOR_BUILD"; then @@ -7625,8 +7759,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC_FOR_BUILD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC_FOR_BUILD"; then +else case e in #( + e) if test -n "$CC_FOR_BUILD"; then ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. else ac_prog_rejected=no @@ -7665,7 +7799,8 @@ if test $ac_prog_rejected = yes; then ac_cv_prog_CC_FOR_BUILD="$as_dir$ac_word${1+' '}$@" fi fi -fi +fi ;; +esac fi CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD if test -n "$CC_FOR_BUILD"; then @@ -7689,8 +7824,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC_FOR_BUILD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC_FOR_BUILD"; then +else case e in #( + e) if test -n "$CC_FOR_BUILD"; then ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7712,7 +7847,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD if test -n "$CC_FOR_BUILD"; then @@ -7738,8 +7874,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC_FOR_BUILD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC_FOR_BUILD"; then +else case e in #( + e) if test -n "$ac_ct_CC_FOR_BUILD"; then ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_ct_CC_FOR_BUILD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7761,7 +7897,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC_FOR_BUILD=$ac_cv_prog_ac_ct_CC_FOR_BUILD if test -n "$ac_ct_CC_FOR_BUILD"; then @@ -7799,8 +7936,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC_FOR_BUILD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$CC_FOR_BUILD"; then +else case e in #( + e) if test -n "$CC_FOR_BUILD"; then ac_cv_prog_CC_FOR_BUILD="$CC_FOR_BUILD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7822,7 +7959,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi CC_FOR_BUILD=$ac_cv_prog_CC_FOR_BUILD if test -n "$CC_FOR_BUILD"; then @@ -7844,8 +7982,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC_FOR_BUILD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_CC_FOR_BUILD"; then +else case e in #( + e) if test -n "$ac_ct_CC_FOR_BUILD"; then ac_cv_prog_ac_ct_CC_FOR_BUILD="$ac_ct_CC_FOR_BUILD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -7867,7 +8005,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_CC_FOR_BUILD=$ac_cv_prog_ac_ct_CC_FOR_BUILD if test -n "$ac_ct_CC_FOR_BUILD"; then @@ -7896,10 +8035,10 @@ fi fi -test -z "$CC_FOR_BUILD" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +test -z "$CC_FOR_BUILD" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 @@ -7931,8 +8070,8 @@ printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -7949,12 +8088,14 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes -else $as_nop - ac_compiler_gnu=no +else case e in #( + e) ac_compiler_gnu=no ;; +esac fi rm -f core conftest.err conftest.$ac_build_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } @@ -7972,8 +8113,8 @@ printf %s "checking whether $CC_FOR_BUILD accepts -g... " >&6; } if test ${ac_cv_build_prog_cc_g+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_c_werror_flag=$ac_c_werror_flag +else case e in #( + e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_build_prog_cc_g=no CFLAGS_FOR_BUILD="-g" @@ -7991,8 +8132,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_build_prog_cc_g=yes -else $as_nop - CFLAGS_FOR_BUILD="" +else case e in #( + e) CFLAGS_FOR_BUILD="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8007,8 +8148,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - ac_c_werror_flag=$ac_save_c_werror_flag +else case e in #( + e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS_FOR_BUILD="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8025,12 +8166,15 @@ if ac_fn_c_try_compile "$LINENO" then : ac_cv_build_prog_cc_g=yes fi -rm -f core conftest.err conftest.$ac_build_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_build_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_build_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_build_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_build_objext conftest.beam conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag + ac_c_werror_flag=$ac_save_c_werror_flag ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_g" >&5 printf "%s\n" "$ac_cv_build_prog_cc_g" >&6; } @@ -8057,8 +8201,8 @@ printf %s "checking for $CC_FOR_BUILD option to enable C11 features... " >&6; } if test ${ac_cv_build_prog_cc_c11+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_build_prog_cc_c11=no +else case e in #( + e) ac_cv_build_prog_cc_c11=no ac_save_CC=$CC_FOR_BUILD cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8075,25 +8219,28 @@ rm -f core conftest.err conftest.$ac_build_objext conftest.beam test "x$ac_cv_build_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext -CC_FOR_BUILD=$ac_save_CC +CC_FOR_BUILD=$ac_save_CC ;; +esac fi if test "x$ac_cv_build_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_build_prog_cc_c11" = x +else case e in #( + e) if test "x$ac_cv_build_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_c11" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_build_prog_cc_c11" >&6; } - CC_FOR_BUILD="$CC_FOR_BUILD $ac_cv_build_prog_cc_c11" + CC_FOR_BUILD="$CC_FOR_BUILD $ac_cv_build_prog_cc_c11" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_build_prog_cc_c11 - ac_prog_cc_stdc=c11 + ac_prog_cc_stdc=c11 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno @@ -8103,8 +8250,8 @@ printf %s "checking for $CC_FOR_BUILD option to enable C99 features... " >&6; } if test ${ac_cv_build_prog_cc_c99+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_build_prog_cc_c99=no +else case e in #( + e) ac_cv_build_prog_cc_c99=no ac_save_CC=$CC_FOR_BUILD cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8121,25 +8268,28 @@ rm -f core conftest.err conftest.$ac_build_objext conftest.beam test "x$ac_cv_build_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext -CC_FOR_BUILD=$ac_save_CC +CC_FOR_BUILD=$ac_save_CC ;; +esac fi if test "x$ac_cv_build_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_build_prog_cc_c99" = x +else case e in #( + e) if test "x$ac_cv_build_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_c99" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_build_prog_cc_c99" >&6; } - CC_FOR_BUILD="$CC_FOR_BUILD $ac_cv_build_prog_cc_c99" + CC_FOR_BUILD="$CC_FOR_BUILD $ac_cv_build_prog_cc_c99" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_build_prog_cc_c99 - ac_prog_cc_stdc=c99 + ac_prog_cc_stdc=c99 ;; +esac fi fi if test x$ac_prog_cc_stdc = xno @@ -8149,8 +8299,8 @@ printf %s "checking for $CC_FOR_BUILD option to enable C89 features... " >&6; } if test ${ac_cv_build_prog_cc_c89+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_build_prog_cc_c89=no +else case e in #( + e) ac_cv_build_prog_cc_c89=no ac_save_CC=$CC_FOR_BUILD cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -8167,25 +8317,28 @@ rm -f core conftest.err conftest.$ac_build_objext conftest.beam test "x$ac_cv_build_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext -CC_FOR_BUILD=$ac_save_CC +CC_FOR_BUILD=$ac_save_CC ;; +esac fi if test "x$ac_cv_build_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } -else $as_nop - if test "x$ac_cv_build_prog_cc_c89" = x +else case e in #( + e) if test "x$ac_cv_build_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_c89" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_build_prog_cc_c89" >&6; } - CC_FOR_BUILD="$CC_FOR_BUILD $ac_cv_build_prog_cc_c89" + CC_FOR_BUILD="$CC_FOR_BUILD $ac_cv_build_prog_cc_c89" ;; +esac fi ac_cv_prog_cc_stdc=$ac_cv_build_prog_cc_c89 - ac_prog_cc_stdc=c89 + ac_prog_cc_stdc=c89 ;; +esac fi fi @@ -8196,9 +8349,9 @@ ac_link='$CC_FOR_BUILD -o conftest$ac_build_exeext $CFLAGS_FOR_BUILD $CPPFLAGS_F ac_compiler_gnu=$ac_cv_build_c_compiler_gnu -if test ${was_set_ac_cv_c_compiler_gnu} +if test ${was_set_c_compiler_gnu} then : - ac_cv_c_compiler_gnu=saved_ac_cv_c_compiler_gnu + ac_cv_c_compiler_gnu=$saved_c_compiler_gnu fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -8246,8 +8399,8 @@ printf "%s\n" "$ac_try_echo"; } >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' + # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'. +# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. @@ -8267,7 +8420,7 @@ do ac_cv_build_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' + # safe: cross compilers may not add the suffix if given an '-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. @@ -8278,8 +8431,9 @@ do done test "$ac_cv_build_exeext" = no && ac_cv_build_exeext= -else $as_nop - ac_file='' +else case e in #( + e) ac_file='' ;; +esac fi if test -z "$ac_file" then : @@ -8288,13 +8442,14 @@ printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } +See 'config.log' for more details" "$LINENO" 5; } +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } @@ -8318,10 +8473,10 @@ printf "%s\n" "$ac_try_echo"; } >&5 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. + # If both 'conftest.exe' and 'conftest' are 'present' (well, observable) +# catch 'conftest.exe'. For instance with Cygwin, 'ls conftest' will +# work properly (i.e., refer to 'conftest.exe'), while it won't with +# 'rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in @@ -8331,11 +8486,12 @@ for ac_file in conftest.exe conftest conftest.*; do * ) break;; esac done -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi rm -f conftest conftest$ac_cv_build_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_exeext" >&5 @@ -8390,18 +8546,19 @@ printf "%s\n" "$ac_try_echo"; } >&5 if test "$cross_compiling_build" = maybe; then cross_compiling_build=yes else - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. -If you meant to cross compile, use \`--build'. -See \`config.log' for more details" "$LINENO" 5; } +If you meant to cross compile, use '--build'. +See 'config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling_build" >&5 printf "%s\n" "$cross_compiling_build" >&6; } -rm -f conftest.$ac_ext conftest$ac_cv_build_exeext conftest.out +rm -f conftest.$ac_ext conftest$ac_cv_build_exeext \ + conftest.o conftest.obj conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 @@ -8409,8 +8566,8 @@ printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_build_objext+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -8442,16 +8599,18 @@ then : break;; esac done -else $as_nop - printf "%s\n" "$as_me: failed program was:" >&5 +else case e in #( + e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi -rm -f conftest.$ac_cv_build_objext conftest.$ac_ext +rm -f conftest.$ac_cv_build_objext conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build_objext" >&5 printf "%s\n" "$ac_cv_build_objext" >&6; } @@ -8473,8 +8632,8 @@ if test -z "$CPP_FOR_BUILD"; then if test ${ac_cv_build_prog_CPP+y} then : printf %s "(cached) " >&6 -else $as_nop - # Double quotes because $CC needs to be expanded +else case e in #( + e) # Double quotes because $CC needs to be expanded for CPP_FOR_BUILD in "$CC_FOR_BUILD -E" "$CC_FOR_BUILD -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false @@ -8492,9 +8651,10 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -8508,15 +8668,16 @@ if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : @@ -8525,7 +8686,8 @@ fi done ac_cv_build_prog_CPP=$CPP_FOR_BUILD - + ;; +esac fi CPP_FOR_BUILD=$ac_cv_build_prog_CPP else @@ -8548,9 +8710,10 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : -else $as_nop - # Broken: fails on valid input. -continue +else case e in #( + e) # Broken: fails on valid input. +continue ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext @@ -8564,24 +8727,26 @@ if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue -else $as_nop - # Passes both tests. +else case e in #( + e) # Passes both tests. ac_preproc_ok=: -break +break ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : -else $as_nop - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP_FOR_BUILD\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } ;; +esac fi ac_ext=c @@ -8601,14 +8766,20 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test "x$ac_cv_prog_cc_c89" = "xno"; then +if test "x$ac_cv_prog_cc_c89" = "xno" +then : + as_fn_error $? "Sudo version $PACKAGE_VERSION requires an ANSI C compiler to build." "$LINENO" 5 + fi -if test "$enable_static" = "no"; then +if test "$enable_static" = "no" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: ignoring --disable-static, sudo does not install static libs" >&5 printf "%s\n" "$as_me: WARNING: ignoring --disable-static, sudo does not install static libs" >&2;} enable_static=yes + fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 @@ -8616,14 +8787,15 @@ printf %s "checking host system type... " >&6; } if test ${ac_cv_host+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "x$host_alias" = x; then +else case e in #( + e) if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 printf "%s\n" "$ac_cv_host" >&6; } @@ -8647,46 +8819,40 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac -case "$host_os" in -aix4.[23]|aix4.[23].*|aix[5-9]*) - -if test ${LDFLAGS+y} -then : - - case " $LDFLAGS " in #( - *" -Wl,-brtl "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS already contains -Wl,-brtl"; } >&5 - (: LDFLAGS already contains -Wl,-brtl) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } ;; #( - *) : - - as_fn_append LDFLAGS " -Wl,-brtl" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - ;; -esac -else $as_nop + if test X"$enable_pvs_studio" = X"yes"; then + # Determine preprocessor type + case "$CC" in + *clang*) preprocessor=clang;; + *gcc*) preprocessor=gcc;; + *) case `$CC --version 2>&1` in + *clang*) preprocessor=clang;; + *gcc*) preprocessor=gcc;; + *) as_fn_error $? "Compiler must be gcc or clang for PVS-Studio." "$LINENO" 5;; + esac + ;; + esac - LDFLAGS=-Wl,-brtl - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } + # Determine platform (currently linux or macos) + case "$host" in + x86_64-*-linux*) pvs_platform=linux64;; + *86-*-linux*) pvs_platform=linux32;; + *-*-darwin*) pvs_platform=macos;; + *) as_fn_error $? "PVS-Studio does not support $host." "$LINENO" 5;; + esac -fi + # Create a basic PVS-Studio.cfg file + cat > PVS-Studio.cfg <<-EOF + preprocessor = $preprocessor + platform = $pvs_platform + analysis-mode = 4 + language = C + EOF + fi - ;; -esac case "$host_os" in -hiuxmpp*|hpux11.1[1-9]|hpux11.[2-9][0-9]|hpux1[2-9].*) +hpux11.1[1-9]|hpux11.[2-9][0-9]|hpux1[2-9].*) # Prefer dlopen() over shl_load() : ${ac_cv_func_shl_load='no'} : ${ac_cv_lib_dld_shl_load='no'} @@ -8795,8 +8961,8 @@ printf %s "checking for a sed that does not truncate output... " >&6; } if test ${ac_cv_path_SED+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ +else case e in #( + e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done @@ -8858,7 +9024,8 @@ IFS=$as_save_IFS else ac_cv_path_SED=$SED fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 printf "%s\n" "$ac_cv_path_SED" >&6; } @@ -8883,8 +9050,8 @@ printf %s "checking for grep that handles long lines and -e... " >&6; } if test ${ac_cv_path_GREP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$GREP"; then +else case e in #( + e) if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -8940,7 +9107,8 @@ IFS=$as_save_IFS else ac_cv_path_GREP=$GREP fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 printf "%s\n" "$ac_cv_path_GREP" >&6; } @@ -8952,8 +9120,8 @@ printf %s "checking for egrep... " >&6; } if test ${ac_cv_path_EGREP+y} then : printf %s "(cached) " >&6 -else $as_nop - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 +else case e in #( + e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then @@ -9013,7 +9181,8 @@ else ac_cv_path_EGREP=$EGREP fi - fi + fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 printf "%s\n" "$ac_cv_path_EGREP" >&6; } @@ -9025,8 +9194,8 @@ printf %s "checking for fgrep... " >&6; } if test ${ac_cv_path_FGREP+y} then : printf %s "(cached) " >&6 -else $as_nop - if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 +else case e in #( + e) if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then @@ -9086,7 +9255,8 @@ else ac_cv_path_FGREP=$FGREP fi - fi + fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 printf "%s\n" "$ac_cv_path_FGREP" >&6; } @@ -9117,8 +9287,9 @@ test -z "$GREP" && GREP=grep if test ${with_gnu_ld+y} then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes -else $as_nop - with_gnu_ld=no +else case e in #( + e) with_gnu_ld=no ;; +esac fi ac_prog=ld @@ -9163,8 +9334,8 @@ fi if test ${lt_cv_path_LD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -z "$LD"; then +else case e in #( + e) if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs @@ -9187,7 +9358,8 @@ else $as_nop IFS=$lt_save_ifs else lt_cv_path_LD=$LD # Let the user override the test with a path. -fi +fi ;; +esac fi LD=$lt_cv_path_LD @@ -9204,8 +9376,8 @@ printf %s "checking if the linker ($LD) is GNU ld... " >&6; } if test ${lt_cv_prog_gnu_ld+y} then : printf %s "(cached) " >&6 -else $as_nop - # I'd rather use --version here, but apparently some GNU lds only accept -v. +else case e in #( + e) # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &1 &5 @@ -9232,8 +9405,8 @@ printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test ${lt_cv_path_NM+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$NM"; then +else case e in #( + e) if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else @@ -9280,7 +9453,8 @@ else IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} -fi +fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 printf "%s\n" "$lt_cv_path_NM" >&6; } @@ -9301,8 +9475,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DUMPBIN+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DUMPBIN"; then +else case e in #( + e) if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -9324,7 +9498,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then @@ -9350,8 +9525,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DUMPBIN+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DUMPBIN"; then +else case e in #( + e) if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -9373,7 +9548,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then @@ -9427,8 +9603,8 @@ printf %s "checking the name lister ($NM) interface... " >&6; } if test ${lt_cv_nm_interface+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_nm_interface="BSD nm" +else case e in #( + e) lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) @@ -9441,7 +9617,8 @@ else $as_nop if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi - rm -f conftest* + rm -f conftest* ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 printf "%s\n" "$lt_cv_nm_interface" >&6; } @@ -9463,8 +9640,8 @@ printf %s "checking the maximum length of command line arguments... " >&6; } if test ${lt_cv_sys_max_cmd_len+y} then : printf %s "(cached) " >&6 -else $as_nop - i=0 +else case e in #( + e) i=0 teststring=ABCD case $build_os in @@ -9586,7 +9763,8 @@ else $as_nop fi ;; esac - + ;; +esac fi if test -n "$lt_cv_sys_max_cmd_len"; then @@ -9643,8 +9821,8 @@ printf %s "checking how to convert $build file names to $host format... " >&6; } if test ${lt_cv_to_host_file_cmd+y} then : printf %s "(cached) " >&6 -else $as_nop - case $host in +else case e in #( + e) case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys @@ -9675,7 +9853,8 @@ else $as_nop lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac - + ;; +esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd @@ -9691,8 +9870,8 @@ printf %s "checking how to convert $build file names to toolchain format... " >& if test ${lt_cv_to_tool_file_cmd+y} then : printf %s "(cached) " >&6 -else $as_nop - #assume ordinary cross tools, or native build. +else case e in #( + e) #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) @@ -9703,7 +9882,8 @@ case $host in esac ;; esac - + ;; +esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd @@ -9719,8 +9899,9 @@ printf %s "checking for $LD option to reload object files... " >&6; } if test ${lt_cv_ld_reload_flag+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_reload_flag='-r' +else case e in #( + e) lt_cv_ld_reload_flag='-r' ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } @@ -9761,8 +9942,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_FILECMD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$FILECMD"; then +else case e in #( + e) if test -n "$FILECMD"; then ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -9784,7 +9965,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi FILECMD=$ac_cv_prog_FILECMD if test -n "$FILECMD"; then @@ -9806,8 +9988,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_FILECMD+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_FILECMD"; then +else case e in #( + e) if test -n "$ac_ct_FILECMD"; then ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -9829,7 +10011,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD if test -n "$ac_ct_FILECMD"; then @@ -9869,8 +10052,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OBJDUMP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OBJDUMP"; then +else case e in #( + e) if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -9892,7 +10075,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then @@ -9914,8 +10098,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OBJDUMP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OBJDUMP"; then +else case e in #( + e) if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -9937,7 +10121,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then @@ -9978,8 +10163,8 @@ printf %s "checking how to recognize dependent libraries... " >&6; } if test ${lt_cv_deplibs_check_method+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_file_magic_cmd='$MAGIC_CMD' +else case e in #( + e) lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support @@ -10158,7 +10343,8 @@ os2*) lt_cv_deplibs_check_method=pass_all ;; esac - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } @@ -10210,8 +10396,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DLLTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DLLTOOL"; then +else case e in #( + e) if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10233,7 +10419,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then @@ -10255,8 +10442,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DLLTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DLLTOOL"; then +else case e in #( + e) if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10278,7 +10465,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then @@ -10320,8 +10508,8 @@ printf %s "checking how to associate runtime and link libraries... " >&6; } if test ${lt_cv_sharedlib_from_linklib_cmd+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_sharedlib_from_linklib_cmd='unknown' +else case e in #( + e) lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) @@ -10341,7 +10529,8 @@ cygwin* | mingw* | pw32* | cegcc*) lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } @@ -10364,8 +10553,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AR"; then +else case e in #( + e) if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10387,7 +10576,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi AR=$ac_cv_prog_AR if test -n "$AR"; then @@ -10413,8 +10603,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_AR"; then +else case e in #( + e) if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10436,7 +10626,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then @@ -10498,8 +10689,8 @@ printf %s "checking for archiver @FILE support... " >&6; } if test ${lt_cv_ar_at_file+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ar_at_file=no +else case e in #( + e) lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -10536,7 +10727,8 @@ then : fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 printf "%s\n" "$lt_cv_ar_at_file" >&6; } @@ -10561,8 +10753,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$STRIP"; then +else case e in #( + e) if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10584,7 +10776,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then @@ -10606,8 +10799,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_STRIP"; then +else case e in #( + e) if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10629,7 +10822,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then @@ -10670,8 +10864,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RANLIB+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$RANLIB"; then +else case e in #( + e) if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10693,7 +10887,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then @@ -10715,8 +10910,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_RANLIB+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_RANLIB"; then +else case e in #( + e) if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10738,7 +10933,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then @@ -10824,8 +11020,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AWK"; then +else case e in #( + e) if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -10847,7 +11043,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then @@ -10896,8 +11093,8 @@ printf %s "checking command to parse $NM output from $compiler object... " >&6; if test ${lt_cv_sys_global_symbol_pipe+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] @@ -11152,7 +11349,8 @@ _LT_EOF lt_cv_sys_global_symbol_pipe= fi done - + ;; +esac fi if test -z "$lt_cv_sys_global_symbol_pipe"; then @@ -11216,8 +11414,9 @@ printf %s "checking for sysroot... " >&6; } if test ${with_sysroot+y} then : withval=$with_sysroot; -else $as_nop - with_sysroot=no +else case e in #( + e) with_sysroot=no ;; +esac fi @@ -11252,8 +11451,8 @@ printf %s "checking for a working dd... " >&6; } if test ${ac_cv_path_lt_DD+y} then : printf %s "(cached) " >&6 -else $as_nop - printf 0123456789abcdef0123456789abcdef >conftest.i +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then @@ -11289,7 +11488,8 @@ else ac_cv_path_lt_DD=$lt_DD fi -rm -f conftest.i conftest2.i conftest.out +rm -f conftest.i conftest2.i conftest.out ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 printf "%s\n" "$ac_cv_path_lt_DD" >&6; } @@ -11300,8 +11500,8 @@ printf %s "checking how to truncate binary pipes... " >&6; } if test ${lt_cv_truncate_bin+y} then : printf %s "(cached) " >&6 -else $as_nop - printf 0123456789abcdef0123456789abcdef >conftest.i +else case e in #( + e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then @@ -11309,7 +11509,8 @@ if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; the && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out -test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 printf "%s\n" "$lt_cv_truncate_bin" >&6; } @@ -11519,8 +11720,8 @@ printf %s "checking whether the C compiler needs -belf... " >&6; } if test ${lt_cv_cc_needs_belf+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_ext=c +else case e in #( + e) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' @@ -11540,8 +11741,9 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_cc_needs_belf=yes -else $as_nop - lt_cv_cc_needs_belf=no +else case e in #( + e) lt_cv_cc_needs_belf=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -11550,7 +11752,8 @@ ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } @@ -11608,8 +11811,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$MANIFEST_TOOL"; then +else case e in #( + e) if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11631,7 +11834,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then @@ -11653,8 +11857,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_MANIFEST_TOOL"; then +else case e in #( + e) if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11676,7 +11880,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then @@ -11708,15 +11913,16 @@ printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if test ${lt_cv_path_mainfest_tool+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_path_mainfest_tool=no +else case e in #( + e) lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi - rm -f conftest* + rm -f conftest* ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } @@ -11739,8 +11945,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DSYMUTIL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$DSYMUTIL"; then +else case e in #( + e) if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11762,7 +11968,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then @@ -11784,8 +11991,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_DSYMUTIL"; then +else case e in #( + e) if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11807,7 +12014,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then @@ -11841,8 +12049,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_NMEDIT+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$NMEDIT"; then +else case e in #( + e) if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11864,7 +12072,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then @@ -11886,8 +12095,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_NMEDIT+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_NMEDIT"; then +else case e in #( + e) if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11909,7 +12118,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then @@ -11943,8 +12153,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LIPO+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$LIPO"; then +else case e in #( + e) if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -11966,7 +12176,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then @@ -11988,8 +12199,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_LIPO+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_LIPO"; then +else case e in #( + e) if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12011,7 +12222,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then @@ -12045,8 +12257,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OTOOL"; then +else case e in #( + e) if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12068,7 +12280,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then @@ -12090,8 +12303,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OTOOL"; then +else case e in #( + e) if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12113,7 +12326,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then @@ -12147,8 +12361,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL64+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$OTOOL64"; then +else case e in #( + e) if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12170,7 +12384,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then @@ -12192,8 +12407,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL64+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$ac_ct_OTOOL64"; then +else case e in #( + e) if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -12215,7 +12430,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then @@ -12272,8 +12488,8 @@ printf %s "checking for -single_module linker flag... " >&6; } if test ${lt_cv_apple_cc_single_mod+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_apple_cc_single_mod=no +else case e in #( + e) lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE @@ -12299,7 +12515,8 @@ else $as_nop fi rm -rf libconftest.dylib* rm -f conftest.* - fi + fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } @@ -12309,8 +12526,8 @@ printf %s "checking for -exported_symbols_list linker flag... " >&6; } if test ${lt_cv_ld_exported_symbols_list+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_exported_symbols_list=no +else case e in #( + e) lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" @@ -12328,13 +12545,15 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_ld_exported_symbols_list=yes -else $as_nop - lt_cv_ld_exported_symbols_list=no +else case e in #( + e) lt_cv_ld_exported_symbols_list=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } @@ -12344,8 +12563,8 @@ printf %s "checking for -force_load linker flag... " >&6; } if test ${lt_cv_ld_force_load+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ld_force_load=no +else case e in #( + e) lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF @@ -12370,7 +12589,8 @@ _LT_EOF fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 printf "%s\n" "$lt_cv_ld_force_load" >&6; } @@ -12480,8 +12700,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - enable_shared=yes +else case e in #( + e) enable_shared=yes ;; +esac fi @@ -12512,8 +12733,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - enable_static=yes +else case e in #( + e) enable_static=yes ;; +esac fi @@ -12544,8 +12766,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - pic_mode=default +else case e in #( + e) pic_mode=default ;; +esac fi @@ -12575,8 +12798,9 @@ then : IFS=$lt_save_ifs ;; esac -else $as_nop - enable_fast_install=yes +else case e in #( + e) enable_fast_install=yes ;; +esac fi @@ -12603,15 +12827,17 @@ then : ;; esac lt_cv_with_aix_soname=$with_aix_soname -else $as_nop - if test ${lt_cv_with_aix_soname+y} +else case e in #( + e) if test ${lt_cv_with_aix_soname+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_with_aix_soname=aix +else case e in #( + e) lt_cv_with_aix_soname=aix ;; +esac fi - with_aix_soname=$lt_cv_with_aix_soname + with_aix_soname=$lt_cv_with_aix_soname ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 @@ -12702,8 +12928,8 @@ printf %s "checking for objdir... " >&6; } if test ${lt_cv_objdir+y} then : printf %s "(cached) " >&6 -else $as_nop - rm -f .libs 2>/dev/null +else case e in #( + e) rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs @@ -12711,7 +12937,8 @@ else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi -rmdir .libs 2>/dev/null +rmdir .libs 2>/dev/null ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 printf "%s\n" "$lt_cv_objdir" >&6; } @@ -12772,8 +12999,8 @@ printf %s "checking for ${ac_tool_prefix}file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MAGIC_CMD in +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; @@ -12816,6 +13043,7 @@ _LT_EOF IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; +esac ;; esac fi @@ -12839,8 +13067,8 @@ printf %s "checking for file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MAGIC_CMD in +else case e in #( + e) case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; @@ -12883,6 +13111,7 @@ _LT_EOF IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; +esac ;; esac fi @@ -12982,8 +13211,8 @@ printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test ${lt_cv_prog_compiler_rtti_exceptions+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_rtti_exceptions=no +else case e in #( + e) lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment @@ -13011,7 +13240,8 @@ else $as_nop fi fi $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } @@ -13376,8 +13606,9 @@ printf %s "checking for $compiler option to produce PIC... " >&6; } if test ${lt_cv_prog_compiler_pic+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +else case e in #( + e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } @@ -13392,8 +13623,8 @@ printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; if test ${lt_cv_prog_compiler_pic_works+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_pic_works=no +else case e in #( + e) lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment @@ -13421,7 +13652,8 @@ else $as_nop fi fi $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } @@ -13457,8 +13689,8 @@ printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; if test ${lt_cv_prog_compiler_static_works+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_static_works=no +else case e in #( + e) lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext @@ -13479,7 +13711,8 @@ else $as_nop fi $RM -r conftest* LDFLAGS=$save_LDFLAGS - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } @@ -13501,8 +13734,8 @@ printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o=no +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -13542,7 +13775,8 @@ else $as_nop cd .. $RM -r conftest $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } @@ -13557,8 +13791,8 @@ printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler_c_o=no +else case e in #( + e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest @@ -13598,7 +13832,8 @@ else $as_nop cd .. $RM -r conftest $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } @@ -14195,8 +14430,8 @@ else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -14228,7 +14463,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -14250,8 +14486,8 @@ else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -14283,7 +14519,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi - + ;; +esac fi aix_libpath=$lt_cv_aix_libpath_ @@ -14510,8 +14747,8 @@ printf %s "checking if +cdp linker flag works... " >&6; } if test ${lt_cv_ldflag_cdp_works+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ldflag_cdp_works=no +else case e in #( + e) lt_cv_ldflag_cdp_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,+cdp -Wl,/usr/lib/libc.1:/nonexistent -Wl,+cdp -Wl,/lib/libc.1:/nonexistent" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14528,13 +14765,15 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_ldflag_cdp_works=yes -else $as_nop - lt_cv_ldflag_cdp_works=no +else case e in #( + e) lt_cv_ldflag_cdp_works=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ldflag_cdp_works" >&5 printf "%s\n" "$lt_cv_ldflag_cdp_works" >&6; } @@ -14580,8 +14819,8 @@ printf %s "checking if $CC understands -b... " >&6; } if test ${lt_cv_prog_compiler__b+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_prog_compiler__b=no +else case e in #( + e) lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext @@ -14602,7 +14841,8 @@ else $as_nop fi $RM -r conftest* LDFLAGS=$save_LDFLAGS - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } @@ -14646,8 +14886,8 @@ printf %s "checking if +cdp linker flag works... " >&6; } if test ${lt_cv_ldflag_cdp_works+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_ldflag_cdp_works=no +else case e in #( + e) lt_cv_ldflag_cdp_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,+cdp -Wl,/usr/lib/libc.1:/nonexistent -Wl,+cdp -Wl,/lib/libc.1:/nonexistent" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -14664,13 +14904,15 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_ldflag_cdp_works=yes -else $as_nop - lt_cv_ldflag_cdp_works=no +else case e in #( + e) lt_cv_ldflag_cdp_works=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ldflag_cdp_works" >&5 printf "%s\n" "$lt_cv_ldflag_cdp_works" >&6; } @@ -14695,8 +14937,8 @@ printf %s "checking whether the $host_os linker accepts -exported_symbol... " >& if test ${lt_cv_irix_exported_symbol+y} then : printf %s "(cached) " >&6 -else $as_nop - save_LDFLAGS=$LDFLAGS +else case e in #( + e) save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -14705,12 +14947,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_irix_exported_symbol=yes -else $as_nop - lt_cv_irix_exported_symbol=no +else case e in #( + e) lt_cv_irix_exported_symbol=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$save_LDFLAGS + LDFLAGS=$save_LDFLAGS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } @@ -15036,8 +15280,8 @@ printf %s "checking whether -lc should be explicitly linked in... " >&6; } if test ${lt_cv_archive_cmds_need_lc+y} then : printf %s "(cached) " >&6 -else $as_nop - $RM conftest* +else case e in #( + e) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 @@ -15073,7 +15317,8 @@ else $as_nop cat conftest.err 1>&5 fi $RM conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } @@ -15810,8 +16055,8 @@ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) if test ${lt_cv_shlibpath_overrides_runpath+y} then : printf %s "(cached) " >&6 -else $as_nop - lt_cv_shlibpath_overrides_runpath=no +else case e in #( + e) lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ @@ -15838,7 +16083,8 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir - + ;; +esac fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath @@ -16264,16 +16510,22 @@ printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -16285,24 +16537,27 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else $as_nop - +else case e in #( + e) lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes - + ;; +esac fi ;; @@ -16320,22 +16575,28 @@ fi if test "x$ac_cv_func_shl_load" = xyes then : lt_cv_dlopen=shl_load -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 printf %s "checking for shl_load in -ldld... " >&6; } if test ${ac_cv_lib_dld_shl_load+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char shl_load (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (void); int main (void) { @@ -16347,39 +16608,47 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_shl_load=yes -else $as_nop - ac_cv_lib_dld_shl_load=no +else case e in #( + e) ac_cv_lib_dld_shl_load=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld -else $as_nop - ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +else case e in #( + e) ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes then : lt_cv_dlopen=dlopen -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -16391,34 +16660,42 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes -else $as_nop - ac_cv_lib_dl_dlopen=no +else case e in #( + e) ac_cv_lib_dl_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 printf %s "checking for dlopen in -lsvld... " >&6; } if test ${ac_cv_lib_svld_dlopen+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dlopen (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (void); int main (void) { @@ -16430,34 +16707,42 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_svld_dlopen=yes -else $as_nop - ac_cv_lib_svld_dlopen=no +else case e in #( + e) ac_cv_lib_svld_dlopen=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 printf %s "checking for dld_link in -ldld... " >&6; } if test ${ac_cv_lib_dld_dld_link+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char dld_link (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (void); int main (void) { @@ -16469,12 +16754,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_dld_link=yes -else $as_nop - ac_cv_lib_dld_dld_link=no +else case e in #( + e) ac_cv_lib_dld_dld_link=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } @@ -16483,19 +16770,24 @@ then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi - + ;; +esac fi ;; @@ -16523,8 +16815,8 @@ printf %s "checking whether a program can dlopen itself... " >&6; } if test ${lt_cv_dlopen_self+y} then : printf %s "(cached) " >&6 -else $as_nop - if test yes = "$cross_compiling"; then : +else case e in #( + e) if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -16618,7 +16910,8 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 printf "%s\n" "$lt_cv_dlopen_self" >&6; } @@ -16630,8 +16923,8 @@ printf %s "checking whether a statically linked program can dlopen itself... " > if test ${lt_cv_dlopen_self_static+y} then : printf %s "(cached) " >&6 -else $as_nop - if test yes = "$cross_compiling"; then : +else case e in #( + e) if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 @@ -16725,7 +17018,8 @@ _LT_EOF fi rm -fr conftest* - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } @@ -16892,6 +17186,25 @@ CC=$lt_save_CC +case "$host_os" in +aix*) + if test X"$aix_use_runtimelinking" != X"yes" +then : + + # Using traditional AIX dynamic shared objects in an archive file. + noexec_file="$libexecdir/sudo/sudo_noexec.a(sudo_noexec.so)" + intercept_file="$libexecdir/sudo/sudo_intercept.a(sudo_intercept.so)" + sudoers_plugin="sudoers.a(sudoers.so)" + python_plugin="python_plugin.a(python_plugin.so)" + +fi + ;; +esac +cat >>confdefs.h <&6; } if test ${ac_cv_path_SHA1SUM+y} then : printf %s "(cached) " >&6 -else $as_nop - case $SHA1SUM in +else case e in #( + e) case $SHA1SUM in [\\/]* | ?:[\\/]*) ac_cv_path_SHA1SUM="$SHA1SUM" # Let the user override the test with a path. ;; @@ -16988,6 +17306,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_SHA1SUM" && ac_cv_path_SHA1SUM="openssl dgst -sha1" ;; +esac ;; esac fi SHA1SUM=$ac_cv_path_SHA1SUM @@ -17007,8 +17326,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_UNAMEPROG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $UNAMEPROG in +else case e in #( + e) case $UNAMEPROG in [\\/]* | ?:[\\/]*) ac_cv_path_UNAMEPROG="$UNAMEPROG" # Let the user override the test with a path. ;; @@ -17034,6 +17353,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_UNAMEPROG" && ac_cv_path_UNAMEPROG="uname" ;; +esac ;; esac fi UNAMEPROG=$ac_cv_path_UNAMEPROG @@ -17053,8 +17373,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_TRPROG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $TRPROG in +else case e in #( + e) case $TRPROG in [\\/]* | ?:[\\/]*) ac_cv_path_TRPROG="$TRPROG" # Let the user override the test with a path. ;; @@ -17080,6 +17400,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_TRPROG" && ac_cv_path_TRPROG="tr" ;; +esac ;; esac fi TRPROG=$ac_cv_path_TRPROG @@ -17092,19 +17413,16 @@ printf "%s\n" "no" >&6; } fi -# Extract the first word of "mandoc", so it can be a program name with args. -set dummy mandoc; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_MANDOCPROG+y} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mandoc or nroff" >&5 +printf %s "checking for mandoc or nroff... " >&6; } +if test ${ac_cv_path_NROFF+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MANDOCPROG in - [\\/]* | ?:[\\/]*) - ac_cv_path_MANDOCPROG="$MANDOCPROG" # Let the user override the test with a path. - ;; - *) +else case e in #( + e) + if test -z "$NROFF"; then + ac_path_NROFF_found=false + # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do @@ -17114,129 +17432,90 @@ do */) ;; *) as_dir=$as_dir/ ;; esac + for ac_prog in mandoc nroff + do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_MANDOCPROG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done + ac_path_NROFF="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_NROFF" || continue +ac_cv_path_NROFF="$ac_path_NROFF" + $ac_path_NROFF_found && break 3 + done + done done IFS=$as_save_IFS - - test -z "$ac_cv_path_MANDOCPROG" && ac_cv_path_MANDOCPROG="mandoc" - ;; -esac -fi -MANDOCPROG=$ac_cv_path_MANDOCPROG -if test -n "$MANDOCPROG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANDOCPROG" >&5 -printf "%s\n" "$MANDOCPROG" >&6; } + if test -z "$ac_cv_path_NROFF"; then + ac_cv_path_NROFF=no + fi else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + ac_cv_path_NROFF=$NROFF fi - -if test "$MANDOCPROG" != "mandoc"; then - : ${MANTYPE='mdoc'} -else - # Extract the first word of "nroff", so it can be a program name with args. -set dummy nroff; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_NROFFPROG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $NROFFPROG in - [\\/]* | ?:[\\/]*) - ac_cv_path_NROFFPROG="$NROFFPROG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_NROFFPROG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; + ;; esac fi -NROFFPROG=$ac_cv_path_NROFFPROG -if test -n "$NROFFPROG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NROFFPROG" >&5 -printf "%s\n" "$NROFFPROG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - - if test -n "$NROFFPROG"; then - test -n "$MANTYPE" && sudo_cv_var_mantype="$MANTYPE" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which macro set to use for manual pages" >&5 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_NROFF" >&5 +printf "%s\n" "$ac_cv_path_NROFF" >&6; } +case "$ac_cv_path_NROFF" in +*mandoc|no) + # Prefer mdoc format for mandoc (or when no formatter is present). + : ${MANTYPE='mdoc'} + ;; +*) + # Check whether nroff supports -mdoc, this may produce incorrect + # results when cross-compiling. + test -n "$MANTYPE" && sudo_cv_var_mantype="$MANTYPE" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which macro set to use for manual pages" >&5 printf %s "checking which macro set to use for manual pages... " >&6; } if test ${sudo_cv_var_mantype+y} then : printf %s "(cached) " >&6 -else $as_nop - - sudo_cv_var_mantype="man" - echo ".Sh NAME" > conftest - echo ".Nm sudo" >> conftest - echo ".Nd sudo" >> conftest - echo ".Sh DESCRIPTION" >> conftest - echo "sudo" >> conftest - if $NROFFPROG -mdoc conftest >/dev/null 2>&1; then - sudo_cv_var_mantype="mdoc" - fi - rm -f conftest - +else case e in #( + e) + sudo_cv_var_mantype="man" + echo ".Sh NAME" > conftest + echo ".Nm sudo" >> conftest + echo ".Nd sudo" >> conftest + echo ".Sh DESCRIPTION" >> conftest + echo "sudo" >> conftest + if $ac_cv_path_NROFF -mdoc conftest >/dev/null 2>&1; then + sudo_cv_var_mantype="mdoc" + fi + rm -f conftest + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_mantype" >&5 printf "%s\n" "$sudo_cv_var_mantype" >&6; } - MANTYPE="$sudo_cv_var_mantype" - else - : ${MANTYPE='mdoc'} - fi -fi + MANTYPE="$sudo_cv_var_mantype" + ;; +esac + +if test -n "$sudo_cv_prev_host" +then : + + if test "$sudo_cv_prev_host" != "$host" +then : -if test -n "$sudo_cv_prev_host"; then - if test "$sudo_cv_prev_host" != "$host"; then as_fn_error $? "config.cache was created on a different host; remove it and re-run configure." "$LINENO" 5 - fi + fi -if test ${sudo_cv_prev_host+y} -then : - printf %s "(cached) " >&6 -else $as_nop - sudo_cv_prev_host="$host" + fi +sudo_cv_prev_host="$host" +if test -n "$host_os" +then : -if test -n "$host_os"; then - OS=`echo $host_os | sed 's/[0-9].*//'` OSREV=`echo $host_os | sed 's/^[^0-9\.]*\([0-9\.]*\).*$/\1/'` OSMAJOR=`echo $OSREV | sed 's/\..*$//'` -else - OS="unknown" + +else case e in #( + e) OSREV=0 OSMAJOR=0 + ;; +esac fi case "$host" in @@ -17257,9 +17536,12 @@ case "$host" in SUDO_OBJS="${SUDO_OBJS} solaris.o" # AFS support needs -lucb - if test "$with_AFS" = "yes"; then + if test "$with_AFS" = "yes" +then : + AFS_LIBS="-lc -lucb" - fi + +fi : ${mansectsu='1m'} : ${mansectform='4'} : ${mansectmisc='5'} @@ -17287,9 +17569,12 @@ done # For AIX we build in support for both LAM and PAM # and choose which to use based on auth_type in # /etc/security/login.cfg - if test X"${with_pam}${with_aixauth}" = X""; then + if test X"${with_pam}${with_aixauth}" = X"" +then : + AUTH_EXCL_DEF="AIX_AUTH PAM" - fi + +fi # AIX analog of nsswitch.conf, enabled by default @@ -17304,9 +17589,12 @@ then : esac fi - if test -z "$with_nsswitch" -a -z "$with_netsvc"; then + if test -z "$with_nsswitch" -a -z "$with_netsvc" +then : + with_netsvc="/etc/netsvc.conf" - fi + +fi # LDR_PRELOAD is only supported in AIX 5.3 and later case "$OSREV" in @@ -17320,9 +17608,12 @@ fi # strnlen/strndup may be broken on AIX < 6 depending # on the libc version, use our own. - if test $OSMAJOR -lt 6; then + if test $OSMAJOR -lt 6 +then : + : ${ac_cv_func_strnlen='no'} - fi + +fi # fmemopen(3) has a bug wrt feof() on some AIX versions. # https://www.ibm.com/support/pages/apar/IJ11845 @@ -17330,19 +17621,31 @@ fi # getdelim() may or may not be present on AIX <= 6.1. # bos610 is missing getdelim but bos61J has it. - if test "$enable_package_build" = "yes"; then - if test $OSMAJOR -le 6; then + if test "$enable_package_build" = "yes" +then : + + if test $OSMAJOR -le 6 +then : + : ${ac_cv_func_getdelim='no'} - fi - fi + +fi + +fi # memset_s() may or may ont be present on AIX <= 7.1. # bos710 is missing memset_s but bos71L has it. - if test "$enable_package_build" = "yes"; then - if test $OSMAJOR -le 7; then + if test "$enable_package_build" = "yes" +then : + + if test $OSMAJOR -le 7 +then : + : ${ac_cv_func_memset_s='no'} - fi - fi + +fi + +fi # Remove timedir on boot, AIX does not have /var/run INIT_SCRIPT=aix.sh @@ -17398,8 +17701,8 @@ printf %s "checking for $CC options needed to detect all undeclared functions... if test ${ac_cv_c_undeclared_builtin_options+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_save_CFLAGS=$CFLAGS +else case e in #( + e) ac_save_CFLAGS=$CFLAGS ac_cv_c_undeclared_builtin_options='cannot detect' for ac_arg in '' -fno-builtin; do CFLAGS="$ac_save_CFLAGS $ac_arg" @@ -17418,8 +17721,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : -else $as_nop - # This test program should compile successfully. +else case e in #( + e) # This test program should compile successfully. # No library function is consistently available on # freestanding implementations, so test against a dummy # declaration. Include always-available headers on the @@ -17447,26 +17750,29 @@ then : if test x"$ac_arg" = x then : ac_cv_c_undeclared_builtin_options='none needed' -else $as_nop - ac_cv_c_undeclared_builtin_options=$ac_arg +else case e in #( + e) ac_cv_c_undeclared_builtin_options=$ac_arg ;; +esac fi break fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done CFLAGS=$ac_save_CFLAGS - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } case $ac_cv_c_undeclared_builtin_options in #( 'cannot detect') : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot make $CC report undeclared builtins -See \`config.log' for more details" "$LINENO" 5; } ;; #( +See 'config.log' for more details" "$LINENO" 5; } ;; #( 'none needed') : ac_c_undeclared_builtin_options='' ;; #( *) : @@ -17481,8 +17787,9 @@ ac_fn_check_decl "$LINENO" "usrinfo" "ac_cv_have_decl_usrinfo" " if test "x$ac_cv_have_decl_usrinfo" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_USRINFO $ac_have_decl" >>confdefs.h @@ -17494,54 +17801,72 @@ printf "%s\n" "#define HAVE_DECL_USRINFO $ac_have_decl" >>confdefs.h if test "x$ac_cv_have_decl_setauthdb" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SETAUTHDB $ac_have_decl" >>confdefs.h ;; *-*-hiuxmpp*) - printf "%s\n" "#define PAM_SUN_CODEBASE 1" >>confdefs.h - - - : ${mansectsu='1m'} - : ${mansectform='4'} - : ${mansectmisc='5'} + # HI-UX/MPP is based on OSF/1 - # HP-UX does not clear /var/run so we need to do it - INIT_SCRIPT=hpux.sh - INIT_DIR=/sbin/init.d - RC_LINK=/sbin/rc2.d/S900sudo + # ignore envariables wrt dynamic lib path - # HP-UX shared libs must be executable. - # Load time is much greater if writable so use 0555. - SHLIB_MODE=0555 +if test ${SUDO_LDFLAGS+y} +then : - # HP-UX won't unlink a shared lib that is open - INSTALL_BACKUP='~' + case " $SUDO_LDFLAGS " in #( + *" -Wl,-no_library_replacement "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDO_LDFLAGS already contains -Wl,-no_library_replacement"; } >&5 + (: SUDO_LDFLAGS already contains -Wl,-no_library_replacement) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : - ac_fn_c_check_func "$LINENO" "pstat_getproc" "ac_cv_func_pstat_getproc" -if test "x$ac_cv_func_pstat_getproc" = xyes -then : - printf "%s\n" "#define HAVE_PSTAT_GETPROC 1" >>confdefs.h + as_fn_append SUDO_LDFLAGS " -Wl,-no_library_replacement" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDO_LDFLAGS=\"\$SUDO_LDFLAGS\""; } >&5 + (: SUDO_LDFLAGS="$SUDO_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +else case e in #( + e) + SUDO_LDFLAGS=-Wl,-no_library_replacement + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDO_LDFLAGS=\"\$SUDO_LDFLAGS\""; } >&5 + (: SUDO_LDFLAGS="$SUDO_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi -ac_fn_c_check_func "$LINENO" "gethrtime" "ac_cv_func_gethrtime" -if test "x$ac_cv_func_gethrtime" = xyes -then : - printf "%s\n" "#define HAVE_GETHRTIME 1" >>confdefs.h -fi + shadow_funcs="getprpwnam dispcrypt" + shadow_libs="-lsecurity" + + # ":DEFAULT" must be appended to _RLD_LIST + RTLD_PRELOAD_VAR="_RLD_LIST" + RTLD_PRELOAD_DEFAULT="DEFAULT" + : ${mansectsu='8'} + : ${mansectform='4'} + : ${mansectmisc='5'} ;; *-*-hpux*) printf "%s\n" "#define PAM_SUN_CODEBASE 1" >>confdefs.h # AFS support needs -lBSD - if test "$with_AFS" = "yes"; then - AFS_LIBS="-lc -lBSD" - fi + if test "$with_AFS" = "yes" +then : + AFS_LIBS="-lc -lBSD" + ] +fi : ${mansectsu='1m'} : ${mansectform='4'} : ${mansectmisc='5'} @@ -17559,44 +17884,57 @@ fi INSTALL_BACKUP='~' # The HP bundled compiler cannot generate shared libs - if test -z "$GCC"; then + if test -z "$GCC" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for HP bundled C compiler" >&5 printf %s "checking for HP bundled C compiler... " >&6; } if test ${sudo_cv_var_hpccbundled+y} then : printf %s "(cached) " >&6 -else $as_nop - if $CC -V 2>&1 | grep '^(Bundled)' >/dev/null 2>&1; then +else case e in #( + e) if $CC -V 2>&1 | grep '^(Bundled)' >/dev/null 2>&1; then sudo_cv_var_hpccbundled=yes else sudo_cv_var_hpccbundled=no fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_hpccbundled" >&5 printf "%s\n" "$sudo_cv_var_hpccbundled" >&6; } - if test "$sudo_cv_var_hpccbundled" = "yes"; then + if test "$sudo_cv_var_hpccbundled" = "yes" +then : + as_fn_error $? "The HP bundled C compiler is unable to build Sudo, you must use gcc or the HP ANSI C compiler instead." "$LINENO" 5 - fi - fi + +fi + +fi # Build PA-RISC1.1 objects for better portability case "$host_cpu" in hppa[2-9]*) _CFLAGS="$CFLAGS" - if test -n "$GCC"; then + if test -n "$GCC" +then : + portable_flag="-march=1.1" - else + +else case e in #( + e) portable_flag="+DAportable" - fi + ;; +esac +fi CFLAGS="$CFLAGS $portable_flag" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands $portable_flag" >&5 printf %s "checking whether $CC understands $portable_flag... " >&6; } if test ${sudo_cv_var_daportable+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -17610,20 +17948,25 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : sudo_cv_var_daportable=yes -else $as_nop - sudo_cv_var_daportable=no - +else case e in #( + e) sudo_cv_var_daportable=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_daportable" >&5 printf "%s\n" "$sudo_cv_var_daportable" >&6; } - if test X"$sudo_cv_var_daportable" != X"yes"; then + if test X"$sudo_cv_var_daportable" != X"yes" +then : + CFLAGS="$_CFLAGS" - fi + +fi ;; esac @@ -17640,6 +17983,13 @@ printf "%s\n" "$sudo_cv_var_daportable" >&6; } test -z "$with_pam" && AUTH_EXCL_DEF="PAM" ;; esac + ac_fn_c_check_header_compile "$LINENO" "utmps.h" "ac_cv_header_utmps_h" "$ac_includes_default" +if test "x$ac_cv_header_utmps_h" = xyes +then : + printf "%s\n" "#define HAVE_UTMPS_H 1" >>confdefs.h + +fi + ac_fn_c_check_func "$LINENO" "pstat_getproc" "ac_cv_func_pstat_getproc" if test "x$ac_cv_func_pstat_getproc" = xyes then : @@ -17678,15 +18028,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDO_LDFLAGS=-Wl,-no_library_replacement { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDO_LDFLAGS=\"\$SUDO_LDFLAGS\""; } >&5 (: SUDO_LDFLAGS="$SUDO_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi @@ -17709,11 +18060,17 @@ fi shadow_funcs="getprpwnam dispcrypt" # OSF/1 4.x and higher need -ldb too - if test $OSMAJOR -lt 4; then + if test $OSMAJOR -lt 4 +then : + shadow_libs="-lsecurity -laud -lm" - else + +else case e in #( + e) shadow_libs="-lsecurity -ldb -laud -lm" - fi + ;; +esac +fi # use SIA by default, if we have it test "$CHECKSIA" = "true" && AUTH_EXCL_DEF="SIA" @@ -17744,11 +18101,12 @@ if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, fixing locally" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, fixing locally" >&5 printf "%s\n" "yes, fixing locally" >&6; } sed 's:::g' < /usr/include/prot.h > prot.h - + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # ":DEFAULT" must be appended to _RLD_LIST @@ -17761,30 +18119,47 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext *-*-irix*) printf "%s\n" "#define _BSD_TYPES 1" >>confdefs.h - if test "$prefix" = "/usr/local" -a "$mandir" = '${datarootdir}/man'; then - if test -d "/usr/share/man/local"; then + if test "$prefix" = "/usr/local" -a "$mandir" = '${datarootdir}/man' +then : + + if test -d "/usr/share/man/local" +then : + mandir="/usr/share/man/local" - else + +else case e in #( + e) mandir="/usr/man/local" - fi - fi + ;; +esac +fi + +fi # IRIX <= 4 needs -lsun - if test "$OSMAJOR" -le 4; then + if test "$OSMAJOR" -le 4 +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getpwnam in -lsun" >&5 printf %s "checking for getpwnam in -lsun... " >&6; } if test ${ac_cv_lib_sun_getpwnam+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lsun $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char getpwnam (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char getpwnam (void); int main (void) { @@ -17796,12 +18171,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_sun_getpwnam=yes -else $as_nop - ac_cv_lib_sun_getpwnam=no +else case e in #( + e) ac_cv_lib_sun_getpwnam=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sun_getpwnam" >&5 printf "%s\n" "$ac_cv_lib_sun_getpwnam" >&6; } @@ -17810,7 +18187,8 @@ then : LIBS="${LIBS} -lsun" fi - fi + +fi # ":DEFAULT" must be appended to _RLD_LIST RTLD_PRELOAD_VAR="_RLD_LIST" RTLD_PRELOAD_DEFAULT="DEFAULT" @@ -17833,8 +18211,9 @@ fi if test "x$ac_cv_have_decl_SECCOMP_MODE_FILTER" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SECCOMP_MODE_FILTER $ac_have_decl" >>confdefs.h @@ -17844,20 +18223,33 @@ if test "x$ac_cv_header_linux_random_h" = xyes then : printf "%s\n" "#define HAVE_LINUX_RANDOM_H 1" >>confdefs.h +fi +ac_fn_c_check_header_compile "$LINENO" "sys/syscall.h" "ac_cv_header_sys_syscall_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_syscall_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SYSCALL_H 1" >>confdefs.h + fi - # The glibc getentropy() emulation may fail on older kernels. - # We use our own getentropy() by default on Linux. - : ${ac_cv_func_getentropy='no'} + # Only use our replacement functions when not fuzzing, + # they may skew the coverage reports. + if test X"$enable_fuzzer" = X"no" +then : - # The glibc arc4random() may fail in chroot on older kernels. - # We use our own arc4random() by default on Linux. - : ${ac_cv_func_arc4random='no'} + # glibc's getentropy() emulation may fail on older kernels. + # We use our own getentropy() by default on Linux. + : ${ac_cv_func_getentropy='no'} - # The glibc closefrom() emulation may fail in chroot. - # We use our own closefrom() by default on Linux. - : ${ac_cv_func_closefrom='no'} + # glibc's arc4random() may fail in chroot on older kernels. + # We use our own arc4random() by default on Linux. + : ${ac_cv_func_arc4random='no'} + + # glibc's closefrom() emulation may fail in chroot. + # We use our own closefrom() by default on Linux. + : ${ac_cv_func_closefrom='no'} + +fi # Linux 3.2 supports reading/writing a another process # without using ptrace(2). @@ -17900,16 +18292,22 @@ printf %s "checking for strcasecmp in -lc89... " >&6; } if test ${ac_cv_lib_c89_strcasecmp+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lc89 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char strcasecmp (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char strcasecmp (void); int main (void) { @@ -17921,12 +18319,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_c89_strcasecmp=yes -else $as_nop - ac_cv_lib_c89_strcasecmp=no +else case e in #( + e) ac_cv_lib_c89_strcasecmp=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c89_strcasecmp" >&5 printf "%s\n" "$ac_cv_lib_c89_strcasecmp" >&6; } @@ -17948,7 +18348,9 @@ fi *-*-bsdi*) SKIP_SETREUID=yes # Check for newer BSD auth API - if test -z "$with_bsdauth"; then + if test -z "$with_bsdauth" +then : + for ac_func in auth_challenge do : @@ -17960,7 +18362,8 @@ then : fi done - fi + +fi ;; *-*-freebsd*) printf "%s\n" "#define _BSD_SOURCE 1" >>confdefs.h @@ -17973,17 +18376,23 @@ done SKIP_SETREUID=yes ;; esac - if test "${with_skey-'no'}" = "yes"; then + if test "${with_skey-'no'}" = "yes" +then : + SUDOERS_LIBS="${SUDOERS_LIBS} -lmd" - fi + +fi CHECKSHADOW="false" test -z "$with_pam" && AUTH_EXCL_DEF="PAM" : ${with_logincap='maybe'} # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + if test X"$with_exampledir" = X"" +then : + exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + +fi ;; *-*-*openbsd*) printf "%s\n" "#define _BSD_SOURCE 1" >>confdefs.h @@ -17998,20 +18407,29 @@ done SKIP_SETREUID=yes # OpenBSD >= 3.0 supports BSD auth - if test -z "$with_bsdauth"; then - if test "$OSMAJOR" -ge 3; then + if test -z "$with_bsdauth" +then : + + if test "$OSMAJOR" -ge 3 +then : + AUTH_EXCL_DEF="BSD_AUTH" - fi - fi + +fi + +fi : ${with_logincap='maybe'} # Newer OpenBSD only fills in pw_password for getpwnam_shadow() shadow_funcs="getpwnam_shadow" # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + if test X"$with_exampledir" = X"" +then : + exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + +fi ;; *-*-*netbsd*) # NetBSD has a real setreuid(2) starting with 1.3.2 @@ -18029,51 +18447,72 @@ done # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + if test X"$with_exampledir" = X"" +then : + exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + +fi ;; *-*-dragonfly*) printf "%s\n" "#define _BSD_SOURCE 1" >>confdefs.h - if test "${with_skey-'no'}" = "yes"; then + if test "${with_skey-'no'}" = "yes" +then : + SUDOERS_LIBS="${SUDOERS_LIBS} -lmd" - fi + +fi CHECKSHADOW="false" test -z "$with_pam" && AUTH_EXCL_DEF="PAM" : ${with_logincap='yes'} # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + if test X"$with_exampledir" = X"" +then : + exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + +fi ;; *-*-*bsd*) CHECKSHADOW="false" # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + if test X"$with_exampledir" = X"" +then : + exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + +fi ;; *-*-darwin*) # Darwin has a real setreuid(2) starting with 9.0 - if test $OSMAJOR -lt 9; then + if test $OSMAJOR -lt 9 +then : + SKIP_SETREUID=yes - fi + +fi CHECKSHADOW="false" test -z "$with_pam" && AUTH_EXCL_DEF="PAM" : ${with_logincap='yes'} # Darwin has a broken poll(), Apple radar 3710161 : ${enable_poll='no'} # Darwin 8 and above can interpose library symbols cleanly - if test $OSMAJOR -ge 8; then + if test $OSMAJOR -ge 8 +then : + printf "%s\n" "#define HAVE___INTERPOSE 1" >>confdefs.h dlyld_interpose=yes - else + +else case e in #( + e) RTLD_PRELOAD_ENABLE_VAR="DYLD_FORCE_FLAT_NAMESPACE" - fi + ;; +esac +fi RTLD_PRELOAD_VAR="DYLD_INSERT_LIBRARIES" # Build sudo_noexec.so as a shared library, not a module. @@ -18101,8 +18540,9 @@ then : if test "x$ac_cv_have_decl_getgrouplist_2" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_GETGROUPLIST_2 $ac_have_decl" >>confdefs.h @@ -18135,8 +18575,8 @@ printf %s "checking whether the linker accepts -Wl,-force_flat_namespace... " >& if test ${ax_cv_check_ldflags___Wl__force_flat_namespace+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-force_flat_namespace" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -18153,12 +18593,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ax_cv_check_ldflags___Wl__force_flat_namespace=yes -else $as_nop - ax_cv_check_ldflags___Wl__force_flat_namespace=no +else case e in #( + e) ax_cv_check_ldflags___Wl__force_flat_namespace=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags + LDFLAGS=$ax_check_save_flags ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__force_flat_namespace" >&5 printf "%s\n" "$ax_cv_check_ldflags___Wl__force_flat_namespace" >&6; } @@ -18186,26 +18628,31 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDO_LDFLAGS=-Wl,-force_flat_namespace { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDO_LDFLAGS=\"\$SUDO_LDFLAGS\""; } >&5 (: SUDO_LDFLAGS="$SUDO_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -else $as_nop - : +else case e in #( + e) : ;; +esac fi # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + if test X"$with_exampledir" = X"" +then : + exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + +fi ;; *-*-nextstep*) # lockf() is broken on the NeXT @@ -18247,44 +18694,21 @@ fi ;; esac -if test X"$enable_pvs_studio" = X"yes"; then - # Determine preprocessor type - case "$CC" in - *clang*) preprocessor=clang;; - *gcc*) preprocessor=gcc;; - *) - case `$CC --version 2>&1` in - *clang*) preprocessor=clang;; - *gcc*) preprocessor=gcc;; - *) as_fn_error $? "Compiler must be gcc or clang for PVS-Studio." "$LINENO" 5;; - esac - ;; - esac +if test X"$enable_intercept" = X"no" +then : - # Determine platform (currently linux or macos) - case "$host" in - x86_64-*-linux*) pvs_platform=linux64;; - *86-*-linux*) pvs_platform=linux32;; - *-*-darwin*) pvs_platform=macos;; - *) as_fn_error $? "PVS-Studio does not support $host." "$LINENO" 5;; - esac + intercept_file=disabled - # create basic PVS-Studio.cfg file - cat > PVS-Studio.cfg <<-EOF - preprocessor = $preprocessor - platform = $pvs_platform - analysis-mode = 4 - language = C -EOF fi +if test X"$with_noexec" = X"no" +then : -if test X"$enable_intercept" = X"no"; then - intercept_file=disabled -fi -if test X"$with_noexec" = X"no"; then noexec_file=disabled + fi -if test X"${intercept_file} ${noexec_file}" != X"disabled disabled"; then +if test X"${intercept_file} ${noexec_file}" != X"disabled disabled" +then : + cat >>confdefs.h <>confdefs.h <>confdefs.h <&5 (: LDFLAGS="$LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -18381,22 +18819,26 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LDFLAGS_R=-R$i { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS_R=\"\$LDFLAGS_R\""; } >&5 (: LDFLAGS_R="$LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi done + fi -if test -n "$with_libraries"; then +if test -n "$with_libraries" +then : + for i in ${with_libraries}; do case $i in -l*) ;; @@ -18406,6 +18848,7 @@ if test -n "$with_libraries"; then esac LIBS="${LIBS} ${i}" done + fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 @@ -18413,8 +18856,8 @@ printf %s "checking for an ANSI C-conforming const... " >&6; } if test ${ac_cv_c_const+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -18478,10 +18921,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_const=yes -else $as_nop - ac_cv_c_const=no +else case e in #( + e) ac_cv_c_const=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 printf "%s\n" "$ac_cv_c_const" >&6; } @@ -18496,8 +18941,8 @@ printf %s "checking for inline... " >&6; } if test ${ac_cv_c_inline+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_c_inline=no +else case e in #( + e) ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -18515,7 +18960,8 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test "$ac_cv_c_inline" != no && break done - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 printf "%s\n" "$ac_cv_c_inline" >&6; } @@ -18540,8 +18986,8 @@ printf %s "checking for working volatile... " >&6; } if test ${ac_cv_c_volatile+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -18558,10 +19004,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_volatile=yes -else $as_nop - ac_cv_c_volatile=no +else case e in #( + e) ac_cv_c_volatile=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_volatile" >&5 printf "%s\n" "$ac_cv_c_volatile" >&6; } @@ -18573,35 +19021,49 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variadic macro support in cpp" >&5 printf %s "checking for variadic macro support in cpp... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test ${sudo_cv_cpp_variadic_macros+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + sudo_cv_cpp_variadic_macros=yes + if test X"$ac_cv_build_prog_cc_c99" = X"no"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - $ac_includes_default #if defined(__GNUC__) && __GNUC__ == 2 # define sudo_fprintf(fp, fmt...) fprintf((fp), (fmt)) #else # define sudo_fprintf(fp, ...) fprintf((fp), __VA_ARGS__) #endif - int main (void) { sudo_fprintf(stderr, "a %s", "test"); + ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + +else case e in #( + e) sudo_cv_cpp_variadic_macros=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_cpp_variadic_macros" >&5 +printf "%s\n" "$sudo_cv_cpp_variadic_macros" >&6; } + if test X"$sudo_cv_cpp_variadic_macros" = X"no"; then printf "%s\n" "#define NO_VARIADIC_MACROS 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: your C preprocessor doesn't support variadic macros, debugging support will be limited" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: your C preprocessor doesn't support variadic macros, debugging support will be limited" >&5 printf "%s\n" "$as_me: WARNING: your C preprocessor doesn't support variadic macros, debugging support will be limited" >&2;} for _sym in sudo_debug_printf_nvm_v1; do @@ -18609,9 +19071,8 @@ printf "%s\n" "$as_me: WARNING: your C preprocessor doesn't support variadic mac " done + fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext for ac_prog in gawk mawk nawk awk do @@ -18622,8 +19083,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$AWK"; then +else case e in #( + e) if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -18645,7 +19106,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then @@ -18669,8 +19131,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_YACC+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$YACC"; then +else case e in #( + e) if test -n "$YACC"; then ac_cv_prog_YACC="$YACC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -18692,7 +19154,8 @@ done done IFS=$as_save_IFS -fi +fi ;; +esac fi YACC=$ac_cv_prog_YACC if test -n "$YACC"; then @@ -18715,8 +19178,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_FLEX+y} then : printf %s "(cached) " >&6 -else $as_nop - case $FLEX in +else case e in #( + e) case $FLEX in [\\/]* | ?:[\\/]*) ac_cv_path_FLEX="$FLEX" # Let the user override the test with a path. ;; @@ -18742,6 +19205,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_FLEX" && ac_cv_path_FLEX="flex" ;; +esac ;; esac fi FLEX=$ac_cv_path_FLEX @@ -18762,8 +19226,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_MVPROG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $MVPROG in +else case e in #( + e) case $MVPROG in [\\/]* | ?:[\\/]*) ac_cv_path_MVPROG="$MVPROG" # Let the user override the test with a path. ;; @@ -18788,6 +19252,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi MVPROG=$ac_cv_path_MVPROG @@ -18813,8 +19278,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_BSHELLPROG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $BSHELLPROG in +else case e in #( + e) case $BSHELLPROG in [\\/]* | ?:[\\/]*) ac_cv_path_BSHELLPROG="$BSHELLPROG" # Let the user override the test with a path. ;; @@ -18840,6 +19305,7 @@ IFS=$as_save_IFS test -z "$ac_cv_path_BSHELLPROG" && ac_cv_path_BSHELLPROG="/usr/bin$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/sbin$PATH_SEPARATOR/sbin" ;; +esac ;; esac fi BSHELLPROG=$ac_cv_path_BSHELLPROG @@ -18857,7 +19323,9 @@ fi EOF -if test -z "$with_sendmail"; then +if test -z "$with_sendmail" +then : + # Extract the first word of "sendmail", so it can be a program name with args. set dummy sendmail; ac_word=$2 @@ -18866,8 +19334,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_SENDMAILPROG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $SENDMAILPROG in +else case e in #( + e) case $SENDMAILPROG in [\\/]* | ?:[\\/]*) ac_cv_path_SENDMAILPROG="$SENDMAILPROG" # Let the user override the test with a path. ;; @@ -18892,6 +19360,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi SENDMAILPROG=$ac_cv_path_SENDMAILPROG @@ -18910,6 +19379,7 @@ EOF with_sendmail="$ac_cv_path_SENDMAILPROG" + fi # Extract the first word of "vi", so it can be a program name with args. @@ -18919,8 +19389,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_VIPROG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $VIPROG in +else case e in #( + e) case $VIPROG in [\\/]* | ?:[\\/]*) ac_cv_path_VIPROG="$VIPROG" # Let the user override the test with a path. ;; @@ -18945,6 +19415,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi VIPROG=$ac_cv_path_VIPROG @@ -18962,30 +19433,36 @@ fi EOF -if test -z "$with_editor"; then +if test -z "$with_editor" +then : + editor="$ac_cv_path_VIPROG" + fi -if test X"$with_logfac" = X""; then +if test X"$with_logfac" = X"" +then : + ac_fn_check_decl "$LINENO" "LOG_AUTHPRIV" "ac_cv_have_decl_LOG_AUTHPRIV" "#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_LOG_AUTHPRIV" = xyes then : logfac=authpriv fi + fi printf "%s\n" "#define LOGFAC \"$logfac\"" >>confdefs.h ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_dirent_$ac_hdr" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 printf %s "checking for $ac_hdr that defines DIR... " >&6; } if eval test \${$as_ac_Header+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include <$ac_hdr> @@ -19002,10 +19479,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$as_ac_Header=yes" -else $as_nop - eval "$as_ac_Header=no" +else case e in #( + e) eval "$as_ac_Header=no" ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi eval ac_res=\$$as_ac_Header { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -19013,7 +19492,7 @@ printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_hdr" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_hdr" | sed "$as_sed_cpp"` 1 _ACEOF ac_header_dirent=$ac_hdr; break @@ -19027,15 +19506,21 @@ printf %s "checking for library containing opendir... " >&6; } if test ${ac_cv_search_opendir+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char opendir (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (void); int main (void) { @@ -19066,11 +19551,13 @@ done if test ${ac_cv_search_opendir+y} then : -else $as_nop - ac_cv_search_opendir=no +else case e in #( + e) ac_cv_search_opendir=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 printf "%s\n" "$ac_cv_search_opendir" >&6; } @@ -19087,15 +19574,21 @@ printf %s "checking for library containing opendir... " >&6; } if test ${ac_cv_search_opendir+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char opendir (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char opendir (void); int main (void) { @@ -19126,11 +19619,13 @@ done if test ${ac_cv_search_opendir+y} then : -else $as_nop - ac_cv_search_opendir=no +else case e in #( + e) ac_cv_search_opendir=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 printf "%s\n" "$ac_cv_search_opendir" >&6; } @@ -19152,25 +19647,25 @@ printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 -printf %s "checking for stdbool.h that conforms to C99... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99 or later" >&5 +printf %s "checking for stdbool.h that conforms to C99 or later... " >&6; } if test ${ac_cv_header_stdbool_h+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - #ifndef __bool_true_false_are_defined - #error "__bool_true_false_are_defined is not defined" - #endif - char a[__bool_true_false_are_defined == 1 ? 1 : -1]; + /* "true" and "false" should be usable in #if expressions and + integer constant expressions, and "bool" should be a valid + type name. - /* Regardless of whether this is C++ or "_Bool" is a - valid type name, "true" and "false" should be usable - in #if expressions and integer constant expressions, - and "bool" should be a valid type name. */ + Although C99 requires bool, true, and false to be macros, + C23 and C++11 overrule that, so do not test for that. + Although C99 requires __bool_true_false_are_defined and + _Bool, C23 says they are obsolescent, so do not require + them. */ #if !true #error "'true' is not true" @@ -19204,43 +19699,12 @@ else $as_nop char n[sizeof m == h * sizeof m[0] ? 1 : -1]; char o[-1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See - https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html - https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html */ bool p = true; bool *pp = &p; - /* C 1999 specifies that bool, true, and false are to be - macros, but C++ 2011 and later overrule this. */ - #if __cplusplus < 201103 - #ifndef bool - #error "bool is not defined" - #endif - #ifndef false - #error "false is not defined" - #endif - #ifndef true - #error "true is not defined" - #endif - #endif - - /* If _Bool is available, repeat with it all the tests - above that used bool. */ - #ifdef HAVE__BOOL - struct sB { _Bool s: 1; _Bool t; } t; - - char q[(_Bool) 0.5 == true ? 1 : -1]; - char r[(_Bool) 0.0 == false ? 1 : -1]; - char u[sizeof (_Bool) > 0 ? 1 : -1]; - char v[sizeof t.t > 0 ? 1 : -1]; - - _Bool w[h]; - char x[sizeof m == h * sizeof m[0] ? 1 : -1]; - char y[-1 - (_Bool) 0 < 0 ? 1 : -1]; - _Bool z = true; - _Bool *pz = &p; - #endif - int main (void) { @@ -19249,20 +19713,10 @@ main (void) *pp |= p; *pp |= ! p; - #ifdef HAVE__BOOL - _Bool pt = &t; - *pz |= z; - *pz |= ! z; - #endif - /* Refer to every declared value, so they cannot be discarded as unused. */ - return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k - + !l + !m + !n + !o + !p + !pp + !ps - #ifdef HAVE__BOOL - + !q + !r + !u + !v + !w + !x + !y + !z + !pt - #endif - ); + return (!b + !c + !d + !e + !f + !g + !h + !i + !j + !k + + !l + !m + !n + !o + !p + !pp + !ps); ; return 0; @@ -19271,10 +19725,12 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_header_stdbool_h=yes -else $as_nop - ac_cv_header_stdbool_h=no +else case e in #( + e) ac_cv_header_stdbool_h=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 printf "%s\n" "$ac_cv_header_stdbool_h" >&6; } @@ -19316,28 +19772,26 @@ fi +if test X"$ac_cv_header_utmps_h" != X"yes" +then : - for ac_header in utmps.h utmpx.h -do : - as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" -if eval test \"x\$"$as_ac_Header"\" = x"yes" + ac_fn_c_check_header_compile "$LINENO" "utmpx.h" "ac_cv_header_utmpx_h" "$ac_includes_default" +if test "x$ac_cv_header_utmpx_h" = xyes then : - cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - break + printf "%s\n" "#define HAVE_UTMPX_H 1" >>confdefs.h + fi -done + +fi for ac_header in endian.h sys/endian.h machine/endian.h do : - as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 _ACEOF break fi @@ -19345,12 +19799,12 @@ fi done for ac_header in procfs.h sys/procfs.h do : - as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 _ACEOF ac_fn_c_check_member "$LINENO" "struct psinfo" "pr_ttydev" "ac_cv_member_struct_psinfo_pr_ttydev" "$ac_includes_default #ifdef HAVE_PROCFS_H @@ -19381,79 +19835,23 @@ fi done # # Check for large file and 64-bit time support. -# GNU libc only allows setting _TIME_BITS when FILE_OFFSET_BITS is also set. -# GNU libc defines __TIMESIZE on systems where _TIME_BITS can be set. # -# Check whether --enable-largefile was given. -if test ${enable_largefile+y} + if test "$enable_largefile" != no then : - enableval=$enable_largefile; -fi - -if test "$enable_largefile" != no; then - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 -printf %s "checking for special C compiler options needed for large files... " >&6; } -if test ${ac_cv_sys_largefile_CC+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5 +printf %s "checking for $CC option to enable large file support... " >&6; } +if test ${ac_cv_sys_largefile_opts+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_cv_sys_largefile_CC=no - if test "$GCC" != yes; then - ac_save_CC=$CC - while :; do - # IRIX 6.2 and later do not support large files by default, - # so use the C compiler's -n32 option if that helps. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - - ; - return 0; -} -_ACEOF - if ac_fn_c_try_compile "$LINENO" +else case e in #( + e) ac_save_CC="$CC" + ac_opt_found=no + for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do + if test x"$ac_opt" != x"none needed" then : - break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - CC="$CC -n32" - if ac_fn_c_try_compile "$LINENO" -then : - ac_cv_sys_largefile_CC=' -n32'; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam - break - done - CC=$ac_save_CC - rm -f conftest.$ac_ext - fi + CC="$ac_save_CC $ac_opt" fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 -printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; } - if test "$ac_cv_sys_largefile_CC" != no; then - CC=$CC$ac_cv_sys_largefile_CC - fi - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 -printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } -if test ${ac_cv_sys_file_offset_bits+y} -then : - printf %s "(cached) " >&6 -else $as_nop - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. @@ -19474,21 +19872,72 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_file_offset_bits=no; break + ac_cv_sys_largefile_opts="$ac_opt" + ac_opt_found=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + test $ac_opt_found = no || break + done + CC="$ac_save_CC" + test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5 +printf "%s\n" "$ac_cv_sys_largefile_opts" >&6; } + +ac_have_largefile=yes +case $ac_cv_sys_largefile_opts in #( + "none needed") : + ;; #( + "support not detected") : + ac_have_largefile=no + if test $enable_largefile = required +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "support for large files is required +See 'config.log' for more details" "$LINENO" 5; } +fi ;; #( + "-D_FILE_OFFSET_BITS=64") : + +printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h + ;; #( + "-D_LARGE_FILES=1") : + +printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h + ;; #( + "-n32") : + CC="$CC -n32" ;; #( + *) : + as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;; +esac + + if test "$enable_year2038" != no +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable timestamps after Jan 2038" >&5 +printf %s "checking for $CC option to enable timestamps after Jan 2038... " >&6; } +if test ${ac_cv_sys_year2038_opts+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_save_CPPFLAGS="$CPPFLAGS" + ac_opt_found=no + for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do + if test x"$ac_opt" != x"none needed" +then : + CPPFLAGS="$ac_save_CPPFLAGS $ac_opt" +fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define _FILE_OFFSET_BITS 64 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; + + #include + /* Check that time_t can represent 2**32 - 1 correctly. */ + #define LARGE_TIME_T \\ + ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30))) + int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535 + && LARGE_TIME_T % 65537 == 0) + ? 1 : -1]; + int main (void) { @@ -19499,109 +19948,182 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_file_offset_bits=64; break + ac_cv_sys_year2038_opts="$ac_opt" + ac_opt_found=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cv_sys_file_offset_bits=unknown - break -done + test $ac_opt_found = no || break + done + CPPFLAGS="$ac_save_CPPFLAGS" + test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 -printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; } -case $ac_cv_sys_file_offset_bits in #( - no | unknown) ;; - *) -printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h -;; +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5 +printf "%s\n" "$ac_cv_sys_year2038_opts" >&6; } + +ac_have_year2038=yes +case $ac_cv_sys_year2038_opts in #( + "none needed") : + ;; #( + "support not detected") : + ac_have_year2038=no + case $enable_year2038 in #( + required) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "support for timestamps after Jan 2038 is required +See 'config.log' for more details" "$LINENO" 5; } ;; #( + yes) : + # If we're not cross compiling and 'touch' works with a large + # timestamp, then we can presume the system supports wider time_t + # *somehow* and we just weren't able to detect it. One common + # case that we deliberately *don't* probe for is a system that + # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers + # wide time_t. (It would be inappropriate for us to override an + # intentional use of -m32.) Error out, demanding use of + # --disable-year2038 if this is intentional. + if test $cross_compiling = no +then : + if TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null +then : + case `TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null` in #( + *'Feb 7 2106'* | *'Feb 7 17:10'*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "this system appears to support timestamps after +January 2038, but no mechanism for enabling wide +'time_t' was detected. Did you mean to build a 64-bit +binary? (e.g. 'CC=\"${CC} -m64\"'.) To proceed with +32-bit time_t, configure with '--disable-year2038'. +See 'config.log' for more details" "$LINENO" 5; } ;; #( + *) : + ;; esac -rm -rf conftest* - if test $ac_cv_sys_file_offset_bits = unknown; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 -printf %s "checking for _LARGE_FILES value needed for large files... " >&6; } -if test ${ac_cv_sys_large_files+y} +fi +fi ;; #( + *) : + ;; +esac ;; #( + "-D_TIME_BITS=64") : + +printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h + ;; #( + "-D__MINGW_USE_VC2005_COMPAT=1") : + +printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h + ;; #( + "-U_USE_32_BIT_TIME_T"*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} +as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It +will stop working after January 2038. Remove +_USE_32BIT_TIME_T from the compiler flags. +See 'config.log' for more details" "$LINENO" 5; } ;; #( + *) : + as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;; +esac + +fi + + + +fi + + + + +# +# Don't allow undefined symbols, even in shared libraries, if possible. +# This will detect missing symbols at build-time instead of run-time +# but is incompatible with the sanitizers/fuzzers. +# We must set this *before* the library tests. +# +if test -n "$GCC" -a X"${enable_sanitizer}${enable_fuzzer}" = X"nono" then : - printf %s "(cached) " >&6 -else $as_nop - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; -int -main (void) -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" + # On FreeBSD and Dragonfly, environ is filled in by the dynamic loader + # so -Wl,--no-undefined causes a link error when environ is used. + # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263265 + # We use errno because OpenBSD shared libraries don't explicitly + # link with libc, which can result in undefined reference errors. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the linker accepts -Wl,--no-undefined" >&5 +printf %s "checking the linker accepts -Wl,--no-undefined... " >&6; } +if test ${sudo_cv_var_ld___no_undefined+y} then : - ac_cv_sys_large_files=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + printf %s "(cached) " >&6 +else case e in #( + e) + sudo_cv_var_ld___no_undefined=no + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_prog_compiler_pic -shared -Wl,--no-undefined" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define _LARGE_FILES 1 -#include - /* Check that off_t can represent 2**63 - 1 correctly. - We can't simply define LARGE_OFF_T to be 9223372036854775807, - since some C++ compilers masquerading as C compilers - incorrectly reject 9223372036854775807. */ -#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) - int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 - && LARGE_OFF_T % 2147483647 == 1) - ? 1 : -1]; +#include +extern char **environ; int main (void) { - +int ret = ((long)environ & 0xff) + errno; return ret; ; return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_link "$LINENO" then : - ac_cv_sys_large_files=1; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - ac_cv_sys_large_files=unknown - break -done + sudo_cv_var_ld___no_undefined=yes fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 -printf "%s\n" "$ac_cv_sys_large_files" >&6; } -case $ac_cv_sys_large_files in #( - no | unknown) ;; - *) -printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h -;; +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + + ;; esac -rm -rf conftest* - fi fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_ld___no_undefined" >&5 +printf "%s\n" "$sudo_cv_var_ld___no_undefined" >&6; } + if test "$sudo_cv_var_ld___no_undefined" = "yes" +then : -if test X"$ac_cv_sys_file_offset_bits" = X"yes"; then - ac_fn_check_decl "$LINENO" "__TIMESIZE" "ac_cv_have_decl___TIMESIZE" " -$ac_includes_default -#include -" "$ac_c_undeclared_builtin_options" "CFLAGS" -if test "x$ac_cv_have_decl___TIMESIZE" = xyes +if test ${LDFLAGS+y} then : + case " $LDFLAGS " in #( + *" -Wl,--no-undefined "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS already contains -Wl,--no-undefined"; } >&5 + (: LDFLAGS already contains -Wl,--no-undefined) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : -printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h + as_fn_append LDFLAGS " -Wl,--no-undefined" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 + (: LDFLAGS="$LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + LDFLAGS=-Wl,--no-undefined + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 + (: LDFLAGS="$LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi fi + fi # @@ -19617,8 +20139,8 @@ printf %s "checking whether sys/socket.h needs _XOPEN_SOURCE_EXTENDED for MSG_WA if test ${sudo_cv_xopen_source_extended+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default # include @@ -19633,8 +20155,8 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : sudo_cv_xopen_source_extended=no -else $as_nop - +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED @@ -19652,62 +20174,39 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : sudo_cv_xopen_source_extended=yes -else $as_nop - sudo_cv_xopen_source_extended=error +else case e in #( + e) sudo_cv_xopen_source_extended=error ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_xopen_source_extended" >&5 printf "%s\n" "$sudo_cv_xopen_source_extended" >&6; } - if test "$sudo_cv_xopen_source_extended" = "yes"; then + if test "$sudo_cv_xopen_source_extended" = "yes" +then : + printf "%s\n" "#define _XOPEN_SOURCE_EXTENDED 1" >>confdefs.h - fi + +fi ;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking POSIX termios" >&5 -printf %s "checking POSIX termios... " >&6; } -if test ${ac_cv_sys_posix_termios+y} -then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -int -main (void) -{ -/* SunOS 4.0.3 has termios.h but not the library calls. */ - tcgetattr(0, 0); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the user mail spool directory" >&5 +printf %s "checking for the user mail spool directory... " >&6; } +if test ${sudo_cv_mail_dir+y} then : - ac_cv_sys_posix_termios=yes -else $as_nop - ac_cv_sys_posix_termios=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_posix_termios" >&5 -printf "%s\n" "$ac_cv_sys_posix_termios" >&6; } - -if test "$ac_cv_sys_posix_termios" != "yes"; then - as_fn_error $? "must have POSIX termios to build sudo" "$LINENO" 5 -fi - -maildir=no -if test X"$ac_cv_header_paths_h" = X"yes"; then -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + printf %s "(cached) " >&6 +else case e in #( + e) + sudo_cv_mail_dir=no + if test X"$ac_cv_header_paths_h" = X"yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #include @@ -19721,70 +20220,166 @@ char *p = _PATH_MAILDIR; _ACEOF if ac_fn_c_try_compile "$LINENO" then : - maildir=yes + sudo_cv_mail_dir="paths.h" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -if test $maildir = no; then - # Solaris has maillock.h which defines MAILDIR - for ac_header in maillock.h + fi + if test $sudo_cv_mail_dir = no; then + # Solaris has maillock.h which defines MAILDIR + for ac_header in maillock.h do : ac_fn_c_check_header_compile "$LINENO" "maillock.h" "ac_cv_header_maillock_h" "$ac_includes_default" if test "x$ac_cv_header_maillock_h" = xyes then : printf "%s\n" "#define HAVE_MAILLOCK_H 1" >>confdefs.h - cat >>confdefs.h <<\EOF -#define _PATH_MAILDIR MAILDIR -EOF - - maildir=yes + sudo_cv_mail_dir=maillock.h +else case e in #( + e) + sudo_cv_mail_dir=/var/mail + for d in /var/mail /var/spool/mail /usr/spool/mail; do + if test -d "$d"; then + sudo_cv_mail_dir="$d" + break + fi + done + ;; +esac fi done - if test $maildir = no; then - for d in /var/mail /var/spool/mail /usr/spool/mail; do - if test -d "$d"; then - maildir=yes - cat >>confdefs.h <&5 +printf "%s\n" "$sudo_cv_mail_dir" >&6; } + case "$sudo_cv_mail_dir" in + paths.h) + # _PATH_MAILDIR already present in paths.h. + ;; + maillock.h) + # Use MAILDIR from maillock.h + cat >>confdefs.h <<\EOF +#define _PATH_MAILDIR MAILDIR EOF - break - fi - done - if test $maildir = no; then - # unable to find mail dir, hope for the best - cat >>confdefs.h <>confdefs.h + + ;; + *) + cat >>confdefs.h <>confdefs.h - LOGINCAP_USAGE='[-c class] '; LCMAN=1 + + LOGINCAP_USAGE='[-c class] ' + LCMAN=1 with_logincap=yes - case "$OS" in - freebsd*|netbsd*) - SUDO_LIBS="${SUDO_LIBS} -lutil" - SUDOERS_LIBS="${SUDOERS_LIBS} -lutil" - ;; - esac fi done + if test "${with_logincap}" = "yes" +then : + + # setusercontext() is in libutil on NetBSD, FreeBSD, Dragonfly BSD. + _LIBS="$LIBS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setusercontext" >&5 +printf %s "checking for library containing setusercontext... " >&6; } +if test ${ac_cv_search_setusercontext+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char setusercontext (void); +int +main (void) +{ +return setusercontext (); + ; + return 0; +} +_ACEOF +for ac_lib in '' util +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_setusercontext=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_setusercontext+y} +then : + break +fi +done +if test ${ac_cv_search_setusercontext+y} +then : + +else case e in #( + e) ac_cv_search_setusercontext=no ;; +esac +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setusercontext" >&5 +printf "%s\n" "$ac_cv_search_setusercontext" >&6; } +ac_res=$ac_cv_search_setusercontext +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +fi + + LIBS="$_LIBS" + if test "${ac_cv_search_setusercontext}" != "none required" +then : + + SUDO_LIBS="${SUDO_LIBS} -lutil" + SUDOERS_LIBS="${SUDOERS_LIBS} -lutil" + +fi + +fi + fi -if test ${with_project-'no'} != "no"; then +if test ${with_project-'no'} != "no" +then : + ac_fn_c_check_header_compile "$LINENO" "project.h" "ac_cv_header_project_h" "$ac_includes_default" if test "x$ac_cv_header_project_h" = xyes then : @@ -19794,16 +20389,22 @@ printf %s "checking for setproject in -lproject... " >&6; } if test ${ac_cv_lib_project_setproject+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lproject $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char setproject (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char setproject (void); int main (void) { @@ -19815,12 +20416,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_project_setproject=yes -else $as_nop - ac_cv_lib_project_setproject=no +else case e in #( + e) ac_cv_lib_project_setproject=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_project_setproject" >&5 printf "%s\n" "$ac_cv_lib_project_setproject" >&6; } @@ -19834,263 +20437,119 @@ then : fi -else $as_nop - with_project=no -fi - +else case e in #( + e) with_project=no ;; +esac fi -ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" -if test "x$ac_cv_type_mode_t" = xyes -then : - -else $as_nop -printf "%s\n" "#define mode_t int" >>confdefs.h fi - - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 -printf %s "checking for uid_t in sys/types.h... " >&6; } -if test ${ac_cv_type_uid_t+y} +if test X"${ac_cv_header_stdint_h}${ac_cv_header_inttypes_h}" = X"nono" then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "uid_t" >/dev/null 2>&1 + ac_fn_c_check_type "$LINENO" "int8_t" "ac_cv_type_int8_t" "$ac_includes_default" +if test "x$ac_cv_type_int8_t" = xyes then : - ac_cv_type_uid_t=yes -else $as_nop - ac_cv_type_uid_t=no -fi -rm -rf conftest* - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 -printf "%s\n" "$ac_cv_type_uid_t" >&6; } -if test $ac_cv_type_uid_t = no; then - -printf "%s\n" "#define uid_t int" >>confdefs.h +printf "%s\n" "#define HAVE_INT8_T 1" >>confdefs.h -printf "%s\n" "#define gid_t int" >>confdefs.h fi - -ac_fn_c_check_type "$LINENO" "clockid_t" "ac_cv_type_clockid_t" "#include -#include -" -if test "x$ac_cv_type_clockid_t" = xyes +ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default" +if test "x$ac_cv_type_uint8_t" = xyes then : -else $as_nop - printf "%s\n" "#define clockid_t int" >>confdefs.h +printf "%s\n" "#define HAVE_UINT8_T 1" >>confdefs.h -fi -ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" "#include -#include -" -if test "x$ac_cv_type_sig_atomic_t" = xyes +fi +ac_fn_c_check_type "$LINENO" "int16_t" "ac_cv_type_int16_t" "$ac_includes_default" +if test "x$ac_cv_type_int16_t" = xyes then : -else $as_nop - printf "%s\n" "#define sig_atomic_t int" >>confdefs.h +printf "%s\n" "#define HAVE_INT16_T 1" >>confdefs.h -fi -ac_fn_c_check_type "$LINENO" "struct in6_addr" "ac_cv_type_struct_in6_addr" "#include -#include -" -if test "x$ac_cv_type_struct_in6_addr" = xyes +fi +ac_fn_c_check_type "$LINENO" "uint16_t" "ac_cv_type_uint16_t" "$ac_includes_default" +if test "x$ac_cv_type_uint16_t" = xyes then : -printf "%s\n" "#define HAVE_STRUCT_IN6_ADDR 1" >>confdefs.h +printf "%s\n" "#define HAVE_UINT16_T 1" >>confdefs.h fi - - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 -printf %s "checking for unsigned long long int... " >&6; } -if test ${ac_cv_type_unsigned_long_long_int+y} +ac_fn_c_check_type "$LINENO" "int32_t" "ac_cv_type_int32_t" "$ac_includes_default" +if test "x$ac_cv_type_int32_t" = xyes then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_type_unsigned_long_long_int=yes - case $ac_prog_cc_stdc in - no | c89) ;; - *) - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - /* For now, do not test the preprocessor; as of 2007 there are too many - implementations with broken preprocessors. Perhaps this can - be revisited in 2012. In the meantime, code should not expect - #if to work with literals wider than 32 bits. */ - /* Test literals. */ - long long int ll = 9223372036854775807ll; - long long int nll = -9223372036854775807LL; - unsigned long long int ull = 18446744073709551615ULL; - /* Test constant expressions. */ - typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) - ? 1 : -1)]; - typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 - ? 1 : -1)]; - int i = 63; -int -main (void) -{ -/* Test availability of runtime routines for shift and division. */ - long long int llmax = 9223372036854775807ll; - unsigned long long int ullmax = 18446744073709551615ull; - return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) - | (llmax / ll) | (llmax % ll) - | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) - | (ullmax / ull) | (ullmax % ull)); - ; - return 0; -} +printf "%s\n" "#define HAVE_INT32_T 1" >>confdefs.h -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : -else $as_nop - ac_cv_type_unsigned_long_long_int=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext;; - esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 -printf "%s\n" "$ac_cv_type_unsigned_long_long_int" >&6; } - if test $ac_cv_type_unsigned_long_long_int = yes; then - -printf "%s\n" "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h - - fi +ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default" +if test "x$ac_cv_type_uint32_t" = xyes +then : +printf "%s\n" "#define HAVE_UINT32_T 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 -printf %s "checking for long long int... " >&6; } -if test ${ac_cv_type_long_long_int+y} -then : - printf %s "(cached) " >&6 -else $as_nop - ac_cv_type_long_long_int=yes - case $ac_prog_cc_stdc in - no | c89) ;; - *) - ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int - if test $ac_cv_type_long_long_int = yes; then - if test "$cross_compiling" = yes -then : - : -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #ifndef LLONG_MAX - # define HALF \ - (1LL << (sizeof (long long int) * CHAR_BIT - 2)) - # define LLONG_MAX (HALF - 1 + HALF) - #endif -int -main (void) -{ -long long int n = 1; - int i; - for (i = 0; ; i++) - { - long long int m = n << i; - if (m >> i != n) - return 1; - if (LLONG_MAX / 2 < m) - break; - } - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO" +fi +ac_fn_c_check_type "$LINENO" "int64_t" "ac_cv_type_int64_t" "$ac_includes_default" +if test "x$ac_cv_type_int64_t" = xyes then : -else $as_nop - ac_cv_type_long_long_int=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi +printf "%s\n" "#define HAVE_INT64_T 1" >>confdefs.h + - fi;; - esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 -printf "%s\n" "$ac_cv_type_long_long_int" >&6; } - if test $ac_cv_type_long_long_int = yes; then +ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default" +if test "x$ac_cv_type_uint64_t" = xyes +then : -printf "%s\n" "#define HAVE_LONG_LONG_INT 1" >>confdefs.h +printf "%s\n" "#define HAVE_UINT64_T 1" >>confdefs.h - fi -if test X"$ac_cv_type_long_long_int" != X"yes"; then - as_fn_error $? "C compiler does not appear to support the long long int type" "$LINENO" 5 fi ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "$ac_includes_default" if test "x$ac_cv_type_intmax_t" = xyes then : -else $as_nop +printf "%s\n" "#define HAVE_INTMAX_T 1" >>confdefs.h -printf "%s\n" "#define intmax_t long long" >>confdefs.h fi - ac_fn_c_check_type "$LINENO" "uintmax_t" "ac_cv_type_uintmax_t" "$ac_includes_default" if test "x$ac_cv_type_uintmax_t" = xyes then : -else $as_nop +printf "%s\n" "#define HAVE_UINTMAX_T 1" >>confdefs.h -printf "%s\n" "#define uintmax_t unsigned long long" >>confdefs.h fi -ac_fn_c_check_type "$LINENO" "uint8_t" "ac_cv_type_uint8_t" "$ac_includes_default" -if test "x$ac_cv_type_uint8_t" = xyes -then : - -else $as_nop - -printf "%s\n" "#define uint8_t unsigned char" >>confdefs.h fi - -ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "$ac_includes_default" -if test "x$ac_cv_type_uint32_t" = xyes +ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" " +$ac_includes_default +#include +" +if test "x$ac_cv_type_sig_atomic_t" = xyes then : -else $as_nop +printf "%s\n" "#define HAVE_SIG_ATOMIC_T 1" >>confdefs.h -printf "%s\n" "#define uint32_t unsigned int" >>confdefs.h fi -ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "$ac_includes_default" -if test "x$ac_cv_type_uint64_t" = xyes +ac_fn_c_check_type "$LINENO" "struct in6_addr" "ac_cv_type_struct_in6_addr" "#include +#include +" +if test "x$ac_cv_type_struct_in6_addr" = xyes then : -else $as_nop +printf "%s\n" "#define HAVE_STRUCT_IN6_ADDR 1" >>confdefs.h -printf "%s\n" "#define uint64_t unsigned long long" >>confdefs.h fi @@ -20101,8 +20560,175 @@ $ac_includes_default if test "x$ac_cv_type_socklen_t" = xyes then : -else $as_nop - printf "%s\n" "#define socklen_t unsigned int" >>confdefs.h +printf "%s\n" "#define HAVE_SOCKLEN_T 1" >>confdefs.h + + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5 +printf %s "checking for egrep -e... " >&6; } +if test ${ac_cv_path_EGREP_TRADITIONAL+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) if test -z "$EGREP_TRADITIONAL"; then + ac_path_EGREP_TRADITIONAL_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue +# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. + # Check for GNU $ac_path_EGREP_TRADITIONAL +case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl" + "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" + ac_path_EGREP_TRADITIONAL_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_TRADITIONAL_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then + : + fi +else + ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL +fi + + if test "$ac_cv_path_EGREP_TRADITIONAL" +then : + ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E" +else case e in #( + e) if test -z "$EGREP_TRADITIONAL"; then + ac_path_EGREP_TRADITIONAL_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue +# Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. + # Check for GNU $ac_path_EGREP_TRADITIONAL +case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl" + "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" + ac_path_EGREP_TRADITIONAL_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_TRADITIONAL_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL +fi + ;; +esac +fi ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5 +printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; } + EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5 +printf %s "checking for uid_t in sys/types.h... " >&6; } +if test ${ac_cv_type_uid_t+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP_TRADITIONAL "uid_t" >/dev/null 2>&1 +then : + ac_cv_type_uid_t=yes +else case e in #( + e) ac_cv_type_uid_t=no ;; +esac +fi +rm -rf conftest* + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5 +printf "%s\n" "$ac_cv_type_uid_t" >&6; } +if test $ac_cv_type_uid_t = no; then + +printf "%s\n" "#define uid_t int" >>confdefs.h + + +printf "%s\n" "#define gid_t int" >>confdefs.h fi @@ -20112,14 +20738,14 @@ printf %s "checking max length of uid_t... " >&6; } if test ${sudo_cv_uid_t_len+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) rm -f conftestdata if test "$cross_compiling" = yes then : sudo_cv_uid_t_len=10 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -20144,14 +20770,17 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : sudo_cv_uid_t_len=`cat conftestdata` -else $as_nop - sudo_cv_uid_t_len=10 +else case e in #( + e) sudo_cv_uid_t_len=10 ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_uid_t_len" >&5 printf "%s\n" "$sudo_cv_uid_t_len" >&6; } @@ -20190,28 +20819,30 @@ fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of id_t" >&5 printf %s "checking size of id_t... " >&6; } if test ${ac_cv_sizeof_id_t+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (id_t))" "ac_cv_sizeof_id_t" "$ac_includes_default" +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (id_t))" "ac_cv_sizeof_id_t" "$ac_includes_default" then : -else $as_nop - if test "$ac_cv_type_id_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_id_t" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (id_t) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_id_t=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_id_t" >&5 printf "%s\n" "$ac_cv_sizeof_id_t" >&6; } @@ -20223,28 +20854,30 @@ printf "%s\n" "#define SIZEOF_ID_T $ac_cv_sizeof_id_t" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 printf %s "checking size of long long... " >&6; } if test ${ac_cv_sizeof_long_long+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default" +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default" then : -else $as_nop - if test "$ac_cv_type_long_long" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_long_long" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 printf "%s\n" "$ac_cv_sizeof_long_long" >&6; } @@ -20256,28 +20889,30 @@ printf "%s\n" "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5 printf %s "checking size of time_t... " >&6; } if test ${ac_cv_sizeof_time_t+y} then : printf %s "(cached) " >&6 -else $as_nop - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "$ac_includes_default" +else case e in #( + e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t" "$ac_includes_default" then : -else $as_nop - if test "$ac_cv_type_time_t" = yes; then - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +else case e in #( + e) if test "$ac_cv_type_time_t" = yes; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (time_t) -See \`config.log' for more details" "$LINENO" 5; } +See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_time_t=0 - fi + fi ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5 printf "%s\n" "$ac_cv_sizeof_time_t" >&6; } @@ -20287,7 +20922,9 @@ printf "%s\n" "$ac_cv_sizeof_time_t" >&6; } printf "%s\n" "#define SIZEOF_TIME_T $ac_cv_sizeof_time_t" >>confdefs.h -if test $ac_cv_header_utmps_h = "yes"; then +if test X"$ac_cv_header_utmps_h" = X"yes" +then : + ac_fn_c_check_member "$LINENO" "struct utmps" "ut_id" "ac_cv_member_struct_utmps_ut_id" " # include @@ -20375,8 +21012,8 @@ printf "%s\n" "#define HAVE_STRUCT_UTMP_UT_EXIT 1" >>confdefs.h printf "%s\n" "#define HAVE_STRUCT_UTMP_UT_EXIT___E_TERMINATION 1" >>confdefs.h -else $as_nop - +else case e in #( + e) ac_fn_c_check_member "$LINENO" "struct utmps" "ut_exit.e_termination" "ac_cv_member_struct_utmps_ut_exit_e_termination" " # include # include @@ -20394,11 +21031,15 @@ printf "%s\n" "#define HAVE_STRUCT_UTMP_UT_EXIT_E_TERMINATION 1" >>confdefs.h fi - + ;; +esac fi -elif test $ac_cv_header_utmpx_h = "yes"; then + +elif test X"$ac_cv_header_utmpx_h" = X"yes" +then : + ac_fn_c_check_member "$LINENO" "struct utmpx" "ut_id" "ac_cv_member_struct_utmpx_ut_id" " # include @@ -20486,8 +21127,8 @@ printf "%s\n" "#define HAVE_STRUCT_UTMP_UT_EXIT 1" >>confdefs.h printf "%s\n" "#define HAVE_STRUCT_UTMP_UT_EXIT___E_TERMINATION 1" >>confdefs.h -else $as_nop - +else case e in #( + e) ac_fn_c_check_member "$LINENO" "struct utmpx" "ut_exit.e_termination" "ac_cv_member_struct_utmpx_ut_exit_e_termination" " # include # include @@ -20505,11 +21146,14 @@ printf "%s\n" "#define HAVE_STRUCT_UTMP_UT_EXIT_E_TERMINATION 1" >>confdefs.h fi - + ;; +esac fi -else + +else case e in #( + e) ac_fn_c_check_member "$LINENO" "struct utmp" "ut_id" "ac_cv_member_struct_utmp_ut_id" " # include @@ -20597,8 +21241,8 @@ printf "%s\n" "#define HAVE_STRUCT_UTMP_UT_EXIT 1" >>confdefs.h printf "%s\n" "#define HAVE_STRUCT_UTMP_UT_EXIT___E_TERMINATION 1" >>confdefs.h -else $as_nop - +else case e in #( + e) ac_fn_c_check_member "$LINENO" "struct utmp" "ut_exit.e_termination" "ac_cv_member_struct_utmp_ut_exit_e_termination" " # include # include @@ -20616,13 +21260,18 @@ printf "%s\n" "#define HAVE_STRUCT_UTMP_UT_EXIT_E_TERMINATION 1" >>confdefs.h fi - + ;; +esac fi + ;; +esac fi -if test ${enable_python-'no'} = "yes"; then +if test ${enable_python-'no'} = "yes" +then : + @@ -20650,10 +21299,11 @@ sys.exit(sys.hexversion < minverhex)" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - as_fn_error $? "Python interpreter is too old" "$LINENO" 5 + as_fn_error $? "Python interpreter is too old" "$LINENO" 5 ;; +esac fi am_display_PYTHON=$PYTHON else @@ -20664,8 +21314,8 @@ printf %s "checking for a Python interpreter with version >= 3... " >&6; } if test ${am_cv_pathless_PYTHON+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) for am_cv_pathless_PYTHON in python python2 python3 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 python3.2 python3.1 python3.0 python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 none; do test "$am_cv_pathless_PYTHON" = none && break prog="import sys @@ -20685,7 +21335,8 @@ sys.exit(sys.hexversion < minverhex)" then : break fi - done + done ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5 printf "%s\n" "$am_cv_pathless_PYTHON" >&6; } @@ -20700,8 +21351,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PYTHON+y} then : printf %s "(cached) " >&6 -else $as_nop - case $PYTHON in +else case e in #( + e) case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; @@ -20726,6 +21377,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi PYTHON=$ac_cv_path_PYTHON @@ -20753,8 +21405,9 @@ printf %s "checking for $am_display_PYTHON version... " >&6; } if test ${am_cv_python_version+y} then : printf %s "(cached) " >&6 -else $as_nop - am_cv_python_version=`$PYTHON -c "import sys; print('%u.%u' % sys.version_info[:2])"` +else case e in #( + e) am_cv_python_version=`$PYTHON -c "import sys; print('%u.%u' % sys.version_info[:2])"` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5 printf "%s\n" "$am_cv_python_version" >&6; } @@ -20773,8 +21426,9 @@ printf %s "checking for $am_display_PYTHON platform... " >&6; } if test ${am_cv_python_platform+y} then : printf %s "(cached) " >&6 -else $as_nop - am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` +else case e in #( + e) am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"` ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5 printf "%s\n" "$am_cv_python_platform" >&6; } @@ -20807,8 +21461,8 @@ printf %s "checking for $am_display_PYTHON script directory... " >&6; } if test ${am_cv_python_pythondir+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "x$prefix" = xNONE +else case e in #( + e) if test "x$prefix" = xNONE then am_py_prefix=$ac_default_prefix else @@ -20836,7 +21490,8 @@ sys.stdout.write(sitedir)"` esac ;; esac - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5 printf "%s\n" "$am_cv_python_pythondir" >&6; } @@ -20852,8 +21507,8 @@ printf %s "checking for $am_display_PYTHON extension module directory... " >&6; if test ${am_cv_python_pyexecdir+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "x$exec_prefix" = xNONE +else case e in #( + e) if test "x$exec_prefix" = xNONE then am_py_exec_prefix=$am_py_prefix else @@ -20881,7 +21536,8 @@ sys.stdout.write(sitedir)"` esac ;; esac - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5 printf "%s\n" "$am_cv_python_pyexecdir" >&6; } @@ -20916,8 +21572,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PYTHON_CONFIG+y} then : printf %s "(cached) " >&6 -else $as_nop - case $PYTHON_CONFIG in +else case e in #( + e) case $PYTHON_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON_CONFIG="$PYTHON_CONFIG" # Let the user override the test with a path. ;; @@ -20942,6 +21598,7 @@ done IFS=$as_save_IFS ;; +esac ;; esac fi PYTHON_CONFIG=$ac_cv_path_PYTHON_CONFIG @@ -20994,6 +21651,7 @@ fi PYTHON_PLUGIN= ac_config_files="$ac_config_files $PYTHON_PLUGIN_SRC/Makefile" + fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking type of array argument to getgroups" >&5 @@ -21001,12 +21659,12 @@ printf %s "checking type of array argument to getgroups... " >&6; } if test ${ac_cv_type_getgroups+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : ac_cv_type_getgroups=cross -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Thanks to Mike Rendell for this test. */ $ac_includes_default @@ -21035,11 +21693,13 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_type_getgroups=gid_t -else $as_nop - ac_cv_type_getgroups=int +else case e in #( + e) ac_cv_type_getgroups=int ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi if test $ac_cv_type_getgroups = cross; then @@ -21049,15 +21709,17 @@ if test $ac_cv_type_getgroups = cross; then _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "getgroups.*int.*gid_t" >/dev/null 2>&1 + $EGREP_TRADITIONAL "getgroups.*int.*gid_t" >/dev/null 2>&1 then : ac_cv_type_getgroups=gid_t -else $as_nop - ac_cv_type_getgroups=int +else case e in #( + e) ac_cv_type_getgroups=int ;; +esac fi rm -rf conftest* -fi +fi ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_getgroups" >&5 printf "%s\n" "$ac_cv_type_getgroups" >&6; } @@ -21069,10 +21731,11 @@ ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes then : -else $as_nop - +else case e in #( + e) printf "%s\n" "#define size_t unsigned int" >>confdefs.h - + ;; +esac fi ac_fn_c_check_func "$LINENO" "getgroups" "ac_cv_func_getgroups" @@ -21091,16 +21754,22 @@ printf %s "checking for getgroups in -lbsd... " >&6; } if test ${ac_cv_lib_bsd_getgroups+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char getgroups (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char getgroups (void); int main (void) { @@ -21112,12 +21781,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_bsd_getgroups=yes -else $as_nop - ac_cv_lib_bsd_getgroups=no +else case e in #( + e) ac_cv_lib_bsd_getgroups=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_getgroups" >&5 printf "%s\n" "$ac_cv_lib_bsd_getgroups" >&6; } @@ -21136,8 +21807,8 @@ printf %s "checking for working getgroups... " >&6; } if test ${ac_cv_func_getgroups_works+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : case "$host_os" in # (( # Guess yes on glibc systems. @@ -21145,8 +21816,8 @@ then : # If we don't know, assume the worst. *) ac_cv_func_getgroups_works="guessing no" ;; esac -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int @@ -21161,14 +21832,17 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_getgroups_works=yes -else $as_nop - ac_cv_func_getgroups_works=no +else case e in #( + e) ac_cv_func_getgroups_works=no ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_getgroups_works" >&5 printf "%s\n" "$ac_cv_func_getgroups_works" >&6; } @@ -21184,73 +21858,98 @@ printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h esac LIBS=$ac_save_LIBS -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 -printf %s "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } -if test ${ac_cv_sys_largefile_source+y} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for declarations of fseeko and ftello" >&5 +printf %s "checking for declarations of fseeko and ftello... " >&6; } +if test ${ac_cv_func_fseeko_ftello+y} then : printf %s "(cached) " >&6 -else $as_nop - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ + +#if defined __hpux && !defined _LARGEFILE_SOURCE +# include +# if LONG_MAX >> 31 == 0 +# error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++" +# endif +#endif #include /* for off_t */ - #include +#include + int main (void) { -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); + + int (*fp1) (FILE *, off_t, int) = fseeko; + off_t (*fp2) (FILE *) = ftello; + return fseeko (stdin, 0, 0) + && fp1 (stdin, 0, 0) + && ftello (stdin) >= 0 + && fp2 (stdin) >= 0; + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_largefile_source=no; break -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + ac_cv_func_fseeko_ftello=yes +else case e in #( + e) ac_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE=1" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#define _LARGEFILE_SOURCE 1 + +#if defined __hpux && !defined _LARGEFILE_SOURCE +# include +# if LONG_MAX >> 31 == 0 +# error "32-bit HP-UX 11/ia64 needs _LARGEFILE_SOURCE for fseeko in C++" +# endif +#endif #include /* for off_t */ - #include +#include + int main (void) { -int (*fp) (FILE *, off_t, int) = fseeko; - return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); + + int (*fp1) (FILE *, off_t, int) = fseeko; + off_t (*fp2) (FILE *) = ftello; + return fseeko (stdin, 0, 0) + && fp1 (stdin, 0, 0) + && ftello (stdin) >= 0 + && fp2 (stdin) >= 0; + ; return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - ac_cv_sys_largefile_source=1; break + ac_cv_func_fseeko_ftello="need _LARGEFILE_SOURCE" +else case e in #( + e) ac_cv_func_fseeko_ftello=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - ac_cv_sys_largefile_source=unknown - break -done +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 -printf "%s\n" "$ac_cv_sys_largefile_source" >&6; } -case $ac_cv_sys_largefile_source in #( - no | unknown) ;; - *) -printf "%s\n" "#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source" >>confdefs.h -;; +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac -rm -rf conftest* - -# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug -# in glibc 2.1.3, but that breaks too many other things. -# If you want fseeko and ftello with glibc, upgrade to a fixed glibc. -if test $ac_cv_sys_largefile_source != unknown; then +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fseeko_ftello" >&5 +printf "%s\n" "$ac_cv_func_fseeko_ftello" >&6; } +if test "$ac_cv_func_fseeko_ftello" != no +then : printf "%s\n" "#define HAVE_FSEEKO 1" >>confdefs.h +fi +if test "$ac_cv_func_fseeko_ftello" = "need _LARGEFILE_SOURCE" +then : + +printf "%s\n" "#define _LARGEFILE_SOURCE 1" >>confdefs.h + fi ac_func= @@ -21274,7 +21973,6 @@ done - for ac_func in execvpe do : ac_fn_c_check_func "$LINENO" "execvpe" "ac_cv_func_execvpe" @@ -21300,32 +21998,34 @@ then : # pread/pwrite on 32-bit HP-UX 11.x may not support large files case "$host_os" in - hpux*|hiuxmpp*) + hpux*) for ac_func in pread64 pwrite64 do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF ac_fn_check_decl "$LINENO" "pread64" "ac_cv_have_decl_pread64" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_pread64" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_PREAD64 $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "pwrite64" "ac_cv_have_decl_pwrite64" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_pwrite64" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_PWRITE64 $ac_have_decl" >>confdefs.h @@ -21336,8 +22036,8 @@ done ;; esac -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" pread.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS pread.$ac_objext" @@ -21350,7 +22050,8 @@ esac " done - + ;; +esac fi done @@ -21362,8 +22063,8 @@ if test "x$ac_cv_func_pwrite" = xyes then : printf "%s\n" "#define HAVE_PWRITE 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" pwrite.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS pwrite.$ac_objext" @@ -21376,7 +22077,8 @@ esac " done - + ;; +esac fi done @@ -21388,8 +22090,8 @@ if test "x$ac_cv_func_cfmakeraw" = xyes then : printf "%s\n" "#define HAVE_CFMAKERAW 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" cfmakeraw.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS cfmakeraw.$ac_objext" @@ -21402,7 +22104,8 @@ esac " done - + ;; +esac fi done @@ -21414,8 +22117,8 @@ if test "x$ac_cv_func_localtime_r" = xyes then : printf "%s\n" "#define HAVE_LOCALTIME_R 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" localtime_r.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS localtime_r.$ac_objext" @@ -21428,7 +22131,8 @@ esac " done - + ;; +esac fi done @@ -21440,8 +22144,8 @@ if test "x$ac_cv_func_gmtime_r" = xyes then : printf "%s\n" "#define HAVE_GMTIME_R 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" gmtime_r.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS gmtime_r.$ac_objext" @@ -21454,7 +22158,8 @@ esac " done - + ;; +esac fi done @@ -21466,8 +22171,8 @@ if test "x$ac_cv_func_timegm" = xyes then : printf "%s\n" "#define HAVE_TIMEGM 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" timegm.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS timegm.$ac_objext" @@ -21480,7 +22185,8 @@ esac " done - + ;; +esac fi done @@ -21492,8 +22198,8 @@ if test "x$ac_cv_func_getgrouplist" = xyes then : printf "%s\n" "#define HAVE_GETGROUPLIST 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case "$host_os" in aix*) ac_fn_c_check_func "$LINENO" "getgrset" "ac_cv_func_getgrset" @@ -21532,8 +22238,8 @@ fi printf "%s\n" "#define HAVE__NSS_INITF_GROUP 1" >>confdefs.h -else $as_nop - +else case e in #( + e) for ac_header in nss_dbdefs.h do : ac_fn_c_check_header_compile "$LINENO" "nss_dbdefs.h" "ac_cv_header_nss_dbdefs_h" "$ac_includes_default" @@ -21551,13 +22257,15 @@ then : fi done - + ;; +esac fi -else $as_nop - - +else case e in #( + e) + ;; +esac fi @@ -21571,7 +22279,8 @@ fi " done - + ;; +esac fi done @@ -21588,14 +22297,15 @@ then : if test "x$ac_cv_have_decl_getdelim" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_GETDELIM $ac_have_decl" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" getdelim.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getdelim.$ac_objext" @@ -21609,7 +22319,8 @@ esac done COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }getdelim_test" - + ;; +esac fi done @@ -21626,14 +22337,15 @@ then : if test "x$ac_cv_have_decl_getusershell" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_GETUSERSHELL $ac_have_decl" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" getusershell.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getusershell.$ac_objext" @@ -21646,7 +22358,8 @@ esac " done - + ;; +esac fi done @@ -21658,8 +22371,8 @@ if test "x$ac_cv_func_reallocarray" = xyes then : printf "%s\n" "#define HAVE_REALLOCARRAY 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" reallocarray.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS reallocarray.$ac_objext" @@ -21672,7 +22385,8 @@ esac " done - + ;; +esac fi done @@ -21692,8 +22406,8 @@ if test "x$ac_cv_func_arc4random_uniform" = xyes then : printf "%s\n" "#define HAVE_ARC4RANDOM_UNIFORM 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" arc4random_uniform.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS arc4random_uniform.$ac_objext" @@ -21706,7 +22420,8 @@ esac " done - + ;; +esac fi done @@ -21718,8 +22433,8 @@ if test "x$ac_cv_func_arc4random_buf" = xyes then : printf "%s\n" "#define HAVE_ARC4RANDOM_BUF 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" arc4random_buf.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS arc4random_buf.$ac_objext" @@ -21732,13 +22447,14 @@ esac " done - + ;; +esac fi done -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" arc4random.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS arc4random.$ac_objext" @@ -21786,8 +22502,8 @@ then : fi -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" getentropy.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getentropy.$ac_objext" @@ -21800,7 +22516,15 @@ esac " done + ac_fn_c_check_func "$LINENO" "getauxval" "ac_cv_func_getauxval" +if test "x$ac_cv_func_getauxval" = xyes +then : + printf "%s\n" "#define HAVE_GETAUXVAL 1" >>confdefs.h +fi + + ;; +esac fi done @@ -21817,8 +22541,8 @@ printf %s "checking for main in -lpthread... " >&6; } if test ${ac_cv_lib_pthread_main+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -21835,12 +22559,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_pthread_main=yes -else $as_nop - ac_cv_lib_pthread_main=no +else case e in #( + e) ac_cv_lib_pthread_main=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5 printf "%s\n" "$ac_cv_lib_pthread_main" >&6; } @@ -21860,7 +22586,8 @@ fi fi done - + ;; +esac fi done @@ -21869,32 +22596,35 @@ utmp_style=LEGACY for ac_func in getutsid getutxid getutid do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF utmp_style=POSIX; break fi done -if test "$utmp_style" = "LEGACY"; then +if test "$utmp_style" = "LEGACY" +then : + for ac_func in getttyent ttyslot do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF break fi done + fi @@ -21904,68 +22634,109 @@ do : if test "x$ac_cv_func_sysctl" = xyes then : printf "%s\n" "#define HAVE_SYSCTL 1" >>confdefs.h - ac_fn_c_check_func "$LINENO" "devname" "ac_cv_func_devname" + + ac_fn_c_check_func "$LINENO" "devname" "ac_cv_func_devname" if test "x$ac_cv_func_devname" = xyes then : printf "%s\n" "#define HAVE_DEVNAME 1" >>confdefs.h fi + # Check for the various flavors of kinfo_proc + found=false ac_fn_c_check_member "$LINENO" "struct kinfo_proc" "ki_structsize" "ac_cv_member_struct_kinfo_proc_ki_structsize" " -# include -# include -# include +#include +#include +#include " if test "x$ac_cv_member_struct_kinfo_proc_ki_structsize" = xyes then : - printf "%s\n" "#define HAVE_KINFO_PROC_FREEBSD 1" >>confdefs.h -else $as_nop + printf "%s\n" "#define HAVE_KINFO_PROC_FREEBSD 1" >>confdefs.h - ac_fn_c_check_member "$LINENO" "struct kinfo_proc2" "p_paddr" "ac_cv_member_struct_kinfo_proc2_p_paddr" " -# include -# include + found=true + +fi + + if test "$found" = "false" +then : + + ac_fn_c_check_member "$LINENO" "struct kinfo_proc" "kp_paddr" "ac_cv_member_struct_kinfo_proc_kp_paddr" " +#include +#include +#include " -if test "x$ac_cv_member_struct_kinfo_proc2_p_paddr" = xyes +if test "x$ac_cv_member_struct_kinfo_proc_kp_paddr" = xyes then : - printf "%s\n" "#define HAVE_KINFO_PROC2_NETBSD 1" >>confdefs.h -else $as_nop + printf "%s\n" "#define HAVE_KINFO_PROC_DFLY 1" >>confdefs.h + + found=true + +fi + + +fi + if test "$found" = "false" +then : - ac_fn_c_check_member "$LINENO" "struct kinfo_proc" "p_paddr" "ac_cv_member_struct_kinfo_proc_p_paddr" " -# include -# include + ac_fn_c_check_member "$LINENO" "struct kinfo_proc2" "p_paddr" "ac_cv_member_struct_kinfo_proc2_p_paddr" " +#include +#include " -if test "x$ac_cv_member_struct_kinfo_proc_p_paddr" = xyes +if test "x$ac_cv_member_struct_kinfo_proc2_p_paddr" = xyes then : - printf "%s\n" "#define HAVE_KINFO_PROC_OPENBSD 1" >>confdefs.h -else $as_nop + printf "%s\n" "#define HAVE_KINFO_PROC2_NETBSD 1" >>confdefs.h + + found=true + +fi + - ac_fn_c_check_member "$LINENO" "struct kinfo_proc" "kp_proc" "ac_cv_member_struct_kinfo_proc_kp_proc" " -# include -# include +fi + if test "$found" = "false" +then : + + ac_fn_c_check_member "$LINENO" "struct kinfo_proc" "p_paddr" "ac_cv_member_struct_kinfo_proc_p_paddr" " +#include +#include " -if test "x$ac_cv_member_struct_kinfo_proc_kp_proc" = xyes +if test "x$ac_cv_member_struct_kinfo_proc_p_paddr" = xyes then : - printf "%s\n" "#define HAVE_KINFO_PROC_44BSD 1" >>confdefs.h -fi + printf "%s\n" "#define HAVE_KINFO_PROC_OPENBSD 1" >>confdefs.h + found=true fi fi + if test "$found" = "false" +then : + ac_fn_c_check_member "$LINENO" "struct kinfo_proc" "kp_proc" "ac_cv_member_struct_kinfo_proc_kp_proc" " +#include +#include + +" +if test "x$ac_cv_member_struct_kinfo_proc_kp_proc" = xyes +then : + + printf "%s\n" "#define HAVE_KINFO_PROC_44BSD 1" >>confdefs.h + + found=true fi +fi + fi done @@ -21979,34 +22750,40 @@ then : printf "%s\n" "#define HAVE_OPENPTY 1" >>confdefs.h for ac_header in libutil.h util.h pty.h do : - as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 _ACEOF break fi done -else $as_nop - +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openpty in -lutil" >&5 printf %s "checking for openpty in -lutil... " >&6; } if test ${ac_cv_lib_util_openpty+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char openpty (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char openpty (void); int main (void) { @@ -22018,12 +22795,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_util_openpty=yes -else $as_nop - ac_cv_lib_util_openpty=no +else case e in #( + e) ac_cv_lib_util_openpty=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_openpty" >&5 printf "%s\n" "$ac_cv_lib_util_openpty" >&6; } @@ -22032,12 +22811,12 @@ then : for ac_header in libutil.h util.h pty.h do : - as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 _ACEOF break fi @@ -22050,8 +22829,8 @@ done printf "%s\n" "#define HAVE_OPENPTY 1" >>confdefs.h -else $as_nop - +else case e in #( + e) for ac_func in _getpty do : @@ -22060,8 +22839,8 @@ if test "x$ac_cv_func__getpty" = xyes then : printf "%s\n" "#define HAVE__GETPTY 1" >>confdefs.h -else $as_nop - +else case e in #( + e) for ac_func in grantpt do : @@ -22078,8 +22857,8 @@ then : fi -else $as_nop - +else case e in #( + e) ac_fn_c_check_func "$LINENO" "revoke" "ac_cv_func_revoke" if test "x$ac_cv_func_revoke" = xyes then : @@ -22087,18 +22866,22 @@ then : fi - + ;; +esac fi done - + ;; +esac fi done - + ;; +esac fi - + ;; +esac fi done @@ -22114,12 +22897,12 @@ printf %s "checking whether unsetenv returns void... " >&6; } if test ${sudo_cv_func_unsetenv_void+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : sudo_cv_func_unsetenv_void=no -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int unsetenv(); @@ -22138,13 +22921,16 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : sudo_cv_func_unsetenv_void=no -else $as_nop - sudo_cv_func_unsetenv_void=yes +else case e in #( + e) sudo_cv_func_unsetenv_void=yes ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_unsetenv_void" >&5 printf "%s\n" "$sudo_cv_func_unsetenv_void" >&6; } @@ -22162,8 +22948,8 @@ printf %s "checking whether putenv takes a const argument... " >&6; } if test ${sudo_cv_func_putenv_const+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int putenv(const char *string) {return 0;} @@ -22178,11 +22964,13 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : sudo_cv_func_putenv_const=yes -else $as_nop - sudo_cv_func_putenv_const=no +else case e in #( + e) sudo_cv_func_putenv_const=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_putenv_const" >&5 printf "%s\n" "$sudo_cv_func_putenv_const" >&6; } @@ -22195,7 +22983,9 @@ printf "%s\n" "#define PUTENV_CONST const" >>confdefs.h fi -if test -z "$SKIP_SETRESUID"; then +if test -z "$SKIP_SETRESUID" +then : + for ac_func in setresuid do : @@ -22209,8 +22999,9 @@ then : if test "x$ac_cv_have_decl_setresuid" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SETRESUID $ac_have_decl" >>confdefs.h @@ -22225,8 +23016,9 @@ then : if test "x$ac_cv_have_decl_getresuid" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_GETRESUID $ac_have_decl" >>confdefs.h @@ -22237,8 +23029,11 @@ done fi done + fi -if test -z "$SKIP_SETREUID"; then +if test -z "$SKIP_SETRESUID" +then : + ac_fn_c_check_func "$LINENO" "setreuid" "ac_cv_func_setreuid" if test "x$ac_cv_func_setreuid" = xyes then : @@ -22246,10 +23041,13 @@ then : fi + fi -if test X"$with_interfaces" != X"no"; then +if test X"$with_interfaces" != X"no" +then : + for ac_func in getifaddrs do : @@ -22267,6 +23065,7 @@ fi fi done + fi for ac_func in lockf @@ -22299,13 +23098,14 @@ $ac_includes_default if test "x$ac_cv_have_decl_innetgr" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_INNETGR $ac_have_decl" >>confdefs.h -else $as_nop - +else case e in #( + e) for ac_func in _innetgr do : @@ -22326,8 +23126,9 @@ $ac_includes_default if test "x$ac_cv_have_decl__innetgr" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL__INNETGR $ac_have_decl" >>confdefs.h @@ -22335,7 +23136,8 @@ printf "%s\n" "#define HAVE_DECL__INNETGR $ac_have_decl" >>confdefs.h fi done - + ;; +esac fi done @@ -22355,14 +23157,15 @@ $ac_includes_default if test "x$ac_cv_have_decl_getdomainname" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_GETDOMAINNAME $ac_have_decl" >>confdefs.h -else $as_nop - +else case e in #( + e) for ac_func in sysinfo do : @@ -22380,7 +23183,8 @@ fi fi done - + ;; +esac fi done @@ -22392,8 +23196,8 @@ if test "x$ac_cv_func_utimensat" = xyes then : printf "%s\n" "#define HAVE_UTIMENSAT 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" utimens.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS utimens.$ac_objext" @@ -22413,7 +23217,8 @@ then : fi - + ;; +esac fi done @@ -22425,8 +23230,8 @@ if test "x$ac_cv_func_futimens" = xyes then : printf "%s\n" "#define HAVE_FUTIMENS 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" utimens.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS utimens.$ac_objext" @@ -22442,18 +23247,19 @@ esac for ac_func in futimes futimesat futime do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF break fi done - + ;; +esac fi done @@ -22465,8 +23271,8 @@ if test "x$ac_cv_func_explicit_bzero" = xyes then : printf "%s\n" "#define HAVE_EXPLICIT_BZERO 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" explicit_bzero.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS explicit_bzero.$ac_objext" @@ -22482,18 +23288,19 @@ esac for ac_func in explicit_memset memset_explicit memset_s bzero do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF break fi done - + ;; +esac fi done @@ -22503,13 +23310,13 @@ printf %s "checking for working fnmatch with FNM_CASEFOLD... " >&6; } if test ${sudo_cv_func_fnmatch+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) if test "$cross_compiling" = yes then : sudo_cv_func_fnmatch=no -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main() { return(fnmatch("/*/bin/echo *", "/usr/bin/echo just a test", FNM_CASEFOLD)); } @@ -22517,14 +23324,17 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : sudo_cv_func_fnmatch=yes -else $as_nop - sudo_cv_func_fnmatch=no +else case e in #( + e) sudo_cv_func_fnmatch=no ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_fnmatch" >&5 printf "%s\n" "$sudo_cv_func_fnmatch" >&6; } @@ -22532,8 +23342,8 @@ printf "%s\n" "$sudo_cv_func_fnmatch" >&6; } then : printf "%s\n" "#define HAVE_FNMATCH 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" fnmatch.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fnmatch.$ac_objext" @@ -22547,7 +23357,8 @@ esac done COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }fnm_test" - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isblank" >&5 @@ -22555,8 +23366,8 @@ printf %s "checking for isblank... " >&6; } if test ${sudo_cv_func_isblank+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int @@ -22570,11 +23381,13 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : sudo_cv_func_isblank=yes -else $as_nop - sudo_cv_func_isblank=no +else case e in #( + e) sudo_cv_func_isblank=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_isblank" >&5 printf "%s\n" "$sudo_cv_func_isblank" >&6; } @@ -22606,8 +23419,8 @@ if test "x$ac_cv_func_glob" = xyes then : printf "%s\n" "#define HAVE_GLOB 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" glob.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS glob.$ac_objext" @@ -22620,7 +23433,8 @@ esac " done - + ;; +esac fi done @@ -22632,8 +23446,8 @@ if test "x$ac_cv_func_memrchr" = xyes then : printf "%s\n" "#define HAVE_MEMRCHR 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" memrchr.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memrchr.$ac_objext" @@ -22646,7 +23460,8 @@ esac " done - + ;; +esac fi done @@ -22658,8 +23473,8 @@ if test "x$ac_cv_func_freezero" = xyes then : printf "%s\n" "#define HAVE_FREEZERO 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" freezero.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS freezero.$ac_objext" @@ -22672,7 +23487,8 @@ esac " done - + ;; +esac fi done @@ -22684,24 +23500,30 @@ if test "x$ac_cv_func_nanosleep" = xyes then : printf "%s\n" "#define HAVE_NANOSLEEP 1" >>confdefs.h -else $as_nop - +else case e in #( + e) # On Solaris, nanosleep is in librt { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for nanosleep in -lrt" >&5 printf %s "checking for nanosleep in -lrt... " >&6; } if test ${ac_cv_lib_rt_nanosleep+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char nanosleep (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char nanosleep (void); int main (void) { @@ -22713,12 +23535,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_rt_nanosleep=yes -else $as_nop - ac_cv_lib_rt_nanosleep=no +else case e in #( + e) ac_cv_lib_rt_nanosleep=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_nanosleep" >&5 printf "%s\n" "$ac_cv_lib_rt_nanosleep" >&6; } @@ -22729,8 +23553,8 @@ then : LIBRT="-lrt" -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" nanosleep.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS nanosleep.$ac_objext" @@ -22743,10 +23567,12 @@ esac " done - + ;; +esac fi - + ;; +esac fi done @@ -22758,8 +23584,8 @@ if test "x$ac_cv_func_fchownat" = xyes then : printf "%s\n" "#define HAVE_FCHOWNAT 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" fchownat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fchownat.$ac_objext" @@ -22772,7 +23598,8 @@ esac " done - + ;; +esac fi done @@ -22784,8 +23611,8 @@ if test "x$ac_cv_func_mkdirat" = xyes then : printf "%s\n" "#define HAVE_MKDIRAT 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" mkdirat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS mkdirat.$ac_objext" @@ -22798,7 +23625,8 @@ esac " done - + ;; +esac fi done @@ -22810,8 +23638,8 @@ if test "x$ac_cv_func_openat" = xyes then : printf "%s\n" "#define HAVE_OPENAT 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" openat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS openat.$ac_objext" @@ -22824,7 +23652,8 @@ esac " done - + ;; +esac fi done @@ -22836,8 +23665,8 @@ if test "x$ac_cv_func_unlinkat" = xyes then : printf "%s\n" "#define HAVE_UNLINKAT 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" unlinkat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS unlinkat.$ac_objext" @@ -22850,7 +23679,8 @@ esac " done - + ;; +esac fi done @@ -22862,8 +23692,8 @@ if test "x$ac_cv_func_fchmodat" = xyes then : printf "%s\n" "#define HAVE_FCHMODAT 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" fchmodat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fchmodat.$ac_objext" @@ -22876,7 +23706,8 @@ esac " done - + ;; +esac fi done @@ -22888,8 +23719,8 @@ if test "x$ac_cv_func_fstatat" = xyes then : printf "%s\n" "#define HAVE_FSTATAT 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" fstatat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fstatat.$ac_objext" @@ -22902,7 +23733,8 @@ esac " done - + ;; +esac fi done @@ -22914,8 +23746,8 @@ if test "x$ac_cv_func_dup3" = xyes then : printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" dup3.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS dup3.$ac_objext" @@ -22928,7 +23760,8 @@ esac " done - + ;; +esac fi done @@ -22940,8 +23773,8 @@ if test "x$ac_cv_func_pipe2" = xyes then : printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" pipe2.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS pipe2.$ac_objext" @@ -22954,7 +23787,8 @@ esac " done - + ;; +esac fi done @@ -22966,8 +23800,8 @@ if test "x$ac_cv_func_pw_dup" = xyes then : printf "%s\n" "#define HAVE_PW_DUP 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" pw_dup.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS pw_dup.$ac_objext" @@ -22980,7 +23814,8 @@ esac " done - + ;; +esac fi done @@ -22992,8 +23827,8 @@ if test "x$ac_cv_func_strlcpy" = xyes then : printf "%s\n" "#define HAVE_STRLCPY 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" strlcpy.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strlcpy.$ac_objext" @@ -23006,7 +23841,8 @@ esac " done - + ;; +esac fi done @@ -23018,8 +23854,8 @@ if test "x$ac_cv_func_strlcat" = xyes then : printf "%s\n" "#define HAVE_STRLCAT 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" strlcat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strlcat.$ac_objext" @@ -23032,7 +23868,8 @@ esac " done - + ;; +esac fi done @@ -23044,16 +23881,16 @@ printf %s "checking for working strnlen... " >&6; } if test ${ac_cv_func_strnlen_working+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : # Guess no on AIX systems, yes otherwise. case "$host_os" in aix*) ac_cv_func_strnlen_working=no;; *) ac_cv_func_strnlen_working=yes;; esac -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int @@ -23082,13 +23919,16 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_strnlen_working=yes -else $as_nop - ac_cv_func_strnlen_working=no +else case e in #( + e) ac_cv_func_strnlen_working=no ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5 printf "%s\n" "$ac_cv_func_strnlen_working" >&6; } @@ -23099,16 +23939,19 @@ test $ac_cv_func_strnlen_working = no && case " $LIBOBJS " in esac -else $as_nop - case " $LIBOBJS " in +else case e in #( + e) case " $LIBOBJS " in *" strnlen.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strnlen.$ac_objext" ;; esac - + ;; +esac fi -if test X"$ac_cv_func_strnlen_working" = X"yes"; then +if test X"$ac_cv_func_strnlen_working" = X"yes" +then : + printf "%s\n" "#define HAVE_STRNLEN 1" >>confdefs.h @@ -23119,8 +23962,8 @@ if test "x$ac_cv_func_strndup" = xyes then : printf "%s\n" "#define HAVE_STRNDUP 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" strndup.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strndup.$ac_objext" @@ -23133,11 +23976,14 @@ esac " done - + ;; +esac fi done -else + +else case e in #( + e) # Broken or missing strnlen, use our own. for _sym in sudo_strnlen; do @@ -23158,6 +24004,8 @@ esac " done + ;; +esac fi for ac_func in clock_gettime @@ -23167,24 +24015,30 @@ if test "x$ac_cv_func_clock_gettime" = xyes then : printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h -else $as_nop - +else case e in #( + e) # On Solaris, clock_gettime is in librt { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 printf %s "checking for clock_gettime in -lrt... " >&6; } if test ${ac_cv_lib_rt_clock_gettime+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char clock_gettime (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (void); int main (void) { @@ -23196,12 +24050,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_rt_clock_gettime=yes -else $as_nop - ac_cv_lib_rt_clock_gettime=no +else case e in #( + e) ac_cv_lib_rt_clock_gettime=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 printf "%s\n" "$ac_cv_lib_rt_clock_gettime" >&6; } @@ -23214,7 +24070,8 @@ then : fi - + ;; +esac fi done @@ -23226,8 +24083,8 @@ if test "x$ac_cv_func_getopt_long" = xyes then : printf "%s\n" "#define HAVE_GETOPT_LONG 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" getopt_long.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS getopt_long.$ac_objext" @@ -23245,8 +24102,8 @@ printf %s "checking for optreset... " >&6; } if test ${sudo_cv_optreset+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -23261,19 +24118,25 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : sudo_cv_optreset=yes -else $as_nop - sudo_cv_optreset=no +else case e in #( + e) sudo_cv_optreset=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_optreset" >&5 printf "%s\n" "$sudo_cv_optreset" >&6; } - if test "$sudo_cv_optreset" = "yes"; then + if test "$sudo_cv_optreset" = "yes" +then : + printf "%s\n" "#define HAVE_OPTRESET 1" >>confdefs.h - fi +fi + ;; +esac fi done @@ -23285,8 +24148,8 @@ if test "x$ac_cv_func_closefrom" = xyes then : printf "%s\n" "#define HAVE_CLOSEFROM 1" >>confdefs.h -else $as_nop - case " $LIBOBJS " in +else case e in #( + e) case " $LIBOBJS " in *" closefrom.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS closefrom.$ac_objext" ;; @@ -23306,8 +24169,8 @@ if test "x$ac_cv_have_decl_F_CLOSEM" = xyes then : printf "%s\n" "#define HAVE_FCNTL_CLOSEM 1" >>confdefs.h -else $as_nop - +else case e in #( + e) # Linux has a special header for close_range(2). for ac_func in close_range @@ -23330,10 +24193,12 @@ fi fi done - + ;; +esac fi COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }closefrom_test" - + ;; +esac fi done @@ -23344,16 +24209,17 @@ case "$host_os" in for ac_func in mkdtempat_np mkostempsat_np do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF -else $as_nop - sudo_mktemp=yes; break +else case e in #( + e) sudo_mktemp=yes; break ;; +esac fi done @@ -23362,46 +24228,26 @@ done for ac_func in mkdtempat mkostempsat do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF -else $as_nop - sudo_mktemp=yes; break +else case e in #( + e) sudo_mktemp=yes; break ;; +esac fi done ;; esac # If any of the mktemp family are missing we use our own. -if test X"$sudo_mktemp" = X"yes"; then - - for ac_func in arc4random random lrand48 -do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes" -then : - cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - break -fi - -done - if test X"$ac_cv_func_arc4random" != X"yes"; then - ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" -if test "x$ac_cv_func_getentropy" = xyes +if test X"$sudo_mktemp" = X"yes" then : - printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h - -fi - fi case " $LIBOBJS " in *" mktemp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS mktemp.$ac_objext" @@ -23415,6 +24261,7 @@ esac done COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }mktemp_test" + fi ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" if test "x$ac_cv_func_snprintf" = xyes @@ -23434,12 +24281,12 @@ printf %s "checking for working snprintf... " >&6; } if test ${ac_cv_have_working_snprintf+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : ac_cv_have_working_snprintf=cross -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -23461,13 +24308,16 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_have_working_snprintf=yes -else $as_nop - ac_cv_have_working_snprintf=no +else case e in #( + e) ac_cv_have_working_snprintf=no ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_working_snprintf" >&5 @@ -23477,12 +24327,12 @@ printf %s "checking for working vsnprintf... " >&6; } if test ${ac_cv_have_working_vsnprintf+y} then : printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes +else case e in #( + e) if test "$cross_compiling" = yes then : ac_cv_have_working_vsnprintf=cross -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -23515,13 +24365,16 @@ _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_have_working_vsnprintf=yes -else $as_nop - ac_cv_have_working_vsnprintf=no +else case e in #( + e) ac_cv_have_working_vsnprintf=no ;; +esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_working_vsnprintf" >&5 @@ -23539,7 +24392,9 @@ printf "%s\n" "$as_me: WARNING: Replacing missing/broken (v)snprintf() with sudo printf "%s\n" "#define PREFER_PORTABLE_SNPRINTF 1" >>confdefs.h fi -if test X"$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf" = X"yesyes"; then +if test X"$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf" = X"yesyes" +then : + # System has a C99-compliant v?snprintf(), check for v?asprintf() for ac_func in asprintf @@ -23549,8 +24404,8 @@ if test "x$ac_cv_func_asprintf" = xyes then : printf "%s\n" "#define HAVE_ASPRINTF 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" snprintf.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS snprintf.$ac_objext" @@ -23563,7 +24418,8 @@ esac " done - + ;; +esac fi done @@ -23575,8 +24431,8 @@ if test "x$ac_cv_func_vasprintf" = xyes then : printf "%s\n" "#define HAVE_VASPRINTF 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" snprintf.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS snprintf.$ac_objext" @@ -23589,11 +24445,14 @@ esac " done - + ;; +esac fi done -else + +else case e in #( + e) # Missing or non-compliant v?snprintf(), assume missing/bad v?asprintf() for _sym in sudo_snprintf sudo_vsnprintf sudo_asprintf sudo_vasprintf; do @@ -23601,6 +24460,8 @@ else " done + ;; +esac fi ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" " $ac_includes_default @@ -23627,24 +24488,26 @@ then : fi -else $as_nop - ac_fn_c_check_member "$LINENO" "struct stat" "st_mtimespec" "ac_cv_member_struct_stat_st_mtimespec" "$ac_includes_default" +else case e in #( + e) ac_fn_c_check_member "$LINENO" "struct stat" "st_mtimespec" "ac_cv_member_struct_stat_st_mtimespec" "$ac_includes_default" if test "x$ac_cv_member_struct_stat_st_mtimespec" = xyes then : printf "%s\n" "#define HAVE_ST_MTIMESPEC 1" >>confdefs.h -else $as_nop - ac_fn_c_check_member "$LINENO" "struct stat" "st_nmtime" "ac_cv_member_struct_stat_st_nmtime" "$ac_includes_default" +else case e in #( + e) ac_fn_c_check_member "$LINENO" "struct stat" "st_nmtime" "ac_cv_member_struct_stat_st_nmtime" "$ac_includes_default" if test "x$ac_cv_member_struct_stat_st_nmtime" = xyes then : printf "%s\n" "#define HAVE_ST_NMTIME 1" >>confdefs.h fi - + ;; +esac fi - + ;; +esac fi ac_fn_c_check_func "$LINENO" "setpassent" "ac_cv_func_setpassent" @@ -23660,8 +24523,9 @@ then : fi -if test X"$with_noexec" != X"no"; then - # Check for non-standard exec functions +if test X"$with_noexec" != X"no" +then : + # Check for non-standard exec functions ac_fn_c_check_func "$LINENO" "exect" "ac_cv_func_exect" if test "x$ac_cv_func_exect" = xyes then : @@ -23682,7 +24546,9 @@ then : fi # Check for posix_spawn, and posix_spawnp - if test X"$ac_cv_header_spawn_h" = X"yes"; then + if test X"$ac_cv_header_spawn_h" = X"yes" +then : + ac_fn_c_check_func "$LINENO" "posix_spawn" "ac_cv_func_posix_spawn" if test "x$ac_cv_func_posix_spawn" = xyes then : @@ -23696,7 +24562,9 @@ then : fi - fi + +fi +] fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -23715,8 +24583,8 @@ if ac_fn_c_try_link "$LINENO" then : printf "%s\n" "#define HAVE_DIRFD 1" >>confdefs.h -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include <$ac_header_dirent> @@ -23734,7 +24602,8 @@ then : fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext @@ -23763,57 +24632,65 @@ printf "%s\n" "#define HAVE_STRUCT_DIRENT_D_NAMLEN 1" >>confdefs.h fi -openssl_missing=no -if test "${enable_openssl-no}" != no; then - # Use pkg-config to find the openssl cflags and libs if possible. - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then - PKG_CONFIG_LIBDIR= - for d in ${enable_openssl}/*/pkgconfig; do - if test -d "$d"; then - PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR:$d" + + + openssl_missing=no + if test "${enable_openssl-no}" != no; then + # Use pkg-config to find the openssl cflags and libs if possible. + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + PKG_CONFIG_LIBDIR= + for d in ${enable_openssl}/*/pkgconfig; do + if test -d "$d"; then + PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR:$d" + fi + done + if test -n "$PKG_CONFIG_LIBDIR"; then + PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR#:} + export PKG_CONFIG_LIBDIR fi - done - if test -n "$PKG_CONFIG_LIBDIR"; then - PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR#:} - export PKG_CONFIG_LIBDIR - fi - elif test "$cross_compiling" = "yes" -a -z "$PKG_CONFIG"; then - # Cannot use pkg-config when cross-compiling - PKG_CONFIG=false - fi - : ${PKG_CONFIG='pkg-config'} - pkg_openssl=`printf $enable_openssl_pkgconfig_template "openssl"` - pkg_libcrypto=lib`printf $enable_openssl_pkgconfig_template "crypto"` - if $PKG_CONFIG --exists "$pkg_openssl >= 1.0.1" >/dev/null 2>&1; then - printf "%s\n" "#define HAVE_OPENSSL 1" >>confdefs.h - - if test "$enable_openssl" = "maybe"; then - enable_openssl=yes + elif test "$cross_compiling" = "yes" -a -z "$PKG_CONFIG"; then + # Cannot use pkg-config when cross-compiling + PKG_CONFIG=false fi + : ${PKG_CONFIG='pkg-config'} + pkg_openssl=`printf $enable_openssl_pkgconfig_template "openssl"` + pkg_libcrypto=lib`printf $enable_openssl_pkgconfig_template "crypto"` + if $PKG_CONFIG --exists "$pkg_openssl >= 1.0.1" >/dev/null 2>&1; then + printf "%s\n" "#define HAVE_OPENSSL 1" >>confdefs.h - # Check whether --static is needed (don't assume name of ssl lib) - # There may be dependent libraries or -pthread. - O_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs-only-L $pkg_openssl`" - libssl="`$PKG_CONFIG --libs-only-l $pkg_openssl | sed 's/^ *-l//'`" - libssl_extra="`echo $libssl | sed 's/^[^ ]* *//'`" - libssl="`echo $libssl | sed 's/ .*//'`" - as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libssl''_SSL_new$libssl_extra" | $as_tr_sh` + if test "$enable_openssl" = "maybe"; then + enable_openssl=yes + fi + + # Check whether --static is needed (don't assume name of ssl lib) + # There may be dependent libraries or -pthread. + O_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs-only-L $pkg_openssl`" + libssl="`$PKG_CONFIG --libs-only-l $pkg_openssl | sed 's/^ *-l//'`" + libssl_extra="`echo $libssl | sed 's/^[^ ]* *//'`" + libssl="`echo $libssl | sed 's/ .*//'`" + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libssl""_SSL_new$libssl_extra" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -l$libssl" >&5 printf %s "checking for SSL_new in -l$libssl... " >&6; } if eval test \${$as_ac_Lib+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-l$libssl $libssl_extra $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char SSL_new (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char SSL_new (void); int main (void) { @@ -23825,12 +24702,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$as_ac_Lib=yes" -else $as_nop - eval "$as_ac_Lib=no" +else case e in #( + e) eval "$as_ac_Lib=no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi eval ac_res=\$$as_ac_Lib { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -23838,17 +24717,18 @@ printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes" then : STATIC="" -else $as_nop - STATIC="--static" +else case e in #( + e) STATIC="--static" ;; +esac fi - LDFLAGS="$O_LDFLAGS" + LDFLAGS="$O_LDFLAGS" - # Use pkg-config to determine OpenSSL libs and cflags - for f in `$PKG_CONFIG $STATIC --libs $pkg_openssl`; do - case "$f" in - -L*) - f="${f#-L}" + # Use pkg-config to determine OpenSSL libs and cflags + for f in `$PKG_CONFIG $STATIC --libs $pkg_openssl`; do + case "$f" in + -L*) + f="${f#-L}" if test ${LIBTLS+y} @@ -23872,15 +24752,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS=-L$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS=\"\$LIBTLS\""; } >&5 (: LIBTLS="$LIBTLS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -23906,21 +24787,22 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS_R=-R$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS_R=\"\$LIBTLS_R\""; } >&5 (: LIBTLS_R="$LIBTLS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - ;; - *) + ;; + *) if test ${LIBTLS+y} then : @@ -23943,35 +24825,36 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS=$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS=\"\$LIBTLS\""; } >&5 (: LIBTLS="$LIBTLS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - ;; - esac - done - if $PKG_CONFIG --exists $pkg_libcrypto >/dev/null 2>&1; then - # Use OpenSSL's sha2 functions if possible (don't assume name of crypto) - O_LDFLAGS="$LDFLAGS" - libcrypto= - libcrypto_extra= - for f in `$PKG_CONFIG $STATIC --libs $pkg_libcrypto`; do - case "$f" in - -l*) - if test -z "$libcrypto"; then - libcrypto="${f#-l}" - else - libcrypto_extra="$libcrypto_extra $f" - fi ;; - *) + esac + done + if $PKG_CONFIG --exists $pkg_libcrypto >/dev/null 2>&1; then + # Use OpenSSL's sha2 functions if possible (don't assume name of crypto) + O_LDFLAGS="$LDFLAGS" + libcrypto= + libcrypto_extra= + for f in `$PKG_CONFIG $STATIC --libs $pkg_libcrypto`; do + case "$f" in + -l*) + if test -z "$libcrypto"; then + libcrypto="${f#-l}" + else + libcrypto_extra="$libcrypto_extra $f" + fi + ;; + *) if test ${LDFLAGS+y} then : @@ -23994,36 +24877,43 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LDFLAGS=$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 (: LDFLAGS="$LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - ;; - esac - done - as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libcrypto''_EVP_MD_CTX_new$libcrypto_extra" | $as_tr_sh` + ;; + esac + done + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libcrypto""_EVP_MD_CTX_new$libcrypto_extra" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EVP_MD_CTX_new in -l$libcrypto" >&5 printf %s "checking for EVP_MD_CTX_new in -l$libcrypto... " >&6; } if eval test \${$as_ac_Lib+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-l$libcrypto $libcrypto_extra $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char EVP_MD_CTX_new (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char EVP_MD_CTX_new (void); int main (void) { @@ -24035,12 +24925,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$as_ac_Lib=yes" -else $as_nop - eval "$as_ac_Lib=no" +else case e in #( + e) eval "$as_ac_Lib=no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi eval ac_res=\$$as_ac_Lib { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -24050,13 +24942,13 @@ then : DIGEST=digest_openssl.lo fi - LDFLAGS="$O_LDFLAGS" + LDFLAGS="$O_LDFLAGS" - # Use pkg-config to determine libcrypto libs and cflags - for f in `$PKG_CONFIG $STATIC --libs $pkg_libcrypto`; do - case "$f" in - -L*) - f="${f#-L}" + # Use pkg-config to determine libcrypto libs and cflags + for f in `$PKG_CONFIG $STATIC --libs $pkg_libcrypto`; do + case "$f" in + -L*) + f="${f#-L}" if test ${LIBCRYPTO+y} @@ -24080,15 +24972,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBCRYPTO=-L$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBCRYPTO=\"\$LIBCRYPTO\""; } >&5 (: LIBCRYPTO="$LIBCRYPTO") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -24114,21 +25007,22 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBCRYPTO_R=-R$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBCRYPTO_R=\"\$LIBCRYPTO_R\""; } >&5 (: LIBCRYPTO_R="$LIBCRYPTO_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - ;; - *) + ;; + *) if test ${LIBCRYPTO+y} then : @@ -24151,26 +25045,27 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBCRYPTO=$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBCRYPTO=\"\$LIBCRYPTO\""; } >&5 (: LIBCRYPTO="$LIBCRYPTO") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - ;; - esac - done - else - # No separate pkg config for libcrypto - LIBCRYPTO="$LIBTLS" - LIBCRYPTO_R="$LIBTLS_R" - fi - for f in `$PKG_CONFIG --cflags-only-I $pkg_openssl`; do + ;; + esac + done + else + # No separate pkg config for libcrypto + LIBCRYPTO="$LIBTLS" + LIBCRYPTO_R="$LIBTLS_R" + fi + for f in `$PKG_CONFIG --cflags-only-I $pkg_openssl`; do if test ${CPPFLAGS+y} then : @@ -24193,22 +25088,23 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - done - else - # No pkg-config file present, try to do it manually - O_LDFLAGS="$LDFLAGS" - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + done + else + # No pkg-config file present, try to do it manually + O_LDFLAGS="$LDFLAGS" + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then if test ${LDFLAGS+y} @@ -24232,15 +25128,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LDFLAGS=-L${enable_openssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 (: LDFLAGS="$LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -24266,35 +25163,42 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LDFLAGS_R=-R${enable_openssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS_R=\"\$LDFLAGS_R\""; } >&5 (: LDFLAGS_R="$LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -lssl" >&5 + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL_new in -lssl" >&5 printf %s "checking for SSL_new in -lssl... " >&6; } if test ${ac_cv_lib_ssl_SSL_new_lcrypto+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lssl -lcrypto $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char SSL_new (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char SSL_new (void); int main (void) { @@ -24306,22 +25210,24 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_ssl_SSL_new_lcrypto=yes -else $as_nop - ac_cv_lib_ssl_SSL_new_lcrypto=no +else case e in #( + e) ac_cv_lib_ssl_SSL_new_lcrypto=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ssl_SSL_new_lcrypto" >&5 printf "%s\n" "$ac_cv_lib_ssl_SSL_new_lcrypto" >&6; } if test "x$ac_cv_lib_ssl_SSL_new_lcrypto" = xyes then : - # Check OPENSSL_VERSION_NUMBER in headers - O_CPPFLAGS="$CPPFLAGS" - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then - # Note: we only reset CPPFLAGS on failure + # Check OPENSSL_VERSION_NUMBER in headers + O_CPPFLAGS="$CPPFLAGS" + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + # Note: we only reset CPPFLAGS on failure if test ${CPPFLAGS+y} then : @@ -24344,19 +25250,20 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${enable_openssl}/include { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x1000100fL @@ -24374,10 +25281,10 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : - # OpenSSL >= 1.0.1 detected, use it. - printf "%s\n" "#define HAVE_OPENSSL 1" >>confdefs.h + # OpenSSL >= 1.0.1 detected, use it. + printf "%s\n" "#define HAVE_OPENSSL 1" >>confdefs.h - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then if test ${LIBCRYPTO+y} @@ -24401,15 +25308,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBCRYPTO=-L${enable_openssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBCRYPTO=\"\$LIBCRYPTO\""; } >&5 (: LIBCRYPTO="$LIBCRYPTO") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -24435,15 +25343,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBCRYPTO_R=-R${enable_openssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBCRYPTO_R=\"\$LIBCRYPTO_R\""; } >&5 (: LIBCRYPTO_R="$LIBCRYPTO_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi @@ -24471,15 +25380,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS=-L${enable_openssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS=\"\$LIBTLS\""; } >&5 (: LIBTLS="$LIBTLS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -24505,41 +25415,48 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS_R=-R${enable_openssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS_R=\"\$LIBTLS_R\""; } >&5 (: LIBTLS_R="$LIBTLS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - else - enable_openssl=yes - fi - LIBCRYPTO="${LIBCRYPTO} -lcrypto" - LIBTLS="${LIBTLS} -lssl -lcrypto" + else + enable_openssl=yes + fi + LIBCRYPTO="${LIBCRYPTO} -lcrypto" + LIBTLS="${LIBTLS} -lssl -lcrypto" - # Use OpenSSL's sha2 functions if possible - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EVP_MD_CTX_new in -lcrypto" >&5 + # Use OpenSSL's sha2 functions if possible + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for EVP_MD_CTX_new in -lcrypto" >&5 printf %s "checking for EVP_MD_CTX_new in -lcrypto... " >&6; } if test ${ac_cv_lib_crypto_EVP_MD_CTX_new+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lcrypto $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char EVP_MD_CTX_new (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char EVP_MD_CTX_new (void); int main (void) { @@ -24551,59 +25468,67 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_crypto_EVP_MD_CTX_new=yes -else $as_nop - ac_cv_lib_crypto_EVP_MD_CTX_new=no +else case e in #( + e) ac_cv_lib_crypto_EVP_MD_CTX_new=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_EVP_MD_CTX_new" >&5 printf "%s\n" "$ac_cv_lib_crypto_EVP_MD_CTX_new" >&6; } if test "x$ac_cv_lib_crypto_EVP_MD_CTX_new" = xyes then : - DIGEST=digest_openssl.lo + DIGEST=digest_openssl.lo fi -else $as_nop - - # OpenSSL < 1.0.1 detected, ignore it. - if test "$enable_openssl" = "maybe"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: OpenSSL too old (1.0.1 or higher required), Sudo logsrv connections will not be encrypted." >&5 +else case e in #( + e) + # OpenSSL < 1.0.1 detected, ignore it. + if test "$enable_openssl" = "maybe"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: OpenSSL too old (1.0.1 or higher required), Sudo logsrv connections will not be encrypted." >&5 printf "%s\n" "$as_me: WARNING: OpenSSL too old (1.0.1 or higher required), Sudo logsrv connections will not be encrypted." >&2;} - enable_openssl=no - else - as_fn_error $? "OpenSSL too old (1.0.1 or higher required)." "$LINENO" 5 - fi - CPPFLAGS="$O_CPPFLAGS" - + openssl_missing=yes + enable_openssl=no + else + as_fn_error $? "OpenSSL too old (1.0.1 or higher required)." "$LINENO" 5 + fi + CPPFLAGS="$O_CPPFLAGS" + ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext -else $as_nop - - if test "$enable_openssl" = "maybe"; then - openssl_missing=yes - enable_openssl=no - else - as_fn_error $? "OpenSSL development libraries not found." "$LINENO" 5 - fi - +else case e in #( + e) + if test "$enable_openssl" = "maybe"; then + openssl_missing=yes + enable_openssl=no + else + as_fn_error $? "OpenSSL development libraries not found." "$LINENO" 5 + fi + ;; +esac fi - LDFLAGS="$O_LDFLAGS" - fi - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then - unset PKG_CONFIG_LIBDIR + LDFLAGS="$O_LDFLAGS" + fi + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + unset PKG_CONFIG_LIBDIR + fi fi -fi -if test "${enable_openssl-no}" != no; then - OLIBS="$LIBS" - LIBS="$LIBS $LIBTLS" - ac_fn_c_check_func "$LINENO" "X509_STORE_CTX_get0_cert" "ac_cv_func_X509_STORE_CTX_get0_cert" + # + # Note that enable_openssl may be reset above. + # + if test "${enable_openssl-no}" != no; then + OLIBS="$LIBS" + LIBS="$LIBS $LIBTLS" + ac_fn_c_check_func "$LINENO" "X509_STORE_CTX_get0_cert" "ac_cv_func_X509_STORE_CTX_get0_cert" if test "x$ac_cv_func_X509_STORE_CTX_get0_cert" = xyes then : printf "%s\n" "#define HAVE_X509_STORE_CTX_GET0_CERT 1" >>confdefs.h @@ -24634,10 +25559,10 @@ then : fi - # SSL_CTX_set_min_proto_version may be a macro - ac_fn_check_decl "$LINENO" "SSL_CTX_set_min_proto_version" "ac_cv_have_decl_SSL_CTX_set_min_proto_version" " - $ac_includes_default - #include + # SSL_CTX_set_min_proto_version may be a macro + ac_fn_check_decl "$LINENO" "SSL_CTX_set_min_proto_version" "ac_cv_have_decl_SSL_CTX_set_min_proto_version" " + $ac_includes_default + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_SSL_CTX_set_min_proto_version" = xyes @@ -24645,14 +25570,14 @@ then : printf "%s\n" "#define HAVE_SSL_CTX_SET_MIN_PROTO_VERSION 1" >>confdefs.h fi - # LibreSSL TLS 1.3 support may not be enabled, check for declaration too. - ac_fn_c_check_func "$LINENO" "SSL_CTX_set_ciphersuites" "ac_cv_func_SSL_CTX_set_ciphersuites" + # LibreSSL TLS 1.3 support may not be enabled, check for declaration too. + ac_fn_c_check_func "$LINENO" "SSL_CTX_set_ciphersuites" "ac_cv_func_SSL_CTX_set_ciphersuites" if test "x$ac_cv_func_SSL_CTX_set_ciphersuites" = xyes then : - ac_fn_check_decl "$LINENO" "SSL_CTX_set_ciphersuites" "ac_cv_have_decl_SSL_CTX_set_ciphersuites" " - $ac_includes_default - #include + ac_fn_check_decl "$LINENO" "SSL_CTX_set_ciphersuites" "ac_cv_have_decl_SSL_CTX_set_ciphersuites" " + $ac_includes_default + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_SSL_CTX_set_ciphersuites" = xyes @@ -24663,160 +25588,55 @@ fi fi - LIBS="$OLIBS" -elif test "${enable_gcrypt-no}" != no; then - # Use gcrypt's sha2 functions - printf "%s\n" "#define HAVE_GCRYPT 1" >>confdefs.h - - DIGEST=digest_gcrypt.lo - LIBMD="-lgcrypt" - if test "$enable_gcrypt" != "yes"; then - -if test ${CPPFLAGS+y} -then : - - case " $CPPFLAGS " in #( - *" -I${enable_gcrypt}/include "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS already contains -I\${enable_gcrypt}/include"; } >&5 - (: CPPFLAGS already contains -I${enable_gcrypt}/include) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } ;; #( - *) : - - as_fn_append CPPFLAGS " -I${enable_gcrypt}/include" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 - (: CPPFLAGS="$CPPFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - ;; -esac - -else $as_nop - - CPPFLAGS=-I${enable_gcrypt}/include - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 - (: CPPFLAGS="$CPPFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - -fi - - - -if test ${LDFLAGS+y} -then : - - case " $LDFLAGS " in #( - *" -L${enable_gcrypt}/lib "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS already contains -L\${enable_gcrypt}/lib"; } >&5 - (: LDFLAGS already contains -L${enable_gcrypt}/lib) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } ;; #( - *) : - - as_fn_append LDFLAGS " -L${enable_gcrypt}/lib" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - ;; -esac - -else $as_nop - - LDFLAGS=-L${enable_gcrypt}/lib - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - -fi - - if test X"$enable_rpath" = X"yes"; then - -if test ${LDFLAGS_R+y} -then : - - case " $LDFLAGS_R " in #( - *" -R${enable_gcrypt}/lib "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS_R already contains -R\${enable_gcrypt}/lib"; } >&5 - (: LDFLAGS_R already contains -R${enable_gcrypt}/lib) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } ;; #( - *) : - - as_fn_append LDFLAGS_R " -R${enable_gcrypt}/lib" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS_R=\"\$LDFLAGS_R\""; } >&5 - (: LDFLAGS_R="$LDFLAGS_R") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - ;; -esac - -else $as_nop - - LDFLAGS_R=-R${enable_gcrypt}/lib - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS_R=\"\$LDFLAGS_R\""; } >&5 - (: LDFLAGS_R="$LDFLAGS_R") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - -fi - - fi - - fi -fi -if test "${enable_wolfssl-no}" != no; then - # Use pkg-config to find the wolfssl cflags and libs if possible. - if test "$enable_wolfssl" != "yes"; then - PKG_CONFIG_LIBDIR="${enable_wolfssl}/lib/pkgconfig:${enable_wolfssl}/lib64/pkgconfig:${enable_wolfssl}/share/pkgconfig" - export PKG_CONFIG_LIBDIR - elif test "$cross_compiling" = "yes" -a -z "$PKG_CONFIG"; then - # Cannot use pkg-config when cross-compiling - PKG_CONFIG=false - fi - : ${PKG_CONFIG='pkg-config'} - if $PKG_CONFIG --exists wolfssl >/dev/null 2>&1; then - printf "%s\n" "#define HAVE_OPENSSL 1" >>confdefs.h + LIBS="$OLIBS" + elif test "${enable_wolfssl-no}" != no; then + # Check for OpenSSL compatibility functions in wolfSSL. + # Use pkg-config to find the wolfssl cflags and libs if possible. + if test "$enable_wolfssl" != "yes"; then + PKG_CONFIG_LIBDIR="${enable_wolfssl}/lib/pkgconfig:${enable_wolfssl}/lib64/pkgconfig:${enable_wolfssl}/share/pkgconfig" + export PKG_CONFIG_LIBDIR + elif test "$cross_compiling" = "yes" -a -z "$PKG_CONFIG"; then + # Cannot use pkg-config when cross-compiling + PKG_CONFIG=false + fi + : ${PKG_CONFIG='pkg-config'} + if $PKG_CONFIG --exists wolfssl >/dev/null 2>&1; then + printf "%s\n" "#define HAVE_OPENSSL 1" >>confdefs.h - printf "%s\n" "#define HAVE_WOLFSSL 1" >>confdefs.h + printf "%s\n" "#define HAVE_WOLFSSL 1" >>confdefs.h - O_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags-only-I wolfssl`" - O_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs-only-L wolfssl`" + O_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags-only-I wolfssl`" + O_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs-only-L wolfssl`" - # Check whether --static is needed - libssl="`$PKG_CONFIG --libs-only-l wolfssl | sed 's/^ *-l//'`" - libssl_extra=`echo $libssl | sed 's/^[^ ]* *//'` - libssl=`echo $libssl | sed 's/ .*//'` - as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libssl''_wolfSSL_new$libssl_extra" | $as_tr_sh` + # Check whether --static is needed + libssl="`$PKG_CONFIG --libs-only-l wolfssl | sed 's/^ *-l//'`" + libssl_extra=`echo $libssl | sed 's/^[^ ]* *//'` + libssl=`echo $libssl | sed 's/ .*//'` + as_ac_Lib=`printf "%s\n" "ac_cv_lib_$libssl""_wolfSSL_new$libssl_extra" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for wolfSSL_new in -l$libssl" >&5 printf %s "checking for wolfSSL_new in -l$libssl... " >&6; } if eval test \${$as_ac_Lib+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-l$libssl $libssl_extra $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char wolfSSL_new (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char wolfSSL_new (void); int main (void) { @@ -24828,12 +25648,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$as_ac_Lib=yes" -else $as_nop - eval "$as_ac_Lib=no" +else case e in #( + e) eval "$as_ac_Lib=no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi eval ac_res=\$$as_ac_Lib { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -24841,30 +25663,31 @@ printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes" then : STATIC="" -else $as_nop - STATIC="--static" +else case e in #( + e) STATIC="--static" ;; +esac fi - # Use wolfSSL's sha2 functions if possible - ac_fn_check_decl "$LINENO" "EVP_MD_CTX_new" "ac_cv_have_decl_EVP_MD_CTX_new" " - $ac_includes_default - #include - #include + # Use wolfSSL's sha2 functions if possible + ac_fn_check_decl "$LINENO" "EVP_MD_CTX_new" "ac_cv_have_decl_EVP_MD_CTX_new" " + $ac_includes_default + #include + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_EVP_MD_CTX_new" = xyes then : DIGEST=digest_openssl.lo fi - CPPFLAGS="$O_CPPFLAGS" - LDFLAGS="$O_LDFLAGS" + CPPFLAGS="$O_CPPFLAGS" + LDFLAGS="$O_LDFLAGS" - # Use pkg-config to determine wolfSSL libs and cflags - for f in `$PKG_CONFIG $STATIC --libs wolfssl`; do - case "$f" in - -L*) - f="${f#-L}" + # Use pkg-config to determine wolfSSL libs and cflags + for f in `$PKG_CONFIG $STATIC --libs wolfssl`; do + case "$f" in + -L*) + f="${f#-L}" if test ${LIBTLS+y} @@ -24888,15 +25711,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS=-L$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS=\"\$LIBTLS\""; } >&5 (: LIBTLS="$LIBTLS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -24922,21 +25746,22 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS_R=-R$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS_R=\"\$LIBTLS_R\""; } >&5 (: LIBTLS_R="$LIBTLS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - ;; - *) + ;; + *) if test ${LIBTLS+y} then : @@ -24959,24 +25784,25 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS=$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS=\"\$LIBTLS\""; } >&5 (: LIBTLS="$LIBTLS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - ;; - esac - done - # No separate pkg config for libcrypto - LIBCRYPTO="$LIBTLS" - LIBCRYPTO_R="$LIBTLS_R" - for f in `$PKG_CONFIG --cflags-only-I wolfssl`; do + ;; + esac + done + # No separate pkg config for libcrypto + LIBCRYPTO="$LIBTLS" + LIBCRYPTO_R="$LIBTLS_R" + for f in `$PKG_CONFIG --cflags-only-I wolfssl`; do if test ${CPPFLAGS+y} then : @@ -24999,18 +25825,19 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - # So we find the openssl compat headers under wolfssl + # So we find the openssl compat headers under wolfssl if test ${CPPFLAGS+y} then : @@ -25033,20 +25860,21 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=$f/wolfssl { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - done - if test "$CPPFLAGS" = "$O_CPPFLAGS"; then - # So we find the openssl compat headers under wolfssl (XXX) + done + if test "$CPPFLAGS" = "$O_CPPFLAGS"; then + # So we find the openssl compat headers under wolfssl (XXX) if test ${CPPFLAGS+y} then : @@ -25069,26 +25897,27 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I/usr/include/wolfssl { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - fi - else - printf "%s\n" "#define HAVE_OPENSSL 1" >>confdefs.h + fi + else + printf "%s\n" "#define HAVE_OPENSSL 1" >>confdefs.h - printf "%s\n" "#define HAVE_WOLFSSL 1" >>confdefs.h + printf "%s\n" "#define HAVE_WOLFSSL 1" >>confdefs.h - # No pkg-config file present, try to do it manually - if test "$enable_wolfssl" != "yes"; then + # No pkg-config file present, try to do it manually + if test "$enable_wolfssl" != "yes"; then if test ${LIBCRYPTO+y} @@ -25112,15 +25941,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBCRYPTO=-L${enable_wolfssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBCRYPTO=\"\$LIBCRYPTO\""; } >&5 (: LIBCRYPTO="$LIBCRYPTO") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -25146,15 +25976,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBCRYPTO_R=-R${enable_wolfssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBCRYPTO_R=\"\$LIBCRYPTO_R\""; } >&5 (: LIBCRYPTO_R="$LIBCRYPTO_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi @@ -25182,15 +26013,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS=-L${enable_wolfssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS=\"\$LIBTLS\""; } >&5 (: LIBTLS="$LIBTLS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -25216,15 +26048,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBTLS_R=-R${enable_wolfssl}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBTLS_R=\"\$LIBTLS_R\""; } >&5 (: LIBTLS_R="$LIBTLS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi @@ -25251,18 +26084,19 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${enable_wolfssl}/include { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - # So we find the openssl compat headers under wolfssl + # So we find the openssl compat headers under wolfssl if test ${CPPFLAGS+y} then : @@ -25285,19 +26119,20 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${enable_wolfssl}/include/wolfssl { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - else - # So we find the openssl compat headers under wolfssl (XXX) + else + # So we find the openssl compat headers under wolfssl (XXX) if test ${CPPFLAGS+y} then : @@ -25320,37 +26155,38 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I/usr/include/wolfssl { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - fi - LIBTLS="${LIBTLS} -lwolfssl" - LIBCRYPTO="${LIBCRYPTO} -lwolfssl" + fi + LIBTLS="${LIBTLS} -lwolfssl" + LIBCRYPTO="${LIBCRYPTO} -lwolfssl" - # Use wolfSSL's sha2 functions if possible - ac_fn_check_decl "$LINENO" "EVP_MD_CTX_new" "ac_cv_have_decl_EVP_MD_CTX_new" " - $ac_includes_default - #include - #include + # Use wolfSSL's sha2 functions if possible + ac_fn_check_decl "$LINENO" "EVP_MD_CTX_new" "ac_cv_have_decl_EVP_MD_CTX_new" " + $ac_includes_default + #include + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_EVP_MD_CTX_new" = xyes then : DIGEST=digest_openssl.lo fi - fi - ac_fn_check_decl "$LINENO" "X509_STORE_CTX_get0_cert" "ac_cv_have_decl_X509_STORE_CTX_get0_cert" " - $ac_includes_default - #include - #include + fi + ac_fn_check_decl "$LINENO" "X509_STORE_CTX_get0_cert" "ac_cv_have_decl_X509_STORE_CTX_get0_cert" " + $ac_includes_default + #include + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_X509_STORE_CTX_get0_cert" = xyes @@ -25358,10 +26194,10 @@ then : printf "%s\n" "#define HAVE_X509_STORE_CTX_GET0_CERT 1" >>confdefs.h fi - ac_fn_check_decl "$LINENO" "ASN1_STRING_get0_data" "ac_cv_have_decl_ASN1_STRING_get0_data" " - $ac_includes_default - #include - #include + ac_fn_check_decl "$LINENO" "ASN1_STRING_get0_data" "ac_cv_have_decl_ASN1_STRING_get0_data" " + $ac_includes_default + #include + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_ASN1_STRING_get0_data" = xyes @@ -25369,10 +26205,10 @@ then : printf "%s\n" "#define HAVE_ASN1_STRING_GET0_DATA 1" >>confdefs.h fi - ac_fn_check_decl "$LINENO" "SSL_CTX_get0_certificate" "ac_cv_have_decl_SSL_CTX_get0_certificate" " - $ac_includes_default - #include - #include + ac_fn_check_decl "$LINENO" "SSL_CTX_get0_certificate" "ac_cv_have_decl_SSL_CTX_get0_certificate" " + $ac_includes_default + #include + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_SSL_CTX_get0_certificate" = xyes @@ -25380,10 +26216,10 @@ then : printf "%s\n" "#define HAVE_SSL_CTX_GET0_CERTIFICATE 1" >>confdefs.h fi - ac_fn_check_decl "$LINENO" "SSL_CTX_set0_tmp_dh_pkey" "ac_cv_have_decl_SSL_CTX_set0_tmp_dh_pkey" " - $ac_includes_default - #include - #include + ac_fn_check_decl "$LINENO" "SSL_CTX_set0_tmp_dh_pkey" "ac_cv_have_decl_SSL_CTX_set0_tmp_dh_pkey" " + $ac_includes_default + #include + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_SSL_CTX_set0_tmp_dh_pkey" = xyes @@ -25391,10 +26227,10 @@ then : printf "%s\n" "#define HAVE_SSL_CTX_SET0_TMP_DH_PKEY 1" >>confdefs.h fi - ac_fn_check_decl "$LINENO" "TLS_method" "ac_cv_have_decl_TLS_method" " - $ac_includes_default - #include - #include + ac_fn_check_decl "$LINENO" "TLS_method" "ac_cv_have_decl_TLS_method" " + $ac_includes_default + #include + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_TLS_method" = xyes @@ -25402,10 +26238,10 @@ then : printf "%s\n" "#define HAVE_TLS_METHOD 1" >>confdefs.h fi - ac_fn_check_decl "$LINENO" "SSL_CTX_set_min_proto_version" "ac_cv_have_decl_SSL_CTX_set_min_proto_version" " - $ac_includes_default - #include - #include + ac_fn_check_decl "$LINENO" "SSL_CTX_set_min_proto_version" "ac_cv_have_decl_SSL_CTX_set_min_proto_version" " + $ac_includes_default + #include + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_SSL_CTX_set_min_proto_version" = xyes @@ -25413,10 +26249,10 @@ then : printf "%s\n" "#define HAVE_SSL_CTX_SET_MIN_PROTO_VERSION 1" >>confdefs.h fi - ac_fn_check_decl "$LINENO" "SSL_CTX_set_ciphersuites" "ac_cv_have_decl_SSL_CTX_set_ciphersuites" " - $ac_includes_default - #include - #include + ac_fn_check_decl "$LINENO" "SSL_CTX_set_ciphersuites" "ac_cv_have_decl_SSL_CTX_set_ciphersuites" " + $ac_includes_default + #include + #include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_SSL_CTX_set_ciphersuites" = xyes @@ -25424,14 +26260,141 @@ then : printf "%s\n" "#define HAVE_SSL_CTX_SET_CIPHERSUITES 1" >>confdefs.h fi + fi + + +if test "$DIGEST" = "digest.lo" +then : + + if test "${enable_gcrypt-no}" != no +then : + + # Use gcrypt's sha2 functions + printf "%s\n" "#define HAVE_GCRYPT 1" >>confdefs.h + + DIGEST=digest_gcrypt.lo + LIBMD="-lgcrypt" + if test "$enable_gcrypt" != "yes" +then : + + +if test ${CPPFLAGS+y} +then : + + case " $CPPFLAGS " in #( + *" -I${enable_gcrypt}/include "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS already contains -I\${enable_gcrypt}/include"; } >&5 + (: CPPFLAGS already contains -I${enable_gcrypt}/include) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append CPPFLAGS " -I${enable_gcrypt}/include" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 + (: CPPFLAGS="$CPPFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + CPPFLAGS=-I${enable_gcrypt}/include + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 + (: CPPFLAGS="$CPPFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + + +if test ${LDFLAGS+y} +then : + + case " $LDFLAGS " in #( + *" -L${enable_gcrypt}/lib "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS already contains -L\${enable_gcrypt}/lib"; } >&5 + (: LDFLAGS already contains -L${enable_gcrypt}/lib) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append LDFLAGS " -L${enable_gcrypt}/lib" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 + (: LDFLAGS="$LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + LDFLAGS=-L${enable_gcrypt}/lib + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 + (: LDFLAGS="$LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + if test X"$enable_rpath" = X"yes"; then + +if test ${LDFLAGS_R+y} +then : + + case " $LDFLAGS_R " in #( + *" -R${enable_gcrypt}/lib "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS_R already contains -R\${enable_gcrypt}/lib"; } >&5 + (: LDFLAGS_R already contains -R${enable_gcrypt}/lib) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append LDFLAGS_R " -R${enable_gcrypt}/lib" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS_R=\"\$LDFLAGS_R\""; } >&5 + (: LDFLAGS_R="$LDFLAGS_R") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + LDFLAGS_R=-R${enable_gcrypt}/lib + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS_R=\"\$LDFLAGS_R\""; } >&5 + (: LDFLAGS_R="$LDFLAGS_R") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + fi + + fi -if test "$DIGEST" = "digest.lo"; then - FOUND_SHA2=no - ac_fn_c_check_header_compile "$LINENO" "sha2.h" "ac_cv_header_sha2_h" "$ac_includes_default" + +else case e in #( + e) + # Use sudo's sha2 functions if not in libmd or libc. + FOUND_SHA2=no + ac_fn_c_check_header_compile "$LINENO" "sha2.h" "ac_cv_header_sha2_h" "$ac_includes_default" if test "x$ac_cv_header_sha2_h" = xyes then : - FOUND_SHA2=yes + FOUND_SHA2=yes for ac_func in SHA224Update do : @@ -25444,8 +26407,8 @@ printf %s "checking whether the data argument of SHA224Update() is void *... " > if test ${sudo_cv_func_sha2_void_ptr+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #include @@ -25461,11 +26424,13 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : sudo_cv_func_sha2_void_ptr=yes -else $as_nop - sudo_cv_func_sha2_void_ptr=no +else case e in #( + e) sudo_cv_func_sha2_void_ptr=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_sha2_void_ptr" >&5 printf "%s\n" "$sudo_cv_func_sha2_void_ptr" >&6; } @@ -25475,24 +26440,30 @@ printf "%s\n" "#define SHA2_VOID_PTR 1" >>confdefs.h fi -else $as_nop - - # On some systems, SHA224Update is in libmd - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHA224Update in -lmd" >&5 +else case e in #( + e) + # On some systems, SHA224Update is in libmd + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHA224Update in -lmd" >&5 printf %s "checking for SHA224Update in -lmd... " >&6; } if test ${ac_cv_lib_md_SHA224Update+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lmd $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char SHA224Update (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char SHA224Update (void); int main (void) { @@ -25504,27 +26475,29 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_md_SHA224Update=yes -else $as_nop - ac_cv_lib_md_SHA224Update=no +else case e in #( + e) ac_cv_lib_md_SHA224Update=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_md_SHA224Update" >&5 printf "%s\n" "$ac_cv_lib_md_SHA224Update" >&6; } if test "x$ac_cv_lib_md_SHA224Update" = xyes then : - printf "%s\n" "#define HAVE_SHA224UPDATE 1" >>confdefs.h + printf "%s\n" "#define HAVE_SHA224UPDATE 1" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the data argument of SHA224Update() is void *" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the data argument of SHA224Update() is void *" >&5 printf %s "checking whether the data argument of SHA224Update() is void *... " >&6; } if test ${sudo_cv_func_sha2_void_ptr+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #include @@ -25540,11 +26513,13 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : sudo_cv_func_sha2_void_ptr=yes -else $as_nop - sudo_cv_func_sha2_void_ptr=no +else case e in #( + e) sudo_cv_func_sha2_void_ptr=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_sha2_void_ptr" >&5 printf "%s\n" "$sudo_cv_func_sha2_void_ptr" >&6; } @@ -25554,24 +26529,28 @@ printf "%s\n" "#define SHA2_VOID_PTR 1" >>confdefs.h fi - LIBMD="-lmd" - -else $as_nop - - # Does not have SHA224Update - FOUND_SHA2=no + LIBMD="-lmd" +else case e in #( + e) + # Does not have SHA224Update + FOUND_SHA2=no + ;; +esac fi - + ;; +esac fi done fi - if test X"$FOUND_SHA2" = X"no"; then - case " $LIBOBJS " in + if test X"$FOUND_SHA2" = X"no" +then : + + case " $LIBOBJS " in *" sha2.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS sha2.$ac_objext" ;; @@ -25583,28 +26562,39 @@ esac " done - fi + fi -OLIBS="$LIBS" -LIBS="${LIBS} ${NET_LIBS}" -ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket" + ;; +esac +fi + +fi + + + _LIBS="$LIBS" + LIBS="${LIBS} ${NET_LIBS}" + found=true + ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket" if test "x$ac_cv_func_socket" = xyes then : -else $as_nop - - for libs in "-lsocket" "-linet" "-lsocket -lnsl"; do - _libs= - for lib in $libs; do - case "$NET_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" +else case e in #( + e) + # Look for socket in network libraries appending to NET_LIBS as needed. + # May need to link with -lnsl and -lsocket due to unresolved symbols + found=false + for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do + _libs= + for lib in $libs; do + case "$NET_LIBS" in + *"$lib"*) ;; + *) _libs="$_libs $lib";; + esac + done + libs="${_libs# }" + test -z "$libs" && continue + lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" + extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" _sudo_check_lib_extras=`echo "$extralibs"|sed -e 's/ *//g' -e 's/-l/_/g'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for socket in -l$lib${5+ }$extralibs" >&5 @@ -25612,8 +26602,8 @@ printf %s "checking for socket in -l$lib${5+ }$extralibs... " >&6; } if { as_var=sudo_cv_lib_$lib''_socket$_sudo_check_lib_extras; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) SUDO_CHECK_LIB_OLIBS="$LIBS" LIBS="$LIBS -l$lib${5+ }$extralibs" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -25621,8 +26611,14 @@ else $as_nop /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char socket (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char socket (void); int main (void) { @@ -25634,57 +26630,87 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval sudo_cv_lib_$lib''_socket$_sudo_check_lib_extras=yes -else $as_nop - eval sudo_cv_lib_$lib''_socket$_sudo_check_lib_extras=no - +else case e in #( + e) eval sudo_cv_lib_$lib''_socket$_sudo_check_lib_extras=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$SUDO_CHECK_LIB_OLIBS" - + ;; +esac fi if eval test \$sudo_cv_lib_$lib''_socket$_sudo_check_lib_extras = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - NET_LIBS="${NET_LIBS} $libs"; break + + found=true + NET_LIBS="${NET_LIBS}${NET_LIBS+ }$libs" + INET_PTON_LIBS="$libs" + case "$libs" in + *-lresolv*) + printf "%s\n" "#define NEED_RESOLV_H 1" >>confdefs.h + + ;; + esac + break + else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi - done + done + ;; +esac +fi + + LIBS="$_LIBS" + if test $found = true +then : fi -LIBS="$OLIBS" -OLIBS="$LIBS" -LIBS="${LIBS} ${NET_LIBS}" -found=false -INET_PTON_LIBS= -ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton" + +ONET_LIBS="$NET_LIBS" + + _LIBS="$LIBS" + LIBS="${LIBS} ${NET_LIBS}" + found=true + ac_fn_c_check_func "$LINENO" "inet_pton" "ac_cv_func_inet_pton" if test "x$ac_cv_func_inet_pton" = xyes then : - found=true printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h + INET_PTON_LIBS= + for lib in $NET_LIBS; do + case "$ONET_LIBS" in + *"$lib"*) ;; + *) INET_PTON_LIBS="${INET_PTON_LIBS}${INET_PTON_LIBS+ }$lib";; + esac + done -else $as_nop - - for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do - _libs= - for lib in $libs; do - case "$NET_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" +else case e in #( + e) + # Look for inet_pton in network libraries appending to NET_LIBS as needed. + # May need to link with -lnsl and -lsocket due to unresolved symbols + found=false + for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do + _libs= + for lib in $libs; do + case "$NET_LIBS" in + *"$lib"*) ;; + *) _libs="$_libs $lib";; + esac + done + libs="${_libs# }" + test -z "$libs" && continue + lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" + extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" _sudo_check_lib_extras=`echo "$extralibs"|sed -e 's/ *//g' -e 's/-l/_/g'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_pton in -l$lib${5+ }$extralibs" >&5 @@ -25692,8 +26718,8 @@ printf %s "checking for inet_pton in -l$lib${5+ }$extralibs... " >&6; } if { as_var=sudo_cv_lib_$lib''_inet_pton$_sudo_check_lib_extras; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) SUDO_CHECK_LIB_OLIBS="$LIBS" LIBS="$LIBS -l$lib${5+ }$extralibs" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -25701,8 +26727,14 @@ else $as_nop /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char inet_pton (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char inet_pton (void); int main (void) { @@ -25714,32 +26746,32 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval sudo_cv_lib_$lib''_inet_pton$_sudo_check_lib_extras=yes -else $as_nop - eval sudo_cv_lib_$lib''_inet_pton$_sudo_check_lib_extras=no - +else case e in #( + e) eval sudo_cv_lib_$lib''_inet_pton$_sudo_check_lib_extras=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$SUDO_CHECK_LIB_OLIBS" - + ;; +esac fi if eval test \$sudo_cv_lib_$lib''_inet_pton$_sudo_check_lib_extras = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - found=true - printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h + found=true + NET_LIBS="${NET_LIBS}${NET_LIBS+ }$libs" + INET_PTON_LIBS="$libs" + case "$libs" in + *-lresolv*) + printf "%s\n" "#define NEED_RESOLV_H 1" >>confdefs.h - NET_LIBS="${NET_LIBS} $libs" - INET_PTON_LIBS="$libs" - case "$libs" in - *-lresolv*) - printf "%s\n" "#define NEED_RESOLV_H 1" >>confdefs.h - - ;; - esac - break + ;; + esac + break else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -25747,12 +26779,27 @@ printf "%s\n" "no" >&6; } fi - done - + done + ;; +esac fi -LIBS="$OLIBS" -if test X"$found" != X"true"; then + LIBS="$_LIBS" + if test $found = true +then : + + printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h + + INET_PTON_LIBS= + for lib in $NET_LIBS; do + case "$ONET_LIBS" in + *"$lib"*) ;; + *) INET_PTON_LIBS="${INET_PTON_LIBS}${INET_PTON_LIBS+ }$lib";; + esac + done + +else case e in #( + e) case " $LIBOBJS " in *" inet_pton.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS inet_pton.$ac_objext" @@ -25765,32 +26812,39 @@ esac " done + ;; +esac fi -OLIBS="$LIBS" -LIBS="${LIBS} ${NET_LIBS}" -found=false -ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop" + + + + _LIBS="$LIBS" + LIBS="${LIBS} ${NET_LIBS}" + found=true + ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop" if test "x$ac_cv_func_inet_ntop" = xyes then : - found=true printf "%s\n" "#define HAVE_INET_NTOP 1" >>confdefs.h -else $as_nop - - for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do - _libs= - for lib in $libs; do - case "$NET_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" +else case e in #( + e) + # Look for inet_ntop in network libraries appending to NET_LIBS as needed. + # May need to link with -lnsl and -lsocket due to unresolved symbols + found=false + for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do + _libs= + for lib in $libs; do + case "$NET_LIBS" in + *"$lib"*) ;; + *) _libs="$_libs $lib";; + esac + done + libs="${_libs# }" + test -z "$libs" && continue + lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" + extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" _sudo_check_lib_extras=`echo "$extralibs"|sed -e 's/ *//g' -e 's/-l/_/g'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inet_ntop in -l$lib${5+ }$extralibs" >&5 @@ -25798,8 +26852,8 @@ printf %s "checking for inet_ntop in -l$lib${5+ }$extralibs... " >&6; } if { as_var=sudo_cv_lib_$lib''_inet_ntop$_sudo_check_lib_extras; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) SUDO_CHECK_LIB_OLIBS="$LIBS" LIBS="$LIBS -l$lib${5+ }$extralibs" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -25807,8 +26861,14 @@ else $as_nop /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char inet_ntop (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char inet_ntop (void); int main (void) { @@ -25820,25 +26880,32 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval sudo_cv_lib_$lib''_inet_ntop$_sudo_check_lib_extras=yes -else $as_nop - eval sudo_cv_lib_$lib''_inet_ntop$_sudo_check_lib_extras=no - +else case e in #( + e) eval sudo_cv_lib_$lib''_inet_ntop$_sudo_check_lib_extras=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$SUDO_CHECK_LIB_OLIBS" - + ;; +esac fi if eval test \$sudo_cv_lib_$lib''_inet_ntop$_sudo_check_lib_extras = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - found=true - printf "%s\n" "#define HAVE_INET_NTOP 1" >>confdefs.h + found=true + NET_LIBS="${NET_LIBS}${NET_LIBS+ }$libs" + INET_PTON_LIBS="$libs" + case "$libs" in + *-lresolv*) + printf "%s\n" "#define NEED_RESOLV_H 1" >>confdefs.h - NET_LIBS="${NET_LIBS} $libs" - break + ;; + esac + break else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 @@ -25846,12 +26913,20 @@ printf "%s\n" "no" >&6; } fi - done - + done + ;; +esac fi -LIBS="$OLIBS" -if test X"$found" != X"true"; then + LIBS="$_LIBS" + if test $found = true +then : + + printf "%s\n" "#define HAVE_INET_NTOP 1" >>confdefs.h + + +else case e in #( + e) case " $LIBOBJS " in *" inet_ntop.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS inet_ntop.$ac_objext" @@ -25864,27 +26939,36 @@ esac " done + ;; +esac fi -OLIBS="$LIBS" -LIBS="${LIBS} ${NET_LIBS}" -ac_fn_c_check_func "$LINENO" "syslog" "ac_cv_func_syslog" + + + + _LIBS="$LIBS" + LIBS="${LIBS} ${NET_LIBS}" + found=true + ac_fn_c_check_func "$LINENO" "syslog" "ac_cv_func_syslog" if test "x$ac_cv_func_syslog" = xyes then : -else $as_nop - - for libs in "-lsocket" "-linet" "-lsocket -lnsl"; do - _libs= - for lib in $libs; do - case "$NET_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" +else case e in #( + e) + # Look for syslog in network libraries appending to NET_LIBS as needed. + # May need to link with -lnsl and -lsocket due to unresolved symbols + found=false + for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do + _libs= + for lib in $libs; do + case "$NET_LIBS" in + *"$lib"*) ;; + *) _libs="$_libs $lib";; + esac + done + libs="${_libs# }" + test -z "$libs" && continue + lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" + extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" _sudo_check_lib_extras=`echo "$extralibs"|sed -e 's/ *//g' -e 's/-l/_/g'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for syslog in -l$lib${5+ }$extralibs" >&5 @@ -25892,8 +26976,8 @@ printf %s "checking for syslog in -l$lib${5+ }$extralibs... " >&6; } if { as_var=sudo_cv_lib_$lib''_syslog$_sudo_check_lib_extras; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) SUDO_CHECK_LIB_OLIBS="$LIBS" LIBS="$LIBS -l$lib${5+ }$extralibs" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -25901,8 +26985,14 @@ else $as_nop /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char syslog (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char syslog (void); int main (void) { @@ -25914,35 +27004,51 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval sudo_cv_lib_$lib''_syslog$_sudo_check_lib_extras=yes -else $as_nop - eval sudo_cv_lib_$lib''_syslog$_sudo_check_lib_extras=no - +else case e in #( + e) eval sudo_cv_lib_$lib''_syslog$_sudo_check_lib_extras=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$SUDO_CHECK_LIB_OLIBS" - + ;; +esac fi if eval test \$sudo_cv_lib_$lib''_syslog$_sudo_check_lib_extras = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - NET_LIBS="${NET_LIBS} $libs"; break + + found=true + NET_LIBS="${NET_LIBS}${NET_LIBS+ }$libs" + INET_PTON_LIBS="$libs" + case "$libs" in + *-lresolv*) + printf "%s\n" "#define NEED_RESOLV_H 1" >>confdefs.h + + ;; + esac + break + else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi - done + done + ;; +esac +fi + + LIBS="$_LIBS" + if test $found = true +then : fi -LIBS="$OLIBS" -# -# Check for getaddrinfo and add any required libs to NET_LIBS. -# If it was added to LIBOBJS we need to export the symbols. -# + OLIBS="$LIBS" GETADDRINFO_LIBS= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5 @@ -25950,8 +27056,8 @@ printf %s "checking for getaddrinfo... " >&6; } if test ${ax_cv_func_getaddrinfo+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include @@ -25961,11 +27067,13 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ax_cv_func_getaddrinfo=yes -else $as_nop - ax_cv_func_getaddrinfo=no +else case e in #( + e) ax_cv_func_getaddrinfo=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_func_getaddrinfo" >&5 @@ -25984,8 +27092,8 @@ printf %s "checking for getaddrinfo in $_libs... " >&6; } if eval test \${$_cv+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) _nlibs= for _l in $_libs; do case "$LIBS" in @@ -26010,14 +27118,16 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval $_cv=yes -else $as_nop - eval $_cv=no +else case e in #( + e) eval $_cv=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$AX_FUNC_GETADDRINFO_OLIBS" fi - + ;; +esac fi if eval test \$$_cv = "yes"; then @@ -26051,28 +27161,38 @@ case " $LIBOBJS " in # We need libsudo_util to pull in dependent libraries for # inet_pton(), gethostbyname(), and getservbyname() - if test -n "${INET_PTON_LIBS}"; then + if test -n "${INET_PTON_LIBS}" +then : + LT_DEP_LIBS="${LT_DEP_LIBS}${LT_DEP_LIBS+ }${INET_PTON_LIBS}" LIBS="${LIBS}${LIBS+ }${INET_PTON_LIBS}" - fi - ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" + +fi + + _LIBS="$LIBS" + LIBS="${LIBS} ${NET_LIBS}" + found=true + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" if test "x$ac_cv_func_gethostbyname" = xyes then : -else $as_nop - - for libs in "-lsocket" "-linet" "-lsocket -lnsl"; do - _libs= - for lib in $libs; do - case "$LT_DEP_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" +else case e in #( + e) + # Look for gethostbyname in network libraries appending to NET_LIBS as needed. + # May need to link with -lnsl and -lsocket due to unresolved symbols + found=false + for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do + _libs= + for lib in $libs; do + case "$NET_LIBS" in + *"$lib"*) ;; + *) _libs="$_libs $lib";; + esac + done + libs="${_libs# }" + test -z "$libs" && continue + lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" + extralibs="`echo \"$libs\"|sed 's/^-l[^ ]*//'`" _sudo_check_lib_extras=`echo "$extralibs"|sed -e 's/ *//g' -e 's/-l/_/g'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -l$lib${5+ }$extralibs" >&5 @@ -26080,8 +27200,8 @@ printf %s "checking for gethostbyname in -l$lib${5+ }$extralibs... " >&6; } if { as_var=sudo_cv_lib_$lib''_gethostbyname$_sudo_check_lib_extras; eval test \${$as_var+y}; } then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) SUDO_CHECK_LIB_OLIBS="$LIBS" LIBS="$LIBS -l$lib${5+ }$extralibs" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -26089,8 +27209,14 @@ else $as_nop /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gethostbyname (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (void); int main (void) { @@ -26102,27 +27228,47 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval sudo_cv_lib_$lib''_gethostbyname$_sudo_check_lib_extras=yes -else $as_nop - eval sudo_cv_lib_$lib''_gethostbyname$_sudo_check_lib_extras=no - +else case e in #( + e) eval sudo_cv_lib_$lib''_gethostbyname$_sudo_check_lib_extras=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$SUDO_CHECK_LIB_OLIBS" - + ;; +esac fi if eval test \$sudo_cv_lib_$lib''_gethostbyname$_sudo_check_lib_extras = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - LT_DEP_LIBS="${LT_DEP_LIBS} $libs"; break + + found=true + NET_LIBS="${NET_LIBS}${NET_LIBS+ }$libs" + INET_PTON_LIBS="$libs" + case "$libs" in + *-lresolv*) + printf "%s\n" "#define NEED_RESOLV_H 1" >>confdefs.h + + ;; + esac + break + else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi - done + done + ;; +esac +fi + + LIBS="$_LIBS" + if test $found = true +then : fi @@ -26134,7 +27280,9 @@ fi *) GETADDRINFO_LIBS="${GETADDRINFO_LIBS}${GETADDRINFO_LIBS+ }$lib";; esac done - if test -n "${GETADDRINFO_LIBS}"; then + if test -n "${GETADDRINFO_LIBS}" +then : + # We need libsudo_util to pull in dependent libraries for # gai_strerror() LT_DEP_LIBS="${LT_DEP_LIBS}${LT_DEP_LIBS+ }${GETADDRINFO_LIBS}" @@ -26147,7 +27295,8 @@ fi *) NET_LIBS="${NET_LIBS}${NET_LIBS+ }$lib";; esac done - fi + +fi ;; esac LIBS="$OLIBS" @@ -26157,8 +27306,8 @@ printf %s "checking for va_copy... " >&6; } if test ${sudo_cv_func_va_copy+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -26174,26 +27323,32 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : sudo_cv_func_va_copy=yes -else $as_nop - sudo_cv_func_va_copy=no +else case e in #( + e) sudo_cv_func_va_copy=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_va_copy" >&5 printf "%s\n" "$sudo_cv_func_va_copy" >&6; } -if test "$sudo_cv_func_va_copy" = "yes"; then +if test "$sudo_cv_func_va_copy" = "yes" +then : + printf "%s\n" "#define HAVE_VA_COPY 1" >>confdefs.h -else + +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __va_copy" >&5 printf %s "checking for __va_copy... " >&6; } if test ${sudo_cv_func___va_copy+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -26209,19 +27364,26 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : sudo_cv_func___va_copy=yes -else $as_nop - sudo_cv_func___va_copy=no +else case e in #( + e) sudo_cv_func___va_copy=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func___va_copy" >&5 printf "%s\n" "$sudo_cv_func___va_copy" >&6; } - if test "$sudo_cv_func___va_copy" = "yes"; then + if test "$sudo_cv_func___va_copy" = "yes" +then : + printf "%s\n" "#define HAVE___VA_COPY 1" >>confdefs.h - fi + +fi + ;; +esac fi @@ -26240,26 +27402,27 @@ if test "x$ac_cv_func_setprogname" = xyes then : printf "%s\n" "#define HAVE_SETPROGNAME 1" >>confdefs.h -else $as_nop - +else case e in #( + e) for _sym in sudo_setprogname; do COMPAT_EXP="${COMPAT_EXP}${_sym} " done - + ;; +esac fi done -else $as_nop - +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __progname" >&5 printf %s "checking for __progname... " >&6; } if test ${sudo_cv___progname+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -26274,18 +27437,23 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : sudo_cv___progname=yes -else $as_nop - sudo_cv___progname=no +else case e in #( + e) sudo_cv___progname=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv___progname" >&5 printf "%s\n" "$sudo_cv___progname" >&6; } - if test "$sudo_cv___progname" = "yes"; then + if test "$sudo_cv___progname" = "yes" +then : + printf "%s\n" "#define HAVE___PROGNAME 1" >>confdefs.h - fi + +fi for _sym in sudo_getprogname; do COMPAT_EXP="${COMPAT_EXP}${_sym} @@ -26298,18 +27466,23 @@ printf "%s\n" "$sudo_cv___progname" >&6; } " done - + ;; +esac fi done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __func__" >&5 printf %s "checking for __func__... " >&6; } if test ${sudo_cv___func__+y} then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) + if test X"$ac_cv_build_prog_cc_c99" = X"no" +then : -cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -26323,25 +27496,41 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : sudo_cv___func__=yes -else $as_nop - sudo_cv___func__=no +else case e in #( + e) sudo_cv___func__=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext + +else case e in #( + e) + # C99 and higher support __func__ + sudo_cv___func__=yes + ;; +esac +fi + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv___func__" >&5 printf "%s\n" "$sudo_cv___func__" >&6; } -if test "$sudo_cv___func__" = "yes"; then +if test "$sudo_cv___func__" = "yes" +then : + printf "%s\n" "#define HAVE___FUNC__ 1" >>confdefs.h -elif test -n "$GCC"; then + +elif test -n "$GCC" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __FUNCTION__" >&5 printf %s "checking for __FUNCTION__... " >&6; } if test ${sudo_cv___FUNCTION__+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -26356,31 +27545,38 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : sudo_cv___FUNCTION__=yes -else $as_nop - sudo_cv___FUNCTION__=no +else case e in #( + e) sudo_cv___FUNCTION__=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + conftest$ac_exeext conftest.$ac_ext ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv___FUNCTION__" >&5 printf "%s\n" "$sudo_cv___FUNCTION__" >&6; } - if test "$sudo_cv___FUNCTION__" = "yes"; then + if test "$sudo_cv___FUNCTION__" = "yes" +then : + printf "%s\n" "#define HAVE___FUNC__ 1" >>confdefs.h printf "%s\n" "#define __func__ __FUNCTION__" >>confdefs.h - fi + +fi + fi -# gettext() and friends may be located in libc (Linux and Solaris) -# or in libintl. However, it is possible to have libintl installed -# even when gettext() is present in libc. In the case of GNU libintl, -# gettext() will be defined to gettext_libintl in libintl.h. -# Since gcc prefers /usr/local/include to /usr/include, we need to -# make sure we use the gettext() that matches the include file. -if test "$enable_nls" != "no"; then - if test "$enable_nls" != "yes"; then + + # gettext() and friends may be located in libc (Linux and Solaris) + # or in libintl. However, it is possible to have libintl installed + # even when gettext() is present in libc. In the case of GNU libintl, + # gettext() will be defined to gettext_libintl in libintl.h. + # Since gcc prefers /usr/local/include to /usr/include, we need to + # make sure we use the gettext() that matches the include file. + if test "$enable_nls" != "no"; then + if test "$enable_nls" != "yes"; then if test ${CPPFLAGS+y} then : @@ -26403,15 +27599,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${enable_nls}/include { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi @@ -26437,15 +27634,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LDFLAGS=-L$enable_nls/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 (: LDFLAGS="$LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -26471,45 +27669,46 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LDFLAGS_R=-R$enable_nls/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS_R=\"\$LDFLAGS_R\""; } >&5 (: LDFLAGS_R="$LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - fi - OLIBS="$LIBS" - for l in "libc" "-lintl" "-lintl -liconv"; do - if test "$l" = "libc"; then - # If user specified a dir for libintl ignore libc - if test "$enable_nls" != "yes"; then - continue - fi - gettext_name=sudo_cv_gettext - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gettext" >&5 + fi + OLIBS="$LIBS" + for l in "libc" "-lintl" "-lintl -liconv"; do + if test "$l" = "libc"; then + # If user specified a dir for libintl ignore libc + if test "$enable_nls" != "yes"; then + continue + fi + gettext_name=sudo_cv_gettext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gettext" >&5 printf %s "checking for gettext... " >&6; } - else - LIBS="$OLIBS $l" - gettext_name=sudo_cv_gettext"`echo $l|sed -e 's/ //g' -e 's/-/_/g'`" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gettext in $l" >&5 + else + LIBS="$OLIBS $l" + gettext_name=sudo_cv_gettext"`echo $l|sed -e 's/ //g' -e 's/-/_/g'`" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gettext in $l" >&5 printf %s "checking for gettext in $l... " >&6; } - fi - if eval test \${$gettext_name+y} + fi + if eval test \${$gettext_name+y} then : printf %s "(cached) " >&6 -else $as_nop - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include + #include int main (void) { @@ -26522,46 +27721,48 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval $gettext_name=yes -else $as_nop - eval $gettext_name=no - +else case e in #( + e) eval $gettext_name=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - + ;; +esac fi - eval gettext_result="\$$gettext_name" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gettext_result" >&5 + eval gettext_result="\$$gettext_name" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gettext_result" >&5 printf "%s\n" "$gettext_result" >&6; } - if test "$gettext_result" = "yes"; then - ac_fn_c_check_func "$LINENO" "ngettext" "ac_cv_func_ngettext" + if test "$gettext_result" = "yes"; then + ac_fn_c_check_func "$LINENO" "ngettext" "ac_cv_func_ngettext" if test "x$ac_cv_func_ngettext" = xyes then : printf "%s\n" "#define HAVE_NGETTEXT 1" >>confdefs.h fi - break - fi - done - LIBS="$OLIBS" + break + fi + done + LIBS="$OLIBS" - if test "$sudo_cv_gettext" = "yes"; then - SUDO_NLS=enabled - # For Solaris we need links from lang to lang.UTF-8 in localedir - case "$host_os" in - solaris2*) LOCALEDIR_SUFFIX=".UTF-8";; - esac - elif test "$sudo_cv_gettext_lintl" = "yes"; then - SUDO_NLS=enabled - LIBINTL="-lintl" - elif test "$sudo_cv_gettext_lintl_liconv" = "yes"; then - SUDO_NLS=enabled - LIBINTL="-lintl -liconv" - fi - if test X"$SUDO_NLS" = X"enabled"; then - printf "%s\n" "#define HAVE_LIBINTL_H 1" >>confdefs.h + if test "$sudo_cv_gettext" = "yes"; then + SUDO_NLS=enabled + # For Solaris we need links from lang to lang.UTF-8 in localedir + case "$host_os" in + solaris2*) LOCALEDIR_SUFFIX=".UTF-8";; + esac + elif test "$sudo_cv_gettext_lintl" = "yes"; then + SUDO_NLS=enabled + LIBINTL="-lintl" + elif test "$sudo_cv_gettext_lintl_liconv" = "yes"; then + SUDO_NLS=enabled + LIBINTL="-lintl -liconv" + fi + if test X"$SUDO_NLS" = X"enabled"; then + printf "%s\n" "#define HAVE_LIBINTL_H 1" >>confdefs.h for _sym in sudo_warn_gettext_v1; do @@ -26569,8 +27770,9 @@ fi " done + fi fi -fi + case "$enable_zlib" in yes) @@ -26579,16 +27781,22 @@ printf %s "checking for gzclearerr in -lz... " >&6; } if test ${ac_cv_lib_z_gzclearerr+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gzclearerr (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gzclearerr (void); int main (void) { @@ -26600,12 +27808,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_z_gzclearerr=yes -else $as_nop - ac_cv_lib_z_gzclearerr=no +else case e in #( + e) ac_cv_lib_z_gzclearerr=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_gzclearerr" >&5 printf "%s\n" "$ac_cv_lib_z_gzclearerr" >&6; } @@ -26619,8 +27829,9 @@ if test "x$ac_cv_header_zlib_h" = xyes then : printf "%s\n" "#define HAVE_ZLIB_H 1" >>confdefs.h ZLIB="-lz" -else $as_nop - enable_zlib=builtin +else case e in #( + e) enable_zlib=builtin ;; +esac fi done @@ -26663,15 +27874,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${enable_zlib}/include { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi @@ -26697,15 +27909,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) ZLIB=-L$enable_zlib/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ZLIB=\"\$ZLIB\""; } >&5 (: ZLIB="$ZLIB") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -26731,15 +27944,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) ZLIB_R=-R$enable_zlib/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ZLIB_R=\"\$ZLIB_R\""; } >&5 (: ZLIB_R="$ZLIB_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi @@ -26759,16 +27973,81 @@ case "$enable_zlib" in ac_config_files="$ac_config_files lib/zlib/Makefile" - if test X"$enable_shared" = X"no" -o "$enable_zlib" = "static"; then - if test "$enable_zlib" = "shared"; then + if test X"$enable_shared" = X"no" -o "$enable_zlib" = "static" +then : + + if test "$enable_zlib" = "shared" +then : + as_fn_error $? "unable to build shared libraries on this system" "$LINENO" 5 - fi + +fi # Build as convenience library ZLIB_LDFLAGS=-no-install - fi + +fi ;; esac +ac_fn_check_decl "$LINENO" "NSIG" "ac_cv_have_decl_NSIG" " +$ac_includes_default +#include + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_NSIG" = xyes +then : + ac_have_decl=1 +else case e in #( + e) ac_have_decl=0 ;; +esac +fi +printf "%s\n" "#define HAVE_DECL_NSIG $ac_have_decl" >>confdefs.h +if test $ac_have_decl = 1 +then : + +else case e in #( + e) + ac_fn_check_decl "$LINENO" "_NSIG" "ac_cv_have_decl__NSIG" " +$ac_includes_default +#include + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl__NSIG" = xyes +then : + ac_have_decl=1 +else case e in #( + e) ac_have_decl=0 ;; +esac +fi +printf "%s\n" "#define HAVE_DECL__NSIG $ac_have_decl" >>confdefs.h +if test $ac_have_decl = 1 +then : + +else case e in #( + e) + ac_fn_check_decl "$LINENO" "__NSIG" "ac_cv_have_decl___NSIG" " +$ac_includes_default +#include + +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl___NSIG" = xyes +then : + ac_have_decl=1 +else case e in #( + e) ac_have_decl=0 ;; +esac +fi +printf "%s\n" "#define HAVE_DECL___NSIG $ac_have_decl" >>confdefs.h + + ;; +esac +fi + + ;; +esac +fi + + ac_fn_check_decl "$LINENO" "errno" "ac_cv_have_decl_errno" " $ac_includes_default #include @@ -26777,8 +28056,9 @@ $ac_includes_default if test "x$ac_cv_have_decl_errno" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_ERRNO $ac_have_decl" >>confdefs.h @@ -26791,8 +28071,9 @@ $ac_includes_default if test "x$ac_cv_have_decl_h_errno" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_H_ERRNO $ac_have_decl" >>confdefs.h @@ -26805,8 +28086,9 @@ ac_fn_check_decl "$LINENO" "LLONG_MAX" "ac_cv_have_decl_LLONG_MAX" " if test "x$ac_cv_have_decl_LLONG_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_LLONG_MAX $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "LLONG_MIN" "ac_cv_have_decl_LLONG_MIN" " @@ -26817,8 +28099,9 @@ ac_fn_check_decl "$LINENO" "LLONG_MIN" "ac_cv_have_decl_LLONG_MIN" " if test "x$ac_cv_have_decl_LLONG_MIN" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_LLONG_MIN $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "ULLONG_MAX" "ac_cv_have_decl_ULLONG_MAX" " @@ -26829,8 +28112,9 @@ ac_fn_check_decl "$LINENO" "ULLONG_MAX" "ac_cv_have_decl_ULLONG_MAX" " if test "x$ac_cv_have_decl_ULLONG_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_ULLONG_MAX $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "PATH_MAX" "ac_cv_have_decl_PATH_MAX" " @@ -26841,8 +28125,9 @@ ac_fn_check_decl "$LINENO" "PATH_MAX" "ac_cv_have_decl_PATH_MAX" " if test "x$ac_cv_have_decl_PATH_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_PATH_MAX $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "SSIZE_MAX" "ac_cv_have_decl_SSIZE_MAX" " @@ -26853,8 +28138,9 @@ ac_fn_check_decl "$LINENO" "SSIZE_MAX" "ac_cv_have_decl_SSIZE_MAX" " if test "x$ac_cv_have_decl_SSIZE_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SSIZE_MAX $ac_have_decl" >>confdefs.h @@ -26871,12 +28157,15 @@ ac_fn_check_decl "$LINENO" "SIZE_MAX" "ac_cv_have_decl_SIZE_MAX" " if test "x$ac_cv_have_decl_SIZE_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SIZE_MAX $ac_have_decl" >>confdefs.h -if test "$ac_cv_have_decl_LLONG_MAX" != "yes"; then +if test "$ac_cv_have_decl_LLONG_MAX" != "yes" +then : + ac_fn_check_decl "$LINENO" "QUAD_MAX" "ac_cv_have_decl_QUAD_MAX" " #include #include @@ -26885,13 +28174,17 @@ if test "$ac_cv_have_decl_LLONG_MAX" != "yes"; then if test "x$ac_cv_have_decl_QUAD_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_QUAD_MAX $ac_have_decl" >>confdefs.h + fi -if test "$ac_cv_have_decl_LLONG_MIN" != "yes"; then +if test "$ac_cv_have_decl_LLONG_MIN" != "yes" +then : + ac_fn_check_decl "$LINENO" "QUAD_MIN" "ac_cv_have_decl_QUAD_MIN" " #include #include @@ -26900,13 +28193,17 @@ if test "$ac_cv_have_decl_LLONG_MIN" != "yes"; then if test "x$ac_cv_have_decl_QUAD_MIN" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_QUAD_MIN $ac_have_decl" >>confdefs.h + fi -if test "$ac_cv_have_decl_ULLONG_MAX" != "yes"; then +if test "$ac_cv_have_decl_ULLONG_MAX" != "yes" +then : + ac_fn_check_decl "$LINENO" "UQUAD_MAX" "ac_cv_have_decl_UQUAD_MAX" " #include #include @@ -26915,13 +28212,17 @@ if test "$ac_cv_have_decl_ULLONG_MAX" != "yes"; then if test "x$ac_cv_have_decl_UQUAD_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_UQUAD_MAX $ac_have_decl" >>confdefs.h + fi -if test "$ac_cv_have_decl_SIZE_MAX" != "yes"; then +if test "$ac_cv_have_decl_SIZE_MAX" != "yes" +then : + ac_fn_check_decl "$LINENO" "SIZE_T_MAX" "ac_cv_have_decl_SIZE_T_MAX" " #include #include @@ -26930,13 +28231,17 @@ if test "$ac_cv_have_decl_SIZE_MAX" != "yes"; then if test "x$ac_cv_have_decl_SIZE_T_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SIZE_T_MAX $ac_have_decl" >>confdefs.h + fi -if test "$ac_cv_have_decl_PATH_MAX" != "yes"; then +if test "$ac_cv_have_decl_PATH_MAX" != "yes" +then : + ac_fn_check_decl "$LINENO" "_POSIX_PATH_MAX" "ac_cv_have_decl__POSIX_PATH_MAX" " #include #include @@ -26945,11 +28250,13 @@ if test "$ac_cv_have_decl_PATH_MAX" != "yes"; then if test "x$ac_cv_have_decl__POSIX_PATH_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL__POSIX_PATH_MAX $ac_have_decl" >>confdefs.h + fi @@ -26960,8 +28267,8 @@ if test "x$ac_cv_func_strsignal" = xyes then : printf "%s\n" "#define HAVE_STRSIGNAL 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" strsignal.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strsignal.$ac_objext" @@ -26983,17 +28290,17 @@ $ac_includes_default if test "x$ac_cv_have_decl_sys_siglist" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SYS_SIGLIST $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : - - HAVE_SIGLIST="true" - -fi -ac_fn_check_decl "$LINENO" "_sys_siglist" "ac_cv_have_decl__sys_siglist" " + HAVE_SIGLIST="true" +else case e in #( + e) + ac_fn_check_decl "$LINENO" "_sys_siglist" "ac_cv_have_decl__sys_siglist" " $ac_includes_default #include @@ -27001,26 +28308,33 @@ $ac_includes_default if test "x$ac_cv_have_decl__sys_siglist" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL__SYS_SIGLIST $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : + HAVE_SIGLIST="true" +fi - HAVE_SIGLIST="true" - + ;; +esac fi - if test "$HAVE_SIGLIST" != "true"; then + if test "$HAVE_SIGLIST" != "true" +then : + case " $LIBOBJS " in *" siglist.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS siglist.$ac_objext" ;; esac - fi +fi + ;; +esac fi done @@ -27040,13 +28354,14 @@ then : if test "x$ac_cv_have_decl_SIG2STR_MAX" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SIG2STR_MAX $ac_have_decl" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" sig2str.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS sig2str.$ac_objext" @@ -27059,7 +28374,8 @@ esac " done - + ;; +esac fi done @@ -27071,8 +28387,8 @@ if test "x$ac_cv_func_str2sig" = xyes then : printf "%s\n" "#define HAVE_STR2SIG 1" >>confdefs.h -else $as_nop - +else case e in #( + e) case " $LIBOBJS " in *" str2sig.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS str2sig.$ac_objext" @@ -27085,12 +28401,15 @@ esac " done - + ;; +esac fi done -if test x"${ac_cv_func_sig2str}${ac_cv_func_str2sig}" != x"yesyes"; then +if test x"${ac_cv_func_sig2str}${ac_cv_func_str2sig}" != x"yesyes" +then : + ac_fn_c_check_func "$LINENO" "sigabbrev_np" "ac_cv_func_sigabbrev_np" if test "x$ac_cv_func_sigabbrev_np" = xyes then : @@ -27098,7 +28417,9 @@ then : fi - if test x"${ac_cv_func_sigabbrev_np}" != x"yes"; then + if test x"${ac_cv_func_sigabbrev_np}" != x"yes" +then : + COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }strsig_test" HAVE_SIGNAME="false" ac_fn_check_decl "$LINENO" "sys_signame" "ac_cv_have_decl_sys_signame" " @@ -27109,17 +28430,17 @@ $ac_includes_default if test "x$ac_cv_have_decl_sys_signame" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SYS_SIGNAME $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : - - HAVE_SIGNAME="true" - -fi -ac_fn_check_decl "$LINENO" "_sys_signame" "ac_cv_have_decl__sys_signame" " + HAVE_SIGNAME="true" +else case e in #( + e) + ac_fn_check_decl "$LINENO" "_sys_signame" "ac_cv_have_decl__sys_signame" " $ac_includes_default #include @@ -27127,17 +28448,17 @@ $ac_includes_default if test "x$ac_cv_have_decl__sys_signame" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL__SYS_SIGNAME $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : - - HAVE_SIGNAME="true" - -fi -ac_fn_check_decl "$LINENO" "sys_sigabbrev" "ac_cv_have_decl_sys_sigabbrev" " + HAVE_SIGNAME="true" +else case e in #( + e) + ac_fn_check_decl "$LINENO" "sys_sigabbrev" "ac_cv_have_decl_sys_sigabbrev" " $ac_includes_default #include @@ -27145,25 +28466,34 @@ $ac_includes_default if test "x$ac_cv_have_decl_sys_sigabbrev" = xyes then : ac_have_decl=1 -else $as_nop - ac_have_decl=0 +else case e in #( + e) ac_have_decl=0 ;; +esac fi printf "%s\n" "#define HAVE_DECL_SYS_SIGABBREV $ac_have_decl" >>confdefs.h if test $ac_have_decl = 1 then : + HAVE_SIGNAME="true" +fi - HAVE_SIGNAME="true" + ;; +esac +fi + ;; +esac fi - if test "$HAVE_SIGNAME" != "true"; then + if test "$HAVE_SIGNAME" != "true" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for undeclared sys_sigabbrev" >&5 printf %s "checking for undeclared sys_sigabbrev... " >&6; } if test ${sudo_cv_var_sys_sigabbrev+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern char **sys_sigabbrev; int @@ -27177,21 +28507,27 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : sudo_cv_var_sys_sigabbrev=yes -else $as_nop - sudo_cv_var_sys_sigabbrev=no - +else case e in #( + e) sudo_cv_var_sys_sigabbrev=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_sys_sigabbrev" >&5 printf "%s\n" "$sudo_cv_var_sys_sigabbrev" >&6; } - if test "$sudo_cv_var_sys_sigabbrev" = yes; then + if test "$sudo_cv_var_sys_sigabbrev" = yes +then : + printf "%s\n" "#define HAVE_SYS_SIGABBREV 1" >>confdefs.h - else + +else case e in #( + e) case " $LIBOBJS " in *" signame.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS signame.$ac_objext" @@ -27199,9 +28535,14 @@ printf "%s\n" "$sudo_cv_var_sys_sigabbrev" >&6; } esac SIGNAME=signame.lo - fi - fi - fi + ;; +esac +fi + +fi + +fi + fi OLIBS="$LIBS" @@ -27215,22 +28556,30 @@ fi LIBS="$OLIBS" -if test ${with_netsvc-"no"} != "no"; then +if test ${with_netsvc-"no"} != "no" +then : + cat >>confdefs.h <>confdefs.h <&5 printf %s "checking for pam_start in -lpam... " >&6; } if eval test \${$as_ac_Lib+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lpam $lt_cv_dlopen_libs $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char pam_start (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char pam_start (void); int main (void) { @@ -27273,12 +28631,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$as_ac_Lib=yes" -else $as_nop - eval "$as_ac_Lib=no" +else case e in #( + e) eval "$as_ac_Lib=no" ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi eval ac_res=\$$as_ac_Lib { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 @@ -27295,37 +28655,60 @@ fi found_pam_hdrs=no for ac_header in security/pam_appl.h pam/pam_appl.h do : - as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 _ACEOF found_pam_hdrs=yes; break fi done - if test "$found_pam_lib" = "yes" -a "$found_pam_hdrs" = "yes"; then + if test "$found_pam_lib" = "yes" -a "$found_pam_hdrs" = "yes" +then : + # Found both PAM libs and headers with_pam=yes - elif test "$with_pam" = "yes"; then - if test "$found_pam_lib" = "no"; then + +elif test "$with_pam" = "yes" +then : + + if test "$found_pam_lib" = "no" +then : + as_fn_error $? "--with-pam specified but unable to locate PAM development library." "$LINENO" 5 - fi - if test "$found_pam_hdrs" = "no"; then + +fi + if test "$found_pam_hdrs" = "no" +then : + as_fn_error $? "--with-pam specified but unable to locate PAM development headers." "$LINENO" 5 - fi - elif test "$found_pam_lib" != "$found_pam_hdrs"; then - if test "$found_pam_lib" = "no"; then + +fi + +elif test "$found_pam_lib" != "$found_pam_hdrs" +then : + + if test "$found_pam_lib" = "no" +then : + as_fn_error $? "found PAM headers but no PAM development library; specify --without-pam to build without PAM" "$LINENO" 5 - fi - if test "$found_pam_hdrs" = "no"; then + +fi + if test "$found_pam_hdrs" = "no" +then : + as_fn_error $? "found PAM library but no PAM development headers; specify --without-pam to build without PAM" "$LINENO" 5 - fi - fi - if test "$with_pam" = "yes"; then +fi + +fi + + if test "$with_pam" = "yes" +then : + # Older PAM implementations lack pam_getenvlist OLIBS="$LIBS" LIBS="$LIBS -lpam $lt_cv_dlopen_libs" @@ -27376,10 +28759,14 @@ printf "%s\n" "$as_me: WARNING: ignoring unknown argument to --enable-pam-sessio esac fi - fi + +fi + fi -if test ${with_aixauth-'no'} != "no"; then +if test ${with_aixauth-'no'} != "no" +then : + for ac_func in authenticate do : @@ -27391,7 +28778,9 @@ then : fi done - if test "${with_aixauth}" = "yes"; then + if test "${with_aixauth}" = "yes" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using AIX general authentication" >&5 printf "%s\n" "$as_me: using AIX general authentication" >&6;} printf "%s\n" "#define HAVE_AIXAUTH 1" >>confdefs.h @@ -27399,10 +28788,14 @@ printf "%s\n" "$as_me: using AIX general authentication" >&6;} AUTH_OBJS="$AUTH_OBJS aix_auth.lo"; SUDOERS_LIBS="${SUDOERS_LIBS} -ls" AUTH_EXCL=AIX_AUTH - fi + +fi + fi -if test ${with_bsdauth-'no'} != "no"; then +if test ${with_bsdauth-'no'} != "no" +then : + ac_fn_c_check_header_compile "$LINENO" "bsd_auth.h" "ac_cv_header_bsd_auth_h" "$ac_includes_default" if test "x$ac_cv_header_bsd_auth_h" = xyes then : @@ -27411,13 +28804,17 @@ then : AUTH_OBJS="$AUTH_OBJS bsdauth.lo" BSDAUTH_USAGE='[-a type] ' AUTH_EXCL=BSD_AUTH; BAMAN=1 -else $as_nop - as_fn_error $? "BSD authentication was specified but bsd_auth.h could not be found" "$LINENO" 5 +else case e in #( + e) as_fn_error $? "BSD authentication was specified but bsd_auth.h could not be found" "$LINENO" 5 ;; +esac fi + fi -if test ${CHECKSIA-'false'} = "true"; then +if test ${CHECKSIA-'false'} = "true" +then : + for ac_func in sia_ses_init do : @@ -27426,19 +28823,28 @@ if test "x$ac_cv_func_sia_ses_init" = xyes then : printf "%s\n" "#define HAVE_SIA_SES_INIT 1" >>confdefs.h found=true -else $as_nop - found=false +else case e in #( + e) found=false ;; +esac fi done - if test "$found" = "true"; then + if test "$found" = "true" +then : + AUTH_EXCL=SIA AUTH_OBJS="$AUTH_OBJS sia.lo" - fi + +fi + fi -if test ${with_fwtk-'no'} != "no"; then - if test "$with_fwtk" != "yes"; then +if test ${with_fwtk-'no'} != "no" +then : + + if test "$with_fwtk" != "yes" +then : + if test ${SUDOERS_LDFLAGS+y} @@ -27462,15 +28868,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L${with_fwtk} { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -27496,15 +28903,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R${with_fwtk} { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi @@ -27531,31 +28939,43 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${with_fwtk} { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi with_fwtk=yes - fi + +fi SUDOERS_LIBS="${SUDOERS_LIBS} -lauth -lfwall" AUTH_OBJS="$AUTH_OBJS fwtk.lo" + fi -if test ${with_SecurID-'no'} != "no"; then - if test "$with_SecurID" != "yes"; then - : - elif test -d /usr/ace/examples; then +if test ${with_SecurID-'no'} != "no" +then : + + if test "$with_SecurID" != "yes" +then : + +elif test -d /usr/ace/examples +then : + with_SecurID=/usr/ace/examples - else + +else case e in #( + e) with_SecurID=/usr/ace - fi + ;; +esac +fi if test ${CPPFLAGS+y} then : @@ -27578,15 +28998,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${with_SecurID} { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi @@ -27612,15 +29033,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L${with_SecurID} { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -27646,33 +29068,40 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R${with_SecurID} { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi SUDOERS_LIBS="${SUDOERS_LIBS} -laceclnt -lpthread" AUTH_OBJS="$AUTH_OBJS securid5.lo"; + fi -if test -z "${AUTH_EXCL}" -a -n "$AUTH_DEF"; then +if test -z "${AUTH_EXCL}" -a -n "$AUTH_DEF" +then : + for auth in $AUTH_DEF; do case $auth in passwd) : ${with_passwd='maybe'};; esac done + fi -if test ${with_kerb5-'no'} != "no"; then +if test ${with_kerb5-'no'} != "no" +then : + # Extract the first word of "krb5-config", so it can be a program name with args. set dummy krb5-config; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -27680,8 +29109,8 @@ printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_KRB5CONFIG+y} then : printf %s "(cached) " >&6 -else $as_nop - if test -n "$KRB5CONFIG"; then +else case e in #( + e) if test -n "$KRB5CONFIG"; then ac_cv_prog_KRB5CONFIG="$KRB5CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -27704,7 +29133,8 @@ done IFS=$as_save_IFS test -z "$ac_cv_prog_KRB5CONFIG" && ac_cv_prog_KRB5CONFIG="""" -fi +fi ;; +esac fi KRB5CONFIG=$ac_cv_prog_KRB5CONFIG if test -n "$KRB5CONFIG"; then @@ -27716,7 +29146,9 @@ printf "%s\n" "no" >&6; } fi - if test -n "$KRB5CONFIG"; then + if test -n "$KRB5CONFIG" +then : + printf "%s\n" "#define HAVE_KERB5 1" >>confdefs.h AUTH_OBJS="$AUTH_OBJS kerb5.lo" @@ -27743,15 +29175,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=$f { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi done @@ -27777,18 +29210,23 @@ printf "%s\n" "yes" >&6; } printf "%s\n" "#define HAVE_HEIMDAL 1" >>confdefs.h -else $as_nop - +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - else + +else case e in #( + e) printf "%s\n" "#define HAVE_KERB5 1" >>confdefs.h - if test "$with_kerb5" = "yes"; then + if test "$with_kerb5" = "yes" +then : + found=no O_CPPFLAGS="$CPPFLAGS" for dir in "" "kerberosV/" "krb5/" "kerberos5/" "kerberosv5/"; do @@ -27810,12 +29248,17 @@ then : fi rm -f conftest.err conftest.i conftest.$ac_ext done - if test X"$found" = X"no"; then + if test X"$found" = X"no" +then : + CPPFLAGS="$O_CPPFLAGS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate Kerberos V include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS" >&5 printf "%s\n" "$as_me: WARNING: unable to locate Kerberos V include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS" >&2;} - fi - else + +fi + +else case e in #( + e) if test ${SUDOERS_LDFLAGS+y} @@ -27839,15 +29282,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L${with_kerb5}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -27873,15 +29317,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R${with_kerb5}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi @@ -27908,18 +29353,21 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${with_kerb5}/include { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - fi + ;; +esac +fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are using Heimdal" >&5 printf %s "checking whether we are using Heimdal... " >&6; } @@ -27948,8 +29396,8 @@ printf %s "checking for main in -lroken... " >&6; } if test ${ac_cv_lib_roken_main+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lroken $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -27966,12 +29414,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_roken_main=yes -else $as_nop - ac_cv_lib_roken_main=no +else case e in #( + e) ac_cv_lib_roken_main=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_roken_main" >&5 printf "%s\n" "$ac_cv_lib_roken_main" >&6; } @@ -27981,8 +29431,8 @@ then : fi -else $as_nop - +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } SUDOERS_LIBS="${SUDOERS_LIBS} -lkrb5 -lk5crypto -lcom_err" @@ -27991,8 +29441,8 @@ printf %s "checking for main in -lkrb5support... " >&6; } if test ${ac_cv_lib_krb5support_main+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lkrb5support $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -28009,12 +29459,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_krb5support_main=yes -else $as_nop - ac_cv_lib_krb5support_main=no +else case e in #( + e) ac_cv_lib_krb5support_main=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_krb5support_main" >&5 printf "%s\n" "$ac_cv_lib_krb5support_main" >&6; } @@ -28023,11 +29475,14 @@ then : SUDOERS_LIBS="${SUDOERS_LIBS} -lkrb5support" fi - + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext AUTH_OBJS="$AUTH_OBJS kerb5.lo" - fi + ;; +esac +fi _LIBS="$LIBS" LIBS="${LIBS} ${SUDOERS_LIBS}" ac_fn_c_check_func "$LINENO" "krb5_verify_user" "ac_cv_func_krb5_verify_user" @@ -28056,8 +29511,8 @@ printf %s "checking whether krb5_get_init_creds_opt_free takes a context... " >& if test ${sudo_cv_krb5_get_init_creds_opt_free_two_args+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -28073,13 +29528,15 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : sudo_cv_krb5_get_init_creds_opt_free_two_args=yes -else $as_nop - sudo_cv_krb5_get_init_creds_opt_free_two_args=no - +else case e in #( + e) sudo_cv_krb5_get_init_creds_opt_free_two_args=no + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_krb5_get_init_creds_opt_free_two_args" >&5 printf "%s\n" "$sudo_cv_krb5_get_init_creds_opt_free_two_args" >&6; } @@ -28087,10 +29544,13 @@ printf "%s\n" "$sudo_cv_krb5_get_init_creds_opt_free_two_args" >&6; } fi done - if test X"$sudo_cv_krb5_get_init_creds_opt_free_two_args" = X"yes"; then + if test X"$sudo_cv_krb5_get_init_creds_opt_free_two_args" = X"yes" +then : + printf "%s\n" "#define HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS 1" >>confdefs.h - fi + +fi LIBS="$_LIBS" # Check whether --enable-kerb5-instance was given. if test ${enable_kerb5_instance+y} @@ -28107,14 +29567,18 @@ EOF esac fi + fi -if test ${with_AFS-'no'} = "yes"; then +if test ${with_AFS-'no'} = "yes" +then : # looks like the "standard" place for AFS libs is /usr/afsws/lib AFSLIBDIRS="/usr/lib/afs /usr/afsws/lib /usr/afsws/lib/afs" for i in $AFSLIBDIRS; do - if test -d ${i}; then + if test -d ${i} +then : + if test ${SUDOERS_LDFLAGS+y} @@ -28138,15 +29602,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L$i { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -28172,45 +29637,58 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R$i { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi FOUND_AFSLIBDIR=true - fi + +fi done - if test -z "$FOUND_AFSLIBDIR"; then + if test -z "$FOUND_AFSLIBDIR" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate AFS libraries, you will have to edit the Makefile and add -L/path/to/afs/libs to SUDOERS_LDFLAGS or rerun configure with the --with-libpath options." >&5 printf "%s\n" "$as_me: WARNING: unable to locate AFS libraries, you will have to edit the Makefile and add -L/path/to/afs/libs to SUDOERS_LDFLAGS or rerun configure with the --with-libpath options." >&2;} - fi + +fi # Order is important here. Note that we build AFS_LIBS from right to left # since AFS_LIBS may be initialized with BSD compat libs that must go last AFS_LIBS="-laudit ${AFS_LIBS}" for i in $AFSLIBDIRS; do - if test -f ${i}/util.a; then + if test -f ${i}/util.a +then : + AFS_LIBS="${i}/util.a ${AFS_LIBS}" FOUND_UTIL_A=true break; - fi + +fi done - if test -z "$FOUND_UTIL_A"; then + if test -z "$FOUND_UTIL_A" +then : + AFS_LIBS="-lutil ${AFS_LIBS}" - fi + +fi AFS_LIBS="-lkauth -lprot -lubik -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err ${AFS_LIBS}" # AFS includes may live in /usr/include on some machines... for i in /usr/afsws/include; do - if test -d ${i}; then + if test -d ${i} +then : + if test ${CPPFLAGS+y} then : @@ -28233,38 +29711,51 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${i} { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi FOUND_AFSINCDIR=true - fi + +fi done - if test -z "$FOUND_AFSLIBDIR"; then + if test -z "$FOUND_AFSLIBDIR" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate AFS include dir, you may have to edit the Makefile and add -I/path/to/afs/includes to CPPFLAGS or rerun configure with the --with-incpath options." >&5 printf "%s\n" "$as_me: WARNING: unable to locate AFS include dir, you may have to edit the Makefile and add -I/path/to/afs/includes to CPPFLAGS or rerun configure with the --with-incpath options." >&2;} - fi + +fi AUTH_OBJS="$AUTH_OBJS afs.lo" + fi -if test ${with_DCE-'no'} = "yes"; then +if test ${with_DCE-'no'} = "yes" +then : + DCE_OBJS="${DCE_OBJS} dce_pwent.o" SUDOERS_LIBS="${SUDOERS_LIBS} -ldce" AUTH_OBJS="$AUTH_OBJS dce.lo" + fi -if test "${with_skey-'no'}" = "yes"; then +if test "${with_skey-'no'}" = "yes" +then : + O_LDFLAGS="$LDFLAGS" - if test "$with_skey" != "yes"; then + if test "$with_skey" != "yes" +then : + if test ${CPPFLAGS+y} then : @@ -28287,15 +29778,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${with_skey}/include { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi LDFLAGS="$LDFLAGS -L${with_skey}/lib" @@ -28322,15 +29814,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L${with_skey}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -28356,15 +29849,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R${with_skey}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi @@ -28374,11 +29868,14 @@ fi if test "x$ac_cv_header_skey_h" = xyes then : found=yes -else $as_nop - found=no +else case e in #( + e) found=no ;; +esac fi - else + +else case e in #( + e) found=no O_CPPFLAGS="$CPPFLAGS" for dir in "" "/usr/local" "/usr/contrib"; do @@ -28391,9 +29888,13 @@ then : fi done - if test "$found" = "no" -o -z "$dir"; then + if test "$found" = "no" -o -z "$dir" +then : + CPPFLAGS="$O_CPPFLAGS" - else + +else case e in #( + e) LDFLAGS="$LDFLAGS -L${dir}/lib" @@ -28418,15 +29919,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L${dir}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -28452,32 +29954,40 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R${dir}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - fi - if test "$found" = "no"; then + ;; +esac +fi + if test "$found" = "no" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate skey.h, you will have to edit the Makefile and add -I/path/to/skey/includes to CPPFLAGS" >&5 printf "%s\n" "$as_me: WARNING: unable to locate skey.h, you will have to edit the Makefile and add -I/path/to/skey/includes to CPPFLAGS" >&2;} - fi - fi + +fi + ;; +esac +fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lskey" >&5 printf %s "checking for main in -lskey... " >&6; } if test ${ac_cv_lib_skey_main+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lskey $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -28494,21 +30004,24 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_skey_main=yes -else $as_nop - ac_cv_lib_skey_main=no +else case e in #( + e) ac_cv_lib_skey_main=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_skey_main" >&5 printf "%s\n" "$ac_cv_lib_skey_main" >&6; } if test "x$ac_cv_lib_skey_main" = xyes then : found=yes -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate libskey.a, you will have to edit the Makefile and add -L/path/to/skey/lib to SUDOERS_LDFLAGS" >&5 -printf "%s\n" "$as_me: WARNING: unable to locate libskey.a, you will have to edit the Makefile and add -L/path/to/skey/lib to SUDOERS_LDFLAGS" >&2;} +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate libskey.a, you will have to edit the Makefile and add -L/path/to/skey/lib to SUDOERS_LDFLAGS" >&5 +printf "%s\n" "$as_me: WARNING: unable to locate libskey.a, you will have to edit the Makefile and add -L/path/to/skey/lib to SUDOERS_LDFLAGS" >&2;} ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for skeyaccess in -lskey" >&5 @@ -28516,16 +30029,22 @@ printf %s "checking for skeyaccess in -lskey... " >&6; } if test ${ac_cv_lib_skey_skeyaccess+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lskey $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char skeyaccess (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char skeyaccess (void); int main (void) { @@ -28537,12 +30056,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_skey_skeyaccess=yes -else $as_nop - ac_cv_lib_skey_skeyaccess=no +else case e in #( + e) ac_cv_lib_skey_skeyaccess=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_skey_skeyaccess" >&5 printf "%s\n" "$ac_cv_lib_skey_skeyaccess" >&6; } @@ -28577,23 +30098,29 @@ then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } -else $as_nop - +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext LDFLAGS="$O_LDFLAGS" SUDOERS_LIBS="${SUDOERS_LIBS} -lskey" AUTH_OBJS="$AUTH_OBJS rfc1938.lo" + fi -if test "${with_opie-'no'}" = "yes"; then +if test "${with_opie-'no'}" = "yes" +then : + O_LDFLAGS="$LDFLAGS" - if test "$with_opie" != "yes"; then + if test "$with_opie" != "yes" +then : + if test ${CPPFLAGS+y} then : @@ -28616,15 +30143,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${with_opie}/include { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi LDFLAGS="$LDFLAGS -L${with_opie}/lib" @@ -28651,15 +30179,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L${with_opie}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -28685,15 +30214,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R${with_opie}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi @@ -28712,11 +30242,14 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : found=yes -else $as_nop - found=no +else case e in #( + e) found=no ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext - else + +else case e in #( + e) found=no O_CPPFLAGS="$CPPFLAGS" for dir in "" "/usr/local" "/usr/contrib"; do @@ -28738,9 +30271,13 @@ then : fi rm -f conftest.err conftest.i conftest.$ac_ext done - if test "$found" = "no" -o -z "$dir"; then + if test "$found" = "no" -o -z "$dir" +then : + CPPFLAGS="$O_CPPFLAGS" - else + +else case e in #( + e) LDFLAGS="$LDFLAGS -L${dir}/lib" @@ -28765,15 +30302,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L${dir}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -28799,32 +30337,40 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R${dir}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - fi - if test "$found" = "no"; then + ;; +esac +fi + if test "$found" = "no" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate opie.h, you will have to edit the Makefile and add -I/path/to/opie/includes to CPPFLAGS" >&5 printf "%s\n" "$as_me: WARNING: unable to locate opie.h, you will have to edit the Makefile and add -I/path/to/opie/includes to CPPFLAGS" >&2;} - fi - fi + +fi + ;; +esac +fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lopie" >&5 printf %s "checking for main in -lopie... " >&6; } if test ${ac_cv_lib_opie_main+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lopie $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -28841,44 +30387,56 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_opie_main=yes -else $as_nop - ac_cv_lib_opie_main=no +else case e in #( + e) ac_cv_lib_opie_main=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_opie_main" >&5 printf "%s\n" "$ac_cv_lib_opie_main" >&6; } if test "x$ac_cv_lib_opie_main" = xyes then : found=yes -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate libopie.a, you will have to edit the Makefile and add -L/path/to/opie/lib to SUDOERS_LDFLAGS" >&5 -printf "%s\n" "$as_me: WARNING: unable to locate libopie.a, you will have to edit the Makefile and add -L/path/to/opie/lib to SUDOERS_LDFLAGS" >&2;} +else case e in #( + e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate libopie.a, you will have to edit the Makefile and add -L/path/to/opie/lib to SUDOERS_LDFLAGS" >&5 +printf "%s\n" "$as_me: WARNING: unable to locate libopie.a, you will have to edit the Makefile and add -L/path/to/opie/lib to SUDOERS_LDFLAGS" >&2;} ;; +esac fi LDFLAGS="$O_LDFLAGS" SUDOERS_LIBS="${SUDOERS_LIBS} -lopie" AUTH_OBJS="$AUTH_OBJS rfc1938.lo" + fi -if test ${with_passwd-'no'} != "no"; then +if test ${with_passwd-'no'} != "no" +then : + _LIBS="$LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5 printf %s "checking for library containing crypt... " >&6; } if test ${ac_cv_search_crypt+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char crypt (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char crypt (void); int main (void) { @@ -28909,11 +30467,13 @@ done if test ${ac_cv_search_crypt+y} then : -else $as_nop - ac_cv_search_crypt=no +else case e in #( + e) ac_cv_search_crypt=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5 printf "%s\n" "$ac_cv_search_crypt" >&6; } @@ -28926,18 +30486,23 @@ then : fi - if test "${ac_cv_search_crypt}" != "no"; then + if test "${ac_cv_search_crypt}" != "no" +then : + printf "%s\n" "#define HAVE_CRYPT 1" >>confdefs.h - fi + +fi LIBS="$_LIBS" - if test "$CHECKSHADOW" = "true" -a -n "$shadow_funcs"; then + if test "$CHECKSHADOW" = "true" -a -n "$shadow_funcs" +then : + _LIBS="$LIBS" LIBS="$LIBS $shadow_libs" found=no for func in $shadow_funcs; do - as_ac_var=`printf "%s\n" "ac_cv_func_$func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : @@ -28973,27 +30538,39 @@ then : fi done - if test "$found" = "no"; then + if test "$found" = "no" +then : + shadow_libs= - fi + +fi CHECKSHADOW=false LIBS="$_LIBS" - fi - if test "$CHECKSHADOW" = "true"; then + +fi + if test "$CHECKSHADOW" = "true" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing getspnam" >&5 printf %s "checking for library containing getspnam... " >&6; } if test ${ac_cv_search_getspnam+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char getspnam (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char getspnam (void); int main (void) { @@ -29024,11 +30601,13 @@ done if test ${ac_cv_search_getspnam+y} then : -else $as_nop - ac_cv_search_getspnam=no +else case e in #( + e) ac_cv_search_getspnam=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getspnam" >&5 printf "%s\n" "$ac_cv_search_getspnam" >&6; } @@ -29044,22 +30623,31 @@ then : fi - fi - if test "$CHECKSHADOW" = "true"; then + +fi + if test "$CHECKSHADOW" = "true" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing getprpwnam" >&5 printf %s "checking for library containing getprpwnam... " >&6; } if test ${ac_cv_search_getprpwnam+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char getprpwnam (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char getprpwnam (void); int main (void) { @@ -29090,11 +30678,13 @@ done if test ${ac_cv_search_getprpwnam+y} then : -else $as_nop - ac_cv_search_getprpwnam=no +else case e in #( + e) ac_cv_search_getprpwnam=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_getprpwnam" >&5 printf "%s\n" "$ac_cv_search_getprpwnam" >&6; } @@ -29111,12 +30701,18 @@ then : fi - fi - if test -n "$shadow_libs"; then + +fi + if test -n "$shadow_libs" +then : + # sudoers needs to link with shadow libs for password auth SUDOERS_LIBS="$SUDOERS_LIBS $shadow_libs" - fi - if test -n "$SECUREWARE"; then + +fi + if test -n "$SECUREWARE" +then : + _LIBS="$LIBS" LIBS="$LIBS $shadow_libs" ac_fn_c_check_func "$LINENO" "bigcrypt" "ac_cv_func_bigcrypt" @@ -29131,29 +30727,33 @@ fi for ac_func in set_auth_parameters initprivs do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF test -n "$shadow_libs" && SUDO_LIBS="$SUDO_LIBS $shadow_libs" fi done LIBS="$_LIBS" - fi + +fi + fi -if test X"$with_bsm_audit" = X"yes"; then +if test X"$with_bsm_audit" = X"yes" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether au_close() takes 4 arguments" >&5 printf %s "checking whether au_close() takes 4 arguments... " >&6; } if test ${sudo_cv_func_au_close_solaris11+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default #include @@ -29172,11 +30772,13 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : sudo_cv_func_au_close_solaris11=yes -else $as_nop - sudo_cv_func_au_close_solaris11=no +else case e in #( + e) sudo_cv_func_au_close_solaris11=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - + ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_func_au_close_solaris11" >&5 printf "%s\n" "$sudo_cv_func_au_close_solaris11" >&6; } @@ -29186,26 +30788,33 @@ printf "%s\n" "#define HAVE_AU_CLOSE_SOLARIS11 1" >>confdefs.h fi + fi -if test X"$enable_poll" = X""; then +if test X"$enable_poll" = X"" +then : + for ac_func in ppoll poll do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF enable_poll=yes; break -else $as_nop - enable_poll=no +else case e in #( + e) enable_poll=no ;; +esac fi done -elif test X"$enable_poll" = X"yes"; then + +elif test X"$enable_poll" = X"yes" +then : + for ac_func in ppoll do : @@ -29214,16 +30823,22 @@ if test "x$ac_cv_func_ppoll" = xyes then : printf "%s\n" "#define HAVE_PPOLL 1" >>confdefs.h -else $as_nop - printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h - +else case e in #( + e) printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h + ;; +esac fi done + fi -if test "$enable_poll" = "yes"; then +if test "$enable_poll" = "yes" +then : + COMMON_OBJS="${COMMON_OBJS} event_poll.lo" -else + +else case e in #( + e) ac_fn_c_check_func "$LINENO" "pselect" "ac_cv_func_pselect" if test "x$ac_cv_func_pselect" = xyes then : @@ -29232,11 +30847,14 @@ then : fi COMMON_OBJS="${COMMON_OBJS} event_select.lo" + ;; +esac fi -if test ${with_ldap-'no'} != "no"; then - O_LDFLAGS="$LDFLAGS" - if test "$with_ldap" != "yes"; then + + if test ${with_ldap-'no'} != "no"; then + O_LDFLAGS="$LDFLAGS" + if test "$with_ldap" != "yes"; then if test ${SUDOERS_LDFLAGS+y} @@ -29260,15 +30878,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L${with_ldap}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -29294,21 +30913,22 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R${with_ldap}/lib { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - LDFLAGS="$LDFLAGS -L${with_ldap}/lib" - if test -d "${with_ldap}/lib64"; then + LDFLAGS="$LDFLAGS -L${with_ldap}/lib" + if test -d "${with_ldap}/lib64"; then if test ${SUDOERS_LDFLAGS+y} @@ -29332,15 +30952,16 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-L${with_ldap}/lib64 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi if test X"$enable_rpath" = X"yes"; then @@ -29366,21 +30987,22 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS_R=-R${with_ldap}/lib64 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS_R=\"\$SUDOERS_LDFLAGS_R\""; } >&5 (: SUDOERS_LDFLAGS_R="$SUDOERS_LDFLAGS_R") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi fi - LDFLAGS="$LDFLAGS -L${with_ldap}/lib64" - fi + LDFLAGS="$LDFLAGS -L${with_ldap}/lib64" + fi if test ${CPPFLAGS+y} then : @@ -29403,39 +31025,40 @@ then : ;; esac -else $as_nop - +else case e in #( + e) CPPFLAGS=-I${with_ldap}/include { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 (: CPPFLAGS="$CPPFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - with_ldap=yes - fi - SUDOERS_OBJS="${SUDOERS_OBJS} ldap.lo ldap_conf.lo" - case "$SUDOERS_OBJS" in - *ldap_util.lo*) ;; - *) SUDOERS_OBJS="${SUDOERS_OBJS} ldap_util.lo";; - esac - LDAP="" + with_ldap=yes + fi + SUDOERS_OBJS="${SUDOERS_OBJS} ldap.lo ldap_conf.lo" + case "$SUDOERS_OBJS" in + *ldap_util.lo*) ;; + *) SUDOERS_OBJS="${SUDOERS_OBJS} ldap_util.lo";; + esac + LDAP="" - _LIBS="$LIBS" - LDAP_LIBS="" - IBMLDAP_EXTRA="" - found=no - # On HP-UX, libibmldap has a hidden dependency on libCsup - case "$host_os" in - hpux*|hiuxmpp*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lCsup" >&5 + _LIBS="$LIBS" + LDAP_LIBS="" + IBMLDAP_EXTRA="" + found=no + # On HP-UX, libibmldap has a hidden dependency on libCsup + case "$host_os" in + hpux*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lCsup" >&5 printf %s "checking for main in -lCsup... " >&6; } if test ${ac_cv_lib_Csup_main+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lCsup $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -29452,12 +31075,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_Csup_main=yes -else $as_nop - ac_cv_lib_Csup_main=no +else case e in #( + e) ac_cv_lib_Csup_main=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_Csup_main" >&5 printf "%s\n" "$ac_cv_lib_Csup_main" >&6; } @@ -29466,21 +31091,27 @@ then : IBMLDAP_EXTRA=" -lCsup" fi ;; - esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing ldap_init" >&5 + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing ldap_init" >&5 printf %s "checking for library containing ldap_init... " >&6; } if test ${ac_cv_search_ldap_init+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char ldap_init (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char ldap_init (void); int main (void) { @@ -29511,11 +31142,13 @@ done if test ${ac_cv_search_ldap_init+y} then : -else $as_nop - ac_cv_search_ldap_init=no +else case e in #( + e) ac_cv_search_ldap_init=no ;; +esac fi rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS +LIBS=$ac_func_search_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ldap_init" >&5 printf "%s\n" "$ac_cv_search_ldap_init" >&6; } @@ -29524,50 +31157,49 @@ if test "$ac_res" != no then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" - test "${ac_cv_search_ldap_init}" != "none required" && LDAP_LIBS="${ac_cv_search_ldap_init}" - found=yes + test "${ac_cv_search_ldap_init}" != "none required" && LDAP_LIBS="${ac_cv_search_ldap_init}" + found=yes fi - # If nothing linked, try -lldap and hope for the best - if test "$found" = "no"; then - LDAP_LIBS="-lldap" - fi - LIBS="${_LIBS} ${LDAP_LIBS}" - OLIBS="$LIBS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lber.h defines LBER_OPT_DEBUG_LEVEL" >&5 -printf %s "checking whether lber.h defines LBER_OPT_DEBUG_LEVEL... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -# include -int -main (void) -{ -int opt=LBER_OPT_DEBUG_LEVEL; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" + # If nothing linked, try -lldap and hope for the best + if test "$found" = "no"; then + LDAP_LIBS="-lldap" + fi + LIBS="${_LIBS} ${LDAP_LIBS}" + + ac_fn_check_decl "$LINENO" "LBER_OPT_DEBUG_LEVEL" "ac_cv_have_decl_LBER_OPT_DEBUG_LEVEL" "$ac_includes_default +#include +" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_LBER_OPT_DEBUG_LEVEL" = xyes then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing ber_set_option" >&5 -printf %s "checking for library containing ber_set_option... " >&6; } -if test ${ac_cv_search_ber_set_option+y} + case "$LDAP_LIBS" in + *-llber*) + # Already linking with -llber + ;; + *) # Link with -llber for ber_set_option() if it exists + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ber_set_option in -llber" >&5 +printf %s "checking for ber_set_option in -llber... " >&6; } +if test ${ac_cv_lib_lber_ber_set_option+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_func_search_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS +LIBS="-llber $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char ber_set_option (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char ber_set_option (void); int main (void) { @@ -29576,62 +31208,46 @@ return ber_set_option (); return 0; } _ACEOF -for ac_lib in '' lber -do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=-l$ac_lib - LIBS="-l$ac_lib $ac_func_search_save_LIBS" - fi - if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_link "$LINENO" then : - ac_cv_search_ber_set_option=$ac_res + ac_cv_lib_lber_ber_set_option=yes +else case e in #( + e) ac_cv_lib_lber_ber_set_option=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext - if test ${ac_cv_search_ber_set_option+y} -then : - break -fi -done -if test ${ac_cv_search_ber_set_option+y} -then : - -else $as_nop - ac_cv_search_ber_set_option=no -fi -rm conftest.$ac_ext -LIBS=$ac_func_search_save_LIBS + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_ber_set_option" >&5 -printf "%s\n" "$ac_cv_search_ber_set_option" >&6; } -ac_res=$ac_cv_search_ber_set_option -if test "$ac_res" != no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lber_ber_set_option" >&5 +printf "%s\n" "$ac_cv_lib_lber_ber_set_option" >&6; } +if test "x$ac_cv_lib_lber_ber_set_option" = xyes then : - test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" found=yes -else $as_nop - found=no +else case e in #( + e) found=no ;; +esac fi - if test X"$found" = X"yes" -a X"$LIBS" != X"$OLIBS"; then - LDAP_LIBS="$LDAP_LIBS -llber" - fi - -else $as_nop - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } + if test X"$found" = X"yes"; then + LDAP_LIBS="$LDAP_LIBS -llber" + fi + ;; + esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lber.h is needed" >&5 -printf %s "checking whether lber.h is needed... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether lber.h is needed when including ldap.h" >&5 +printf %s "checking whether lber.h is needed when including ldap.h... " >&6; } +if test ${sudo_cv_header_lber_h+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include -# include +#include int main (void) { @@ -29642,67 +31258,77 @@ main (void) _ACEOF if ac_fn_c_try_link "$LINENO" then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - printf "%s\n" "#define HAVE_LBER_H 1" >>confdefs.h + # No need to explicitly include lber.h when including ldap.h. + sudo_cv_header_lber_h=no +else case e in #( + e) + sudo_cv_header_lber_h=yes + ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_header_lber_h" >&5 +printf "%s\n" "$sudo_cv_header_lber_h" >&6; } + if test X"$sudo_cv_header_lber_h" = X"yes"; then + printf "%s\n" "#define HAVE_LBER_H 1" >>confdefs.h - if test ${enable_sasl-'yes'} = "yes"; then - found_sasl_h=no - for ac_header in sasl/sasl.h sasl.h + fi + + if test ${enable_sasl-'yes'} = "yes"; then + found_sasl_h=no + for ac_header in sasl/sasl.h sasl.h do : - as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 _ACEOF - found_sasl_h=yes - ac_fn_c_check_func "$LINENO" "ldap_sasl_interactive_bind_s" "ac_cv_func_ldap_sasl_interactive_bind_s" + found_sasl_h=yes + ac_fn_c_check_func "$LINENO" "ldap_sasl_interactive_bind_s" "ac_cv_func_ldap_sasl_interactive_bind_s" if test "x$ac_cv_func_ldap_sasl_interactive_bind_s" = xyes then : printf "%s\n" "#define HAVE_LDAP_SASL_INTERACTIVE_BIND_S 1" >>confdefs.h fi - break + break fi done - if test X${enable_sasl} = X"yes"; then - if test X"$found_sasl_h" != X"yes"; then - as_fn_error $? "--enable-sasl specified but unable to locate SASL development headers." "$LINENO" 5 - fi - if test X"$ac_cv_func_ldap_sasl_interactive_bind_s" != X"yes"; then : - as_fn_error $? "--enable-sasl specified but SASL support is missing in your LDAP library" "$LINENO" 5 + if test X${enable_sasl} = X"yes"; then + if test X"$found_sasl_h" != X"yes"; then + as_fn_error $? "--enable-sasl specified but unable to locate SASL development headers." "$LINENO" 5 + fi + if test X"$ac_cv_func_ldap_sasl_interactive_bind_s" != X"yes"; then : + as_fn_error $? "--enable-sasl specified but SASL support is missing in your LDAP library" "$LINENO" 5 + fi fi fi - fi - for ac_header in ldapssl.h ldap_ssl.h mps/ldap_ssl.h + for ac_header in ldapssl.h ldap_ssl.h mps/ldap_ssl.h do : - as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` + as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | sed "$as_sed_sh"` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "#include " if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_header" | sed "$as_sed_cpp"` 1 _ACEOF break fi done - ac_fn_c_check_func "$LINENO" "ldap_initialize" "ac_cv_func_ldap_initialize" + ac_fn_c_check_func "$LINENO" "ldap_initialize" "ac_cv_func_ldap_initialize" if test "x$ac_cv_func_ldap_initialize" = xyes then : printf "%s\n" "#define HAVE_LDAP_INITIALIZE 1" >>confdefs.h @@ -29772,34 +31398,40 @@ fi for ac_func in ldap_search_ext_s ldap_search_st do : - as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF -#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF break fi done - if test X"$check_gss_krb5_ccache_name" = X"yes"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gss_krb5_ccache_name in -lgssapi" >&5 + if test X"$check_gss_krb5_ccache_name" = X"yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gss_krb5_ccache_name in -lgssapi" >&5 printf %s "checking for gss_krb5_ccache_name in -lgssapi... " >&6; } if test ${ac_cv_lib_gssapi_gss_krb5_ccache_name+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lgssapi $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gss_krb5_ccache_name (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gss_krb5_ccache_name (void); int main (void) { @@ -29811,36 +31443,47 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_gssapi_gss_krb5_ccache_name=yes -else $as_nop - ac_cv_lib_gssapi_gss_krb5_ccache_name=no +else case e in #( + e) ac_cv_lib_gssapi_gss_krb5_ccache_name=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssapi_gss_krb5_ccache_name" >&5 printf "%s\n" "$ac_cv_lib_gssapi_gss_krb5_ccache_name" >&6; } if test "x$ac_cv_lib_gssapi_gss_krb5_ccache_name" = xyes then : - printf "%s\n" "#define HAVE_GSS_KRB5_CCACHE_NAME 1" >>confdefs.h - LDAP_LIBS="${LDAP_LIBS} -lgssapi" -else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gss_krb5_ccache_name in -lgssapi_krb5" >&5 + printf "%s\n" "#define HAVE_GSS_KRB5_CCACHE_NAME 1" >>confdefs.h + + LDAP_LIBS="${LDAP_LIBS} -lgssapi" + +else case e in #( + e) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gss_krb5_ccache_name in -lgssapi_krb5" >&5 printf %s "checking for gss_krb5_ccache_name in -lgssapi_krb5... " >&6; } if test ${ac_cv_lib_gssapi_krb5_gss_krb5_ccache_name+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lgssapi_krb5 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -char gss_krb5_ccache_name (); + builtin and then its argument prototype would still apply. + The 'extern "C"' is for builds by C++ compilers; + although this is not generally supported in C code supporting it here + has little cost and some practical benefit (sr 110532). */ +#ifdef __cplusplus +extern "C" +#endif +char gss_krb5_ccache_name (void); int main (void) { @@ -29852,37 +31495,42 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_gssapi_krb5_gss_krb5_ccache_name=yes -else $as_nop - ac_cv_lib_gssapi_krb5_gss_krb5_ccache_name=no +else case e in #( + e) ac_cv_lib_gssapi_krb5_gss_krb5_ccache_name=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gssapi_krb5_gss_krb5_ccache_name" >&5 printf "%s\n" "$ac_cv_lib_gssapi_krb5_gss_krb5_ccache_name" >&6; } if test "x$ac_cv_lib_gssapi_krb5_gss_krb5_ccache_name" = xyes then : - printf "%s\n" "#define HAVE_GSS_KRB5_CCACHE_NAME 1" >>confdefs.h - LDAP_LIBS="${LDAP_LIBS} -lgssapi_krb5" -fi + printf "%s\n" "#define HAVE_GSS_KRB5_CCACHE_NAME 1" >>confdefs.h + LDAP_LIBS="${LDAP_LIBS} -lgssapi_krb5" fi + ;; +esac +fi - # gssapi headers may be separate or part of Kerberos V - found=no - O_CPPFLAGS="$CPPFLAGS" - for dir in "" "kerberosV" "krb5" "kerberos5" "kerberosv5"; do - test X"$dir" != X"" && CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}" - # Use AC_PREPROC_IFELSE to check existence to avoid caching - # since we test with multiple values of CPPFLAGS - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + + # gssapi headers may be separate or part of Kerberos V + found=no + O_CPPFLAGS="$CPPFLAGS" + for dir in "" "kerberosV" "krb5" "kerberos5" "kerberosv5"; do + test X"$dir" != X"" && CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}" + # Use AC_PREPROC_IFELSE to check existence to avoid caching + # since we test with multiple values of CPPFLAGS + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include + #include int main (void) { @@ -29895,21 +31543,21 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : - ac_fn_c_check_header_compile "$LINENO" "gssapi/gssapi.h" "ac_cv_header_gssapi_gssapi_h" "$ac_includes_default" + ac_fn_c_check_header_compile "$LINENO" "gssapi/gssapi.h" "ac_cv_header_gssapi_gssapi_h" "$ac_includes_default" if test "x$ac_cv_header_gssapi_gssapi_h" = xyes then : printf "%s\n" "#define HAVE_GSSAPI_GSSAPI_H 1" >>confdefs.h fi - break - -else $as_nop + break - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - #include + #include int main (void) { @@ -29922,40 +31570,42 @@ _ACEOF if ac_fn_c_try_cpp "$LINENO" then : - ac_fn_c_check_header_compile "$LINENO" "gssapi.h" "ac_cv_header_gssapi_h" "$ac_includes_default" + ac_fn_c_check_header_compile "$LINENO" "gssapi.h" "ac_cv_header_gssapi_h" "$ac_includes_default" if test "x$ac_cv_header_gssapi_h" = xyes then : printf "%s\n" "#define HAVE_GSSAPI_H 1" >>confdefs.h fi - break + break fi rm -f conftest.err conftest.i conftest.$ac_ext - + ;; +esac fi rm -f conftest.err conftest.i conftest.$ac_ext - done - if test X"$ac_cv_header_gssapi_gssapi_h" != X"no"; then - ac_fn_c_check_header_compile "$LINENO" "gssapi/gssapi_krb5.h" "ac_cv_header_gssapi_gssapi_krb5_h" "$ac_includes_default" + done + if test X"$ac_cv_header_gssapi_gssapi_h" != X"no"; then + ac_fn_c_check_header_compile "$LINENO" "gssapi/gssapi_krb5.h" "ac_cv_header_gssapi_gssapi_krb5_h" "$ac_includes_default" if test "x$ac_cv_header_gssapi_gssapi_krb5_h" = xyes then : printf "%s\n" "#define HAVE_GSSAPI_GSSAPI_KRB5_H 1" >>confdefs.h fi - elif test X"$ac_cv_header_gssapi_h" = X"no"; then - CPPFLAGS="$O_CPPFLAGS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate gssapi.h, you will have to edit the Makefile and add -I/path/to/gssapi/includes to CPPFLAGS" >&5 + elif test X"$ac_cv_header_gssapi_h" = X"no"; then + CPPFLAGS="$O_CPPFLAGS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to locate gssapi.h, you will have to edit the Makefile and add -I/path/to/gssapi/includes to CPPFLAGS" >&5 printf "%s\n" "$as_me: WARNING: unable to locate gssapi.h, you will have to edit the Makefile and add -I/path/to/gssapi/includes to CPPFLAGS" >&2;} + fi fi + + SUDOERS_LIBS="${SUDOERS_LIBS} ${LDAP_LIBS}" + LIBS="$_LIBS" + LDFLAGS="$O_LDFLAGS" fi - SUDOERS_LIBS="${SUDOERS_LIBS} ${LDAP_LIBS}" - LIBS="$_LIBS" - LDFLAGS="$O_LDFLAGS" -fi # # How to do dynamic object loading. @@ -29965,7 +31615,9 @@ case "$lt_cv_dlopen" in dlopen) printf "%s\n" "#define HAVE_DLOPEN 1" >>confdefs.h - if test "$enable_static_sudoers" = "yes"; then + if test "$enable_static_sudoers" = "yes" +then : + printf "%s\n" "#define STATIC_SUDOERS_PLUGIN 1" >>confdefs.h SUDO_OBJS="${SUDO_OBJS} preload.o" @@ -29992,28 +31644,35 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-no-install { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi SUDOERS_LT_STATIC="--tag=disable-shared" LT_STATIC="" - else + +else case e in #( + e) SUDOERS_LT_STATIC="--tag=disable-static" LT_STATIC="--tag=disable-static" - fi + ;; +esac +fi ;; shl_load) printf "%s\n" "#define HAVE_SHL_LOAD 1" >>confdefs.h - if test "$enable_static_sudoers" = "yes"; then + if test "$enable_static_sudoers" = "yes" +then : + printf "%s\n" "#define STATIC_SUDOERS_PLUGIN 1" >>confdefs.h SUDO_OBJS="${SUDO_OBJS} preload.o" @@ -30040,28 +31699,36 @@ then : ;; esac -else $as_nop - +else case e in #( + e) SUDOERS_LDFLAGS=-no-install { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : SUDOERS_LDFLAGS=\"\$SUDOERS_LDFLAGS\""; } >&5 (: SUDOERS_LDFLAGS="$SUDOERS_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi SUDOERS_LT_STATIC="--tag=disable-shared" LT_STATIC="" - else + +else case e in #( + e) SUDOERS_LT_STATIC="--tag=disable-static" LT_STATIC="--tag=disable-static" - fi + ;; +esac +fi ;; *) - if test X"${ac_cv_func_dlopen}" = X"yes"; then + if test X"${ac_cv_func_dlopen}" = X"yes" +then : + as_fn_error $? "dlopen present but libtool doesn't appear to support your platform." "$LINENO" 5 - fi + +fi # Preload sudoers module symbols printf "%s\n" "#define STATIC_SUDOERS_PLUGIN 1" >>confdefs.h @@ -30082,10 +31749,16 @@ fi # We can only disable linking with the shared libsudo_util if # sudoers is linked statically too. # -if test "$enable_shared_libutil" = "no"; then - if test X"$STATIC_SUDOERS" = X""; then +if test "$enable_shared_libutil" = "no" +then : + + if test X"$STATIC_SUDOERS" = X"" +then : + as_fn_error $? "--disable-shared-libutil may only be specified with --enable-static-sudoers or when dynamic linking is disabled." "$LINENO" 5 - else + +else case e in #( + e) # Do not install libsudo_util. if test ${LIBUTIL_LDFLAGS+y} @@ -30109,18 +31782,22 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LIBUTIL_LDFLAGS=-no-install { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LIBUTIL_LDFLAGS=\"\$LIBUTIL_LDFLAGS\""; } >&5 (: LIBUTIL_LDFLAGS="$LIBUTIL_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } + ;; +esac +fi + ;; +esac fi - fi fi # On HP-UX, you cannot dlopen() a shared object that uses pthreads unless @@ -30129,14 +31806,14 @@ fi # so always link against -lpthread on HP-UX if it is available. # This check should go after all other libraries tests. case "$host_os" in - hpux*|hiuxmpp*) + hpux*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5 printf %s "checking for main in -lpthread... " >&6; } if test ${ac_cv_lib_pthread_main+y} then : printf %s "(cached) " >&6 -else $as_nop - ac_check_lib_save_LIBS=$LIBS +else case e in #( + e) ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -30153,12 +31830,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_pthread_main=yes -else $as_nop - ac_cv_lib_pthread_main=no +else case e in #( + e) ac_cv_lib_pthread_main=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS +LIBS=$ac_check_lib_save_LIBS ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5 printf "%s\n" "$ac_cv_lib_pthread_main" >&6; } @@ -30172,276 +31851,263 @@ fi ;; esac -if test "$utmp_style" = "LEGACY"; then +if test "$utmp_style" = "LEGACY" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for utmp file path" >&5 printf %s "checking for utmp file path... " >&6; } -found=no -for p in "/var/run/utmp" "/var/adm/utmp" "/etc/utmp"; do - if test -r "$p"; then - found=yes - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $p" >&5 -printf "%s\n" "$p" >&6; } +if test ${sudo_cv_path_UTMP+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + sudo_cv_path_UTMP=no + for p in "/var/run/utmp" "/var/adm/utmp" "/etc/utmp"; do + if test -r "$p"; then + sudo_cv_path_UTMP="$p" + break + fi + done + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_path_UTMP" >&5 +printf "%s\n" "$sudo_cv_path_UTMP" >&6; } + if test X"$sudo_cv_path_UTMP" != X"no"; then cat >>confdefs.h <&5 -printf "%s\n" "not found" >&6; } -fi fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for log dir location" >&5 -printf %s "checking for log dir location... " >&6; } if test "${with_logdir-yes}" != "yes"; then log_dir="$with_logdir" else - # Default value of log_dir set in configure.ac - for d in /var/log /var/adm /usr/adm; do - if test -d "$d"; then - log_dir="$d" - break - fi - done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for log dir location" >&5 +printf %s "checking for log dir location... " >&6; } +if test ${sudo_cv_log_dir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + # Default value of log_dir set in configure.ac + sudo_cv_log_dir="$log_dir" + for d in /var/log /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_log_dir="$d" + break + fi + done + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_log_dir" >&5 +printf "%s\n" "$sudo_cv_log_dir" >&6; } + log_dir="$sudo_cv_log_dir" fi - if test "${with_logdir}" != "no"; then - cat >>confdefs.h <>confdefs.h <&5 -printf "%s\n" "$log_dir" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for log file location" >&5 -printf %s "checking for log file location... " >&6; } - if test "${with_logpath-yes}" != "yes"; then + + if test -n "$with_logpath"; then logpath="$with_logpath" else - # Default value of logpath set in configure.ac - for d in /var/log /var/adm /usr/adm; do - if test -d "$d"; then - logpath="$d/sudo.log" - break - fi - done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for log file location" >&5 +printf %s "checking for log file location... " >&6; } +if test ${sudo_cv_log_path+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + # Default value of logpath set in configure.ac + sudo_cv_log_path="$logpath" + for d in /var/log /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_log_path="$d/sudo.log" + break + fi + done + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_log_path" >&5 +printf "%s\n" "$sudo_cv_log_path" >&6; } + logpath="$sudo_cv_log_path" fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $logpath" >&5 -printf "%s\n" "$logpath" >&6; } cat >>confdefs.h <&5 -printf %s "checking for sudo_logsrvd relay dir location... " >&6; } if test "${with_relaydir-yes}" != "yes"; then relay_dir="$with_relaydir" else - # Default value of relay_dir set in configure.ac - for d in /var/log /var/adm /usr/adm; do - if test -d "$d"; then - relay_dir="$d/sudo_logsrvd" - break - fi - done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sudo_logsrvd relay dir location" >&5 +printf %s "checking for sudo_logsrvd relay dir location... " >&6; } +if test ${sudo_cv_relay_dir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + # Default value of relay_dir set in configure.ac + sudo_cv_relay_dir="$relay_dir" + for d in /var/log /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_relay_dir="$d/sudo_logsrvd" + break + fi + done + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_relay_dir" >&5 +printf "%s\n" "$sudo_cv_relay_dir" >&6; } + relay_dir="$sudo_cv_relay_dir" fi - if test "${with_relaydir}" != "no"; then - cat >>confdefs.h <>confdefs.h <&5 -printf "%s\n" "$relay_dir" >&6; } -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sudo run dir location" >&5 + + if test -n "$with_rundir"; then + rundir="$with_rundir" + elif test -n "$runstatedir" && test "$runstatedir" != '${localstatedir}/run'; then + rundir="$runstatedir/sudo" + else + # No --with-rundir or --runstatedir specified + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sudo run dir location" >&5 printf %s "checking for sudo run dir location... " >&6; } -if test -n "$with_rundir"; then - rundir="$with_rundir" -elif test -n "$runstatedir" && test "$runstatedir" != '${localstatedir}/run'; then - rundir="$runstatedir/sudo" -else - # No --with-rundir or --runstatedir specified - for d in /run /var/run /var/db /var/lib /var/adm /usr/adm; do - if test -d "$d"; then - rundir="$d/sudo" - break - fi - done +if test ${sudo_cv_run_dir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + sudo_cv_run_dir=no + for d in /run /var/run /var/db /var/lib /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_run_dir="$d/sudo" + break + fi + done + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $rundir" >&5 -printf "%s\n" "$rundir" >&6; } -cat >>confdefs.h <&5 +printf "%s\n" "$sudo_cv_run_dir" >&6; } + rundir="$sudo_cv_run_dir" + fi + if test X"$rundir" != X"no"; then + cat >>confdefs.h <>confdefs.h <>confdefs.h <&5 + + if test -n "$with_vardir"; then + vardir="$with_vardir" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sudo var dir location" >&5 printf %s "checking for sudo var dir location... " >&6; } -vardir="$with_vardir" -if test -z "$vardir"; then - for d in /var/db /var/lib /var/adm /usr/adm; do - if test -d "$d"; then - vardir="$d/sudo" - break - fi - done +if test ${sudo_cv_var_dir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + sudo_cv_var_dir=no + for d in /var/db /var/lib /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_var_dir="$d/sudo" + break + fi + done + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $vardir" >&5 -printf "%s\n" "$vardir" >&6; } -cat >>confdefs.h <&5 +printf "%s\n" "$sudo_cv_var_dir" >&6; } + vardir="$sudo_cv_var_dir" + fi + if test X"$vardir" != X"no"; then + cat >>confdefs.h <&5 -printf %s "checking for I/O log dir location... " >&6; } if test "${with_iologdir-yes}" != "yes"; then iolog_dir="$with_iologdir" else - # Default value of iolog_dir set in configure.ac - for d in /var/log /var/adm /usr/adm; do - if test -d "$d"; then - iolog_dir="$d/sudo-io" - break - fi - done - fi - if test "${with_iologdir}" != "no"; then - cat >>confdefs.h <&5 -printf "%s\n" "$iolog_dir" >&6; } - -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking time zone data directory" >&5 -printf %s "checking time zone data directory... " >&6; } -tzdir="$with_tzdir" -if test -z "$tzdir"; then - tzdir=no - for d in /usr/share /usr/share/lib /usr/lib /etc; do - if test -d "$d/zoneinfo"; then - tzdir="$d/zoneinfo" - break - fi - done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for I/O log dir location" >&5 +printf %s "checking for I/O log dir location... " >&6; } +if test ${sudo_cv_iolog_dir+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + # Default value of iolog_dir set in configure.ac + sudo_cv_iolog_dir="$iolog_dir" + for d in /var/log /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_iolog_dir="$d/sudo-io" + break + fi + done + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tzdir" >&5 -printf "%s\n" "$tzdir" >&6; } -if test "${tzdir}" != "no"; then +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_iolog_dir" >&5 +printf "%s\n" "$sudo_cv_iolog_dir" >&6; } + iolog_dir="$sudo_cv_iolog_dir" + fi cat >>confdefs.h <&5 - (: CPPFLAGS already contains -D_FORTIFY_SOURCE=2) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } ;; #( - *) : - - as_fn_append CPPFLAGS " -D_FORTIFY_SOURCE=2" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 - (: CPPFLAGS="$CPPFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - ;; -esac - -else $as_nop - - CPPFLAGS=-D_FORTIFY_SOURCE=2 - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 - (: CPPFLAGS="$CPPFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _FORTIFY_SOURCE may be specified" >&5 -printf %s "checking whether _FORTIFY_SOURCE may be specified... " >&6; } -if test ${sudo_cv_use_fortify_source+y} + if test -n "$with_tzdir"; then + tzdir="$with_tzdir" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking time zone data directory" >&5 +printf %s "checking time zone data directory... " >&6; } +if test ${sudo_cv_tz_dir+y} then : printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - -int -main (void) -{ -char buf[4]; (void)sprintf(buf, "%s", "foo"); - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - sudo_cv_use_fortify_source=yes -else $as_nop - sudo_cv_use_fortify_source=no - -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - sudo_cv_use_fortify_source=yes -else $as_nop - sudo_cv_use_fortify_source=no - +else case e in #( + e) + sudo_cv_tz_dir=no + for d in /usr/share /usr/share/lib /usr/lib /etc; do + if test -d "$d/zoneinfo"; then + sudo_cv_tz_dir="$d/zoneinfo" + break + fi + done + ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_tz_dir" >&5 +printf "%s\n" "$sudo_cv_tz_dir" >&6; } + tzdir="$sudo_cv_tz_dir" + fi + if test X"$tzdir" != X"no"; then + cat >>confdefs.h <&5 -printf "%s\n" "$sudo_cv_use_fortify_source" >&6; } - if test "$sudo_cv_use_fortify_source" != yes; then - CPPFLAGS="$O_CPPFLAGS" fi -fi + ac_c_werror_flag=yes @@ -30454,14 +32120,16 @@ then : fi -if test -n "$GCC" -a "$lt_cv_prog_gnu_ld" != "yes" -a -n "$GCC"; then +if test -n "$GCC" -a "$lt_cv_prog_gnu_ld" != "yes" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -static-libgcc" >&5 printf %s "checking whether C compiler accepts -static-libgcc... " >&6; } if test ${ax_cv_check_cflags___static_libgcc+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -static-libgcc" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -30478,15 +32146,17 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___static_libgcc=yes -else $as_nop - ax_cv_check_cflags___static_libgcc=no +else case e in #( + e) ax_cv_check_cflags___static_libgcc=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags + CFLAGS=$ax_check_save_flags ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___static_libgcc" >&5 printf "%s\n" "$ax_cv_check_cflags___static_libgcc" >&6; } -if test x"$ax_cv_check_cflags___static_libgcc" = xyes +if test "x$ax_cv_check_cflags___static_libgcc" = xyes then : if test ${LT_LDFLAGS+y} @@ -30510,24 +32180,27 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LT_LDFLAGS=-Wc,-static-libgcc { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LT_LDFLAGS=\"\$LT_LDFLAGS\""; } >&5 (: LT_LDFLAGS="$LT_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -else $as_nop - : +else case e in #( + e) : ;; +esac fi + fi -case "$OS" in +case "$host_os" in netbsd*) ;; *) @@ -30536,8 +32209,8 @@ printf %s "checking whether the linker accepts -Wl,--enable-new-dtags... " >&6; if test ${ax_cv_check_ldflags___Wl___enable_new_dtags+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,--enable-new-dtags" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -30554,12 +32227,14 @@ _ACEOF if ac_fn_c_try_link "$LINENO" then : ax_cv_check_ldflags___Wl___enable_new_dtags=yes -else $as_nop - ax_cv_check_ldflags___Wl___enable_new_dtags=no +else case e in #( + e) ax_cv_check_ldflags___Wl___enable_new_dtags=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags + LDFLAGS=$ax_check_save_flags ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl___enable_new_dtags" >&5 printf "%s\n" "$ax_cv_check_ldflags___Wl___enable_new_dtags" >&6; } @@ -30587,33 +32262,85 @@ then : ;; esac -else $as_nop - +else case e in #( + e) LDFLAGS=-Wl,--enable-new-dtags { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 (: LDFLAGS="$LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -else $as_nop - : +else case e in #( + e) : ;; +esac fi ;; esac -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--allow-multiple-definition" >&5 -printf %s "checking whether the linker accepts -Wl,--allow-multiple-definition... " >&6; } -if test ${ax_cv_check_ldflags___Wl___allow_multiple_definition+y} + + if test -n "$GCC"; then + if test X"$enable_pie" = X""; then + case "$host_os" in + linux*) + # Attempt to build with PIE support + enable_pie="maybe" + ;; + esac + fi + if test X"$enable_pie" != X""; then + if test "$enable_pie" = "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-pie" >&5 +printf %s "checking whether C compiler accepts -fno-pie... " >&6; } +if test ${ax_cv_check_cflags___fno_pie+y} then : printf %s "(cached) " >&6 -else $as_nop +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -fno-pie" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ax_cv_check_cflags___fno_pie=yes +else case e in #( + e) ax_cv_check_cflags___fno_pie=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_pie" >&5 +printf "%s\n" "$ax_cv_check_cflags___fno_pie" >&6; } +if test "x$ax_cv_check_cflags___fno_pie" = xyes +then : + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fno-pie" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -nopie" >&5 +printf %s "checking whether the linker accepts -nopie... " >&6; } +if test ${ax_cv_check_ldflags___nopie+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) ax_check_save_flags=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,--allow-multiple-definition" + LDFLAGS="$LDFLAGS -nopie" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -30627,66 +32354,46 @@ main (void) _ACEOF if ac_fn_c_try_link "$LINENO" then : - ax_cv_check_ldflags___Wl___allow_multiple_definition=yes -else $as_nop - ax_cv_check_ldflags___Wl___allow_multiple_definition=no + ax_cv_check_ldflags___nopie=yes +else case e in #( + e) ax_cv_check_ldflags___nopie=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags + LDFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl___allow_multiple_definition" >&5 -printf "%s\n" "$ax_cv_check_ldflags___Wl___allow_multiple_definition" >&6; } -if test x"$ax_cv_check_ldflags___Wl___allow_multiple_definition" = xyes -then : - -if test ${LDFLAGS+y} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___nopie" >&5 +printf "%s\n" "$ax_cv_check_ldflags___nopie" >&6; } +if test x"$ax_cv_check_ldflags___nopie" = xyes then : - case " $LDFLAGS " in #( - *" -Wl,--allow-multiple-definition "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS already contains -Wl,--allow-multiple-definition"; } >&5 - (: LDFLAGS already contains -Wl,--allow-multiple-definition) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } ;; #( - *) : + PIE_CFLAGS="-fno-pie" + PIE_LDFLAGS="-nopie" - as_fn_append LDFLAGS " -Wl,--allow-multiple-definition" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - ;; +else case e in #( + e) : ;; esac - -else $as_nop - - LDFLAGS=-Wl,--allow-multiple-definition - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - fi -else $as_nop - : -fi + CFLAGS="$_CFLAGS" +else case e in #( + e) : ;; +esac +fi -if test -n "$GCC"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fvisibility=hidden" >&5 -printf %s "checking whether C compiler accepts -fvisibility=hidden... " >&6; } -if test ${ax_cv_check_cflags___fvisibility_hidden+y} + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fPIE" >&5 +printf %s "checking whether C compiler accepts -fPIE... " >&6; } +if test ${ax_cv_check_cflags___fPIE+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -fvisibility=hidden" + CFLAGS="$CFLAGS -fPIE" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -30700,40 +32407,32 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ax_cv_check_cflags___fvisibility_hidden=yes -else $as_nop - ax_cv_check_cflags___fvisibility_hidden=no + ax_cv_check_cflags___fPIE=yes +else case e in #( + e) ax_cv_check_cflags___fPIE=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags + CFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fvisibility_hidden" >&5 -printf "%s\n" "$ax_cv_check_cflags___fvisibility_hidden" >&6; } -if test x"$ax_cv_check_cflags___fvisibility_hidden" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fPIE" >&5 +printf "%s\n" "$ax_cv_check_cflags___fPIE" >&6; } +if test "x$ax_cv_check_cflags___fPIE" = xyes then : - printf "%s\n" "#define HAVE_DSO_VISIBILITY 1" >>confdefs.h - - CFLAGS="${CFLAGS} -fvisibility=hidden" - LT_LDEXPORTS= - LT_LDDEP= - -else $as_nop - : -fi - -else - case "$host_os" in - hpux*|hiuxmpp*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Bhidden_def" >&5 -printf %s "checking whether C compiler accepts -Bhidden_def... " >&6; } -if test ${ax_cv_check_cflags___Bhidden_def+y} + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fPIE" + _LDFLAGS="$LDFLAGS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -pie" >&5 +printf %s "checking whether the linker accepts -pie... " >&6; } +if test ${ax_cv_check_ldflags___pie+y} then : printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -Bhidden_def" +else case e in #( + e) + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -pie" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -30745,77 +32444,106 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_link "$LINENO" then : - ax_cv_check_cflags___Bhidden_def=yes -else $as_nop - ax_cv_check_cflags___Bhidden_def=no + ax_cv_check_ldflags___pie=yes +else case e in #( + e) ax_cv_check_ldflags___pie=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Bhidden_def" >&5 -printf "%s\n" "$ax_cv_check_cflags___Bhidden_def" >&6; } -if test x"$ax_cv_check_cflags___Bhidden_def" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___pie" >&5 +printf "%s\n" "$ax_cv_check_ldflags___pie" >&6; } +if test x"$ax_cv_check_ldflags___pie" = xyes then : - # HP-UX cc may not allow __declspec(dllexport) to be - # used in conjunction with #pragma HP_DEFINED_EXTERNAL - # when redefining standard libc functions. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether __declspec(dllexport) can be used when overriding libc functions" >&5 -printf %s "checking whether __declspec(dllexport) can be used when overriding libc functions... " >&6; } -if test ${sudo_cv_var_hpux_declspec_libc_function+y} + if test "$enable_pie" = "maybe"; then + LDFLAGS="$LDFLAGS -pie" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working PIE support" >&5 +printf %s "checking for working PIE support... " >&6; } +if test ${sudo_cv_working_pie+y} then : printf %s "(cached) " >&6 -else $as_nop - - _CFLAGS="$CFLAGS" - CFLAGS="${CFLAGS} -Bhidden_def" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) + if test "$cross_compiling" = yes +then : + sudo_cv_working_pie=no +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include - __declspec(dllexport) char * getenv(const char *n) { return NULL; } +$ac_includes_default +int main() { char *p = malloc(1024); if (p == NULL) return 1; memset(p, 0, 1024); return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_run "$LINENO" then : + sudo_cv_working_pie=yes +else case e in #( + e) sudo_cv_working_pie=no ;; +esac +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac +fi - sudo_cv_var_hpux_declspec_libc_function=yes - -else $as_nop - - sudo_cv_var_hpux_declspec_libc_function=no - + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_working_pie" >&5 +printf "%s\n" "$sudo_cv_working_pie" >&6; } + if test $sudo_cv_working_pie = yes +then : + enable_pie=yes fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$_CFLAGS" + fi + if test "$enable_pie" = "yes"; then + PIE_CFLAGS="-fPIE" + PIE_LDFLAGS="-Wc,-fPIE -pie" + fi +else case e in #( + e) : ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_hpux_declspec_libc_function" >&5 -printf "%s\n" "$sudo_cv_var_hpux_declspec_libc_function" >&6; } - if test "$sudo_cv_var_hpux_declspec_libc_function" = "yes"; then - printf "%s\n" "#define HAVE_DSO_VISIBILITY 1" >>confdefs.h - CFLAGS="${CFLAGS} -Bhidden_def" - LT_LDEXPORTS= - LT_LDDEP= - fi + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" -else $as_nop - : +else case e in #( + e) : ;; +esac fi - ;; - solaris2*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -xldscope=hidden" >&5 -printf %s "checking whether C compiler accepts -xldscope=hidden... " >&6; } -if test ${ax_cv_check_cflags___xldscope_hidden+y} + fi + fi + fi + if test X"$enable_pie" != X"no" -a X"$with_gnu_ld" = X"no"; then + # Solaris 11.1 and higher ld supports PIE executables, ASLR, + # non-executable stack and non-executable heap. + case "$host_os" in + solaris2.1[1-9]|solaris2.[2-9][0-9]) + # This assumes lt_prog_compiler_pic is a single flag, + # which is the case on Solaris. + if test -n "$lt_prog_compiler_pic"; then + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-ztype=pie" >&5 +printf %s "checking whether the linker accepts -Wl,-ztype=pie... " >&6; } +if test ${ax_cv_check_ldflags___Wl__ztype_pie+y} then : printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -xldscope=hidden" +else case e in #( + e) + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-ztype=pie" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -30827,150 +32555,93 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_link "$LINENO" then : - ax_cv_check_cflags___xldscope_hidden=yes -else $as_nop - ax_cv_check_cflags___xldscope_hidden=no + ax_cv_check_ldflags___Wl__ztype_pie=yes +else case e in #( + e) ax_cv_check_ldflags___Wl__ztype_pie=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___xldscope_hidden" >&5 -printf "%s\n" "$ax_cv_check_cflags___xldscope_hidden" >&6; } -if test x"$ax_cv_check_cflags___xldscope_hidden" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__ztype_pie" >&5 +printf "%s\n" "$ax_cv_check_ldflags___Wl__ztype_pie" >&6; } +if test x"$ax_cv_check_ldflags___Wl__ztype_pie" = xyes then : - printf "%s\n" "#define HAVE_DSO_VISIBILITY 1" >>confdefs.h - - CFLAGS="${CFLAGS} -xldscope=hidden" - LT_LDEXPORTS= - LT_LDDEP= - -else $as_nop - : -fi - - ;; - esac -fi + # Try building PIE if not disabled. + if test X"$enable_pie" = X""; then + LDFLAGS="$LDFLAGS -Wl,-ztype=pie" -if test "$lt_cv_prog_gnu_ld" = "yes"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ld supports anonymous map files" >&5 -printf %s "checking whether ld supports anonymous map files... " >&6; } -if test ${sudo_cv_var_gnu_ld_anon_map+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working PIE support" >&5 +printf %s "checking for working PIE support... " >&6; } +if test ${sudo_cv_working_pie+y} then : printf %s "(cached) " >&6 -else $as_nop - - sudo_cv_var_gnu_ld_anon_map=no - cat > conftest.map <<-EOF - { - global: foo; - local: *; - }; -EOF - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -fpic -shared -Wl,--version-script,./conftest.map" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) + if test "$cross_compiling" = yes +then : + sudo_cv_working_pie=no +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int foo; -int -main (void) -{ - - ; - return 0; -} +$ac_includes_default +int main() { char *p = malloc(1024); if (p == NULL) return 1; memset(p, 0, 1024); return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_run "$LINENO" then : - sudo_cv_var_gnu_ld_anon_map=yes + sudo_cv_working_pie=yes +else case e in #( + e) sudo_cv_working_pie=no ;; +esac +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" - + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_gnu_ld_anon_map" >&5 -printf "%s\n" "$sudo_cv_var_gnu_ld_anon_map" >&6; } - if test "$sudo_cv_var_gnu_ld_anon_map" = "yes"; then - LT_LDDEP="\$(shlib_map)"; LT_LDEXPORTS="-Wl,--version-script,\$(shlib_map)" - fi -else - case "$host_os" in - solaris2*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ld supports anonymous map files" >&5 -printf %s "checking whether ld supports anonymous map files... " >&6; } -if test ${sudo_cv_var_solaris_ld_anon_map+y} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_working_pie" >&5 +printf "%s\n" "$sudo_cv_working_pie" >&6; } + if test $sudo_cv_working_pie = yes then : - printf %s "(cached) " >&6 -else $as_nop + enable_pie=yes +fi - sudo_cv_var_solaris_ld_anon_map=no - cat > conftest.map <<-EOF - { - global: foo; - local: *; - }; -EOF - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int foo; -int -main (void) -{ + fi + if test "$enable_pie" = "yes"; then + PIE_CFLAGS="$lt_prog_compiler_pic" + PIE_LDFLAGS="-Wc,$lt_prog_compiler_pic -Wl,-ztype=pie" + fi - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - sudo_cv_var_solaris_ld_anon_map=yes +else case e in #( + e) : ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext + CFLAGS="$_CFLAGS" LDFLAGS="$_LDFLAGS" - - -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_solaris_ld_anon_map" >&5 -printf "%s\n" "$sudo_cv_var_solaris_ld_anon_map" >&6; } - if test "$sudo_cv_var_solaris_ld_anon_map" = "yes"; then - LT_LDDEP="\$(shlib_map)"; LT_LDEXPORTS="-Wl,-M,\$(shlib_map)" - fi - ;; - hpux*|hiuxmpp*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ld supports controlling exported symbols" >&5 -printf %s "checking whether ld supports controlling exported symbols... " >&6; } -if test ${sudo_cv_var_hpux_ld_symbol_export+y} + fi + # These flags are only valid when linking an executable + # so we cannot add them to HARDENING_LDFLAGS. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-zaslr" >&5 +printf %s "checking whether the linker accepts -Wl,-zaslr... " >&6; } +if test ${ax_cv_check_ldflags___Wl__zaslr+y} then : printf %s "(cached) " >&6 -else $as_nop - - sudo_cv_var_hpux_ld_symbol_export=no - echo "+e foo" > conftest.opt - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - if test -n "$GCC"; then - LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt" - else - LDFLAGS="$LDFLAGS -b -Wl,-c,./conftest.opt" - fi - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +else case e in #( + e) + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-zaslr" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -int foo; + int main (void) { @@ -30981,36 +32652,70 @@ main (void) _ACEOF if ac_fn_c_try_link "$LINENO" then : - sudo_cv_var_hpux_ld_symbol_export=yes + ax_cv_check_ldflags___Wl__zaslr=yes +else case e in #( + e) ax_cv_check_ldflags___Wl__zaslr=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" - rm -f conftest.opt + LDFLAGS=$ax_check_save_flags ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__zaslr" >&5 +printf "%s\n" "$ax_cv_check_ldflags___Wl__zaslr" >&6; } +if test x"$ax_cv_check_ldflags___Wl__zaslr" = xyes +then : + + +if test ${PIE_LDFLAGS+y} +then : + + case " $PIE_LDFLAGS " in #( + *" -Wl,-zaslr "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS already contains -Wl,-zaslr"; } >&5 + (: PIE_LDFLAGS already contains -Wl,-zaslr) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + as_fn_append PIE_LDFLAGS " -Wl,-zaslr" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS=\"\$PIE_LDFLAGS\""; } >&5 + (: PIE_LDFLAGS="$PIE_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +else case e in #( + e) + PIE_LDFLAGS=-Wl,-zaslr + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS=\"\$PIE_LDFLAGS\""; } >&5 + (: PIE_LDFLAGS="$PIE_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_hpux_ld_symbol_export" >&5 -printf "%s\n" "$sudo_cv_var_hpux_ld_symbol_export" >&6; } - if test "$sudo_cv_var_hpux_ld_symbol_export" = "yes"; then - LT_LDDEP="\$(shlib_opt)"; LT_LDEXPORTS="-Wl,-c,\$(shlib_opt)" - fi - ;; - esac + + +else case e in #( + e) : ;; +esac fi -if test "$enable_sanitizer" != "no"; then - as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$enable_sanitizer" | $as_tr_sh` -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $enable_sanitizer" >&5 -printf %s "checking whether C compiler accepts $enable_sanitizer... " >&6; } -if eval test \${$as_CACHEVAR+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-znxheap" >&5 +printf %s "checking whether the linker accepts -Wl,-znxheap... " >&6; } +if test ${ax_cv_check_ldflags___Wl__znxheap+y} then : printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS $enable_sanitizer" +else case e in #( + e) + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-znxheap" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -31022,129 +32727,155 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_compile "$LINENO" +if ac_fn_c_try_link "$LINENO" then : - eval "$as_CACHEVAR=yes" -else $as_nop - eval "$as_CACHEVAR=no" + ax_cv_check_ldflags___Wl__znxheap=yes +else case e in #( + e) ax_cv_check_ldflags___Wl__znxheap=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags ;; +esac fi -eval ac_res=\$$as_CACHEVAR - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -printf "%s\n" "$ac_res" >&6; } -if test x"`eval 'as_val=${'$as_CACHEVAR'};printf "%s\n" "$as_val"'`" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__znxheap" >&5 +printf "%s\n" "$ax_cv_check_ldflags___Wl__znxheap" >&6; } +if test x"$ax_cv_check_ldflags___Wl__znxheap" = xyes then : -if test ${ASAN_CFLAGS+y} +if test ${PIE_LDFLAGS+y} then : - case " $ASAN_CFLAGS " in #( - *" $enable_sanitizer "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_CFLAGS already contains \$enable_sanitizer"; } >&5 - (: ASAN_CFLAGS already contains $enable_sanitizer) 2>&5 + case " $PIE_LDFLAGS " in #( + *" -Wl,-znxheap "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS already contains -Wl,-znxheap"; } >&5 + (: PIE_LDFLAGS already contains -Wl,-znxheap) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append ASAN_CFLAGS " $enable_sanitizer" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_CFLAGS=\"\$ASAN_CFLAGS\""; } >&5 - (: ASAN_CFLAGS="$ASAN_CFLAGS") 2>&5 + as_fn_append PIE_LDFLAGS " -Wl,-znxheap" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS=\"\$PIE_LDFLAGS\""; } >&5 + (: PIE_LDFLAGS="$PIE_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - ASAN_CFLAGS=$enable_sanitizer - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_CFLAGS=\"\$ASAN_CFLAGS\""; } >&5 - (: ASAN_CFLAGS="$ASAN_CFLAGS") 2>&5 +else case e in #( + e) + PIE_LDFLAGS=-Wl,-znxheap + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS=\"\$PIE_LDFLAGS\""; } >&5 + (: PIE_LDFLAGS="$PIE_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -if test ${ASAN_LDFLAGS+y} -then : - - case " $ASAN_LDFLAGS " in #( - *" -XCClinker "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS already contains -XCClinker"; } >&5 - (: ASAN_LDFLAGS already contains -XCClinker) 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } ;; #( - *) : - - as_fn_append ASAN_LDFLAGS " -XCClinker" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 - (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - ;; +else case e in #( + e) : ;; esac +fi -else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-znxstack" >&5 +printf %s "checking whether the linker accepts -Wl,-znxstack... " >&6; } +if test ${ax_cv_check_ldflags___Wl__znxstack+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,-znxstack" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ - ASAN_LDFLAGS=-XCClinker - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 - (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } +int +main (void) +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_cv_check_ldflags___Wl__znxstack=yes +else case e in #( + e) ax_cv_check_ldflags___Wl__znxstack=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags ;; +esac fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__znxstack" >&5 +printf "%s\n" "$ax_cv_check_ldflags___Wl__znxstack" >&6; } +if test x"$ax_cv_check_ldflags___Wl__znxstack" = xyes +then : -if test ${ASAN_LDFLAGS+y} +if test ${PIE_LDFLAGS+y} then : - case " $ASAN_LDFLAGS " in #( - *" $enable_sanitizer "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS already contains \$enable_sanitizer"; } >&5 - (: ASAN_LDFLAGS already contains $enable_sanitizer) 2>&5 + case " $PIE_LDFLAGS " in #( + *" -Wl,-znxstack "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS already contains -Wl,-znxstack"; } >&5 + (: PIE_LDFLAGS already contains -Wl,-znxstack) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append ASAN_LDFLAGS " $enable_sanitizer" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 - (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + as_fn_append PIE_LDFLAGS " -Wl,-znxstack" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS=\"\$PIE_LDFLAGS\""; } >&5 + (: PIE_LDFLAGS="$PIE_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - ASAN_LDFLAGS=$enable_sanitizer - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 - (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 +else case e in #( + e) + PIE_LDFLAGS=-Wl,-znxstack + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS=\"\$PIE_LDFLAGS\""; } >&5 + (: PIE_LDFLAGS="$PIE_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } + ;; +esac +fi + +else case e in #( + e) : ;; +esac fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-omit-frame-pointer" >&5 -printf %s "checking whether C compiler accepts -fno-omit-frame-pointer... " >&6; } -if test ${ax_cv_check_cflags___fno_omit_frame_pointer+y} + ;; + esac + fi + + + if test -n "$GCC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fvisibility=hidden" >&5 +printf %s "checking whether C compiler accepts -fvisibility=hidden... " >&6; } +if test ${ax_cv_check_cflags___fvisibility_hidden+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -fno-omit-frame-pointer" + CFLAGS="$CFLAGS -fvisibility=hidden" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -31158,32 +32889,36 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ax_cv_check_cflags___fno_omit_frame_pointer=yes -else $as_nop - ax_cv_check_cflags___fno_omit_frame_pointer=no + ax_cv_check_cflags___fvisibility_hidden=yes +else case e in #( + e) ax_cv_check_cflags___fvisibility_hidden=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags + CFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_omit_frame_pointer" >&5 -printf "%s\n" "$ax_cv_check_cflags___fno_omit_frame_pointer" >&6; } -if test x"$ax_cv_check_cflags___fno_omit_frame_pointer" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fvisibility_hidden" >&5 +printf "%s\n" "$ax_cv_check_cflags___fvisibility_hidden" >&6; } +if test "x$ax_cv_check_cflags___fvisibility_hidden" = xyes then : + printf "%s\n" "#define HAVE_DSO_VISIBILITY 1" >>confdefs.h + if test ${CFLAGS+y} then : case " $CFLAGS " in #( - *" -fno-omit-frame-pointer "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -fno-omit-frame-pointer"; } >&5 - (: CFLAGS already contains -fno-omit-frame-pointer) 2>&5 + *" -fvisibility=hidden "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -fvisibility=hidden"; } >&5 + (: CFLAGS already contains -fvisibility=hidden) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append CFLAGS " -fno-omit-frame-pointer" + as_fn_append CFLAGS " -fvisibility=hidden" { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? @@ -31192,53 +32927,712 @@ then : ;; esac -else $as_nop - - CFLAGS=-fno-omit-frame-pointer +else case e in #( + e) + CFLAGS=-fvisibility=hidden { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } + ;; +esac +fi -fi - + LT_LDEXPORTS= + LT_LDDEP= -else $as_nop - : +else case e in #( + e) : ;; +esac fi - printf "%s\n" "#define NO_LEAKS 1" >>confdefs.h + else + case "$host_os" in + hpux*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Bhidden_def" >&5 +printf %s "checking whether C compiler accepts -Bhidden_def... " >&6; } +if test ${ax_cv_check_cflags___Bhidden_def+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Bhidden_def" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ - case `$CC --version 2>&1` in - *gcc*) - libasan=`$CC -print-file-name=libasan.so 2>/dev/null` - if test -n "$libasan" -a X"$libasan" != X"libasan.so"; then - # libasan.so may be a linker script - libasan="`awk 'BEGIN {lib=ARGV[1]} /^INPUT/ {lib=$3} END {print lib}' \"$libasan\"`" - cat >>confdefs.h <&5 +printf "%s\n" "$ax_cv_check_cflags___Bhidden_def" >&6; } +if test "x$ax_cv_check_cflags___Bhidden_def" = xyes +then : + + # HP-UX cc may not allow __declspec(dllexport) to be + # used in conjunction with #pragma HP_DEFINED_EXTERNAL + # when redefining standard libc functions. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether __declspec(dllexport) can be used when overriding libc functions" >&5 +printf %s "checking whether __declspec(dllexport) can be used when overriding libc functions... " >&6; } +if test ${sudo_cv_var_hpux_declspec_libc_function+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + _CFLAGS="$CFLAGS" + CFLAGS="${CFLAGS} -Bhidden_def" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + __declspec(dllexport) char * getenv(const char *n) { return NULL; } +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + sudo_cv_var_hpux_declspec_libc_function=yes + +else case e in #( + e) + sudo_cv_var_hpux_declspec_libc_function=no + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$_CFLAGS" + + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_hpux_declspec_libc_function" >&5 +printf "%s\n" "$sudo_cv_var_hpux_declspec_libc_function" >&6; } + if test "$sudo_cv_var_hpux_declspec_libc_function" = "yes"; then + printf "%s\n" "#define HAVE_DSO_VISIBILITY 1" >>confdefs.h + + +if test ${CFLAGS+y} +then : + + case " $CFLAGS " in #( + *" -Bhidden_def "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Bhidden_def"; } >&5 + (: CFLAGS already contains -Bhidden_def) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append CFLAGS " -Bhidden_def" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + CFLAGS=-Bhidden_def + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + LT_LDEXPORTS= + LT_LDDEP= + fi + +else case e in #( + e) : ;; +esac +fi + + ;; + solaris2*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -xldscope=hidden" >&5 +printf %s "checking whether C compiler accepts -xldscope=hidden... " >&6; } +if test ${ax_cv_check_cflags___xldscope_hidden+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -xldscope=hidden" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ax_cv_check_cflags___xldscope_hidden=yes +else case e in #( + e) ax_cv_check_cflags___xldscope_hidden=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___xldscope_hidden" >&5 +printf "%s\n" "$ax_cv_check_cflags___xldscope_hidden" >&6; } +if test "x$ax_cv_check_cflags___xldscope_hidden" = xyes +then : + + printf "%s\n" "#define HAVE_DSO_VISIBILITY 1" >>confdefs.h + + +if test ${CFLAGS+y} +then : + + case " $CFLAGS " in #( + *" -xldscope=hidden "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -xldscope=hidden"; } >&5 + (: CFLAGS already contains -xldscope=hidden) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append CFLAGS " -xldscope=hidden" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + CFLAGS=-xldscope=hidden + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + LT_LDEXPORTS= + LT_LDDEP= + +else case e in #( + e) : ;; +esac +fi + + ;; + esac + fi + + if test "$lt_cv_prog_gnu_ld" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ld supports anonymous map files" >&5 +printf %s "checking whether ld supports anonymous map files... " >&6; } +if test ${sudo_cv_var_gnu_ld_anon_map+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + sudo_cv_var_gnu_ld_anon_map=no + cat > conftest.map <<-EOF + { + global: foo; + local: *; + }; + EOF + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_prog_compiler_pic -shared -Wl,--version-script,./conftest.map" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + sudo_cv_var_gnu_ld_anon_map=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + rm -f conftest.map + + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_gnu_ld_anon_map" >&5 +printf "%s\n" "$sudo_cv_var_gnu_ld_anon_map" >&6; } + if test "$sudo_cv_var_gnu_ld_anon_map" = "yes"; then + LT_LDDEP="\$(shlib_map)"; LT_LDEXPORTS="-Wl,--version-script,\$(shlib_map)" + fi + else + case "$host_os" in + solaris2*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ld supports anonymous map files" >&5 +printf %s "checking whether ld supports anonymous map files... " >&6; } +if test ${sudo_cv_var_solaris_ld_anon_map+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + sudo_cv_var_solaris_ld_anon_map=no + cat > conftest.map <<-EOF + { + global: foo; + local: *; + }; + EOF + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + sudo_cv_var_solaris_ld_anon_map=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + rm -f conftest.map + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_solaris_ld_anon_map" >&5 +printf "%s\n" "$sudo_cv_var_solaris_ld_anon_map" >&6; } + if test "$sudo_cv_var_solaris_ld_anon_map" = "yes"; then + LT_LDDEP="\$(shlib_map)"; LT_LDEXPORTS="-Wl,-M,\$(shlib_map)" + fi + ;; + hpux*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ld supports controlling exported symbols" >&5 +printf %s "checking whether ld supports controlling exported symbols... " >&6; } +if test ${sudo_cv_var_hpux_ld_symbol_export+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + sudo_cv_var_hpux_ld_symbol_export=no + echo "+e foo" > conftest.opt + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + if test -n "$GCC"; then + LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt" + else + LDFLAGS="$LDFLAGS -b -Wl,-c,./conftest.opt" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + sudo_cv_var_hpux_ld_symbol_export=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + rm -f conftest.opt + + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_hpux_ld_symbol_export" >&5 +printf "%s\n" "$sudo_cv_var_hpux_ld_symbol_export" >&6; } + if test "$sudo_cv_var_hpux_ld_symbol_export" = "yes"; then + LT_LDDEP="\$(shlib_opt)"; LT_LDEXPORTS="-Wl,-c,\$(shlib_opt)" fi ;; esac + fi -else $as_nop - as_fn_error $? "$CC does not support the $enable_sanitizer flag" "$LINENO" 5 + if test X"${enable_sanitizer}{enable_fuzzer}" != X"nono"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--allow-multiple-definition" >&5 +printf %s "checking whether the linker accepts -Wl,--allow-multiple-definition... " >&6; } +if test ${ax_cv_check_ldflags___Wl___allow_multiple_definition+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Wl,--allow-multiple-definition" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_cv_check_ldflags___Wl___allow_multiple_definition=yes +else case e in #( + e) ax_cv_check_ldflags___Wl___allow_multiple_definition=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl___allow_multiple_definition" >&5 +printf "%s\n" "$ax_cv_check_ldflags___Wl___allow_multiple_definition" >&6; } +if test x"$ax_cv_check_ldflags___Wl___allow_multiple_definition" = xyes +then : + +if test ${ASAN_LDFLAGS+y} +then : + + case " $ASAN_LDFLAGS " in #( + *" -Wl,--allow-multiple-definition "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS already contains -Wl,--allow-multiple-definition"; } >&5 + (: ASAN_LDFLAGS already contains -Wl,--allow-multiple-definition) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + as_fn_append ASAN_LDFLAGS " -Wl,--allow-multiple-definition" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + ASAN_LDFLAGS=-Wl,--allow-multiple-definition + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi +else case e in #( + e) : ;; +esac fi -if test "$enable_fuzzer" = "yes"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fsanitize=fuzzer-no-link" >&5 + + fi + + if test X"$enable_sanitizer" != X"no"; then + as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$enable_sanitizer" | sed "$as_sed_sh"` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $enable_sanitizer" >&5 +printf %s "checking whether C compiler accepts $enable_sanitizer... " >&6; } +if eval test \${$as_CACHEVAR+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS $enable_sanitizer" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$as_CACHEVAR=yes" +else case e in #( + e) eval "$as_CACHEVAR=no" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac +fi +eval ac_res=\$$as_CACHEVAR + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_CACHEVAR"\" = x"yes" +then : + + +if test ${ASAN_CFLAGS+y} +then : + + case " $ASAN_CFLAGS " in #( + *" $enable_sanitizer "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_CFLAGS already contains \$enable_sanitizer"; } >&5 + (: ASAN_CFLAGS already contains $enable_sanitizer) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append ASAN_CFLAGS " $enable_sanitizer" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_CFLAGS=\"\$ASAN_CFLAGS\""; } >&5 + (: ASAN_CFLAGS="$ASAN_CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + ASAN_CFLAGS=$enable_sanitizer + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_CFLAGS=\"\$ASAN_CFLAGS\""; } >&5 + (: ASAN_CFLAGS="$ASAN_CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + +if test ${ASAN_LDFLAGS+y} +then : + + case " $ASAN_LDFLAGS " in #( + *" -XCClinker "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS already contains -XCClinker"; } >&5 + (: ASAN_LDFLAGS already contains -XCClinker) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append ASAN_LDFLAGS " -XCClinker" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + ASAN_LDFLAGS=-XCClinker + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + +if test ${ASAN_LDFLAGS+y} +then : + + case " $ASAN_LDFLAGS " in #( + *" $enable_sanitizer "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS already contains \$enable_sanitizer"; } >&5 + (: ASAN_LDFLAGS already contains $enable_sanitizer) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append ASAN_LDFLAGS " $enable_sanitizer" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + ASAN_LDFLAGS=$enable_sanitizer + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-omit-frame-pointer" >&5 +printf %s "checking whether C compiler accepts -fno-omit-frame-pointer... " >&6; } +if test ${ax_cv_check_cflags___fno_omit_frame_pointer+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -fno-omit-frame-pointer" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ax_cv_check_cflags___fno_omit_frame_pointer=yes +else case e in #( + e) ax_cv_check_cflags___fno_omit_frame_pointer=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_omit_frame_pointer" >&5 +printf "%s\n" "$ax_cv_check_cflags___fno_omit_frame_pointer" >&6; } +if test "x$ax_cv_check_cflags___fno_omit_frame_pointer" = xyes +then : + + +if test ${CFLAGS+y} +then : + + case " $CFLAGS " in #( + *" -fno-omit-frame-pointer "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -fno-omit-frame-pointer"; } >&5 + (: CFLAGS already contains -fno-omit-frame-pointer) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append CFLAGS " -fno-omit-frame-pointer" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + CFLAGS=-fno-omit-frame-pointer + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + +else case e in #( + e) : ;; +esac +fi + + printf "%s\n" "#define NO_LEAKS 1" >>confdefs.h + + case `$CC --version 2>&1` in + *gcc*) + libasan=`$CC -print-file-name=libasan.so 2>/dev/null` + if test -n "$libasan" -a X"$libasan" != X"libasan.so"; then + # libasan.so may be a linker script + libasan="`awk 'BEGIN {lib=ARGV[1]} /^INPUT/ {lib=$3} END {print lib}' \"$libasan\"`" + cat >>confdefs.h <&5 printf %s "checking whether C compiler accepts -fsanitize=fuzzer-no-link... " >&6; } if test ${ax_cv_check_cflags___fsanitize_fuzzer_no_link+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -fsanitize=fuzzer-no-link" cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -31255,15 +33649,17 @@ _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___fsanitize_fuzzer_no_link=yes -else $as_nop - ax_cv_check_cflags___fsanitize_fuzzer_no_link=no +else case e in #( + e) ax_cv_check_cflags___fsanitize_fuzzer_no_link=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags + CFLAGS=$ax_check_save_flags ;; +esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_fuzzer_no_link" >&5 printf "%s\n" "$ax_cv_check_cflags___fsanitize_fuzzer_no_link" >&6; } -if test x"$ax_cv_check_cflags___fsanitize_fuzzer_no_link" = xyes +if test "x$ax_cv_check_cflags___fsanitize_fuzzer_no_link" = xyes then : @@ -31288,95 +33684,590 @@ then : ;; esac -else $as_nop - +else case e in #( + e) ASAN_CFLAGS=-fsanitize=fuzzer-no-link { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_CFLAGS=\"\$ASAN_CFLAGS\""; } >&5 (: ASAN_CFLAGS="$ASAN_CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } + ;; +esac +fi + +if test ${ASAN_LDFLAGS+y} +then : + + case " $ASAN_LDFLAGS " in #( + *" -XCClinker "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS already contains -XCClinker"; } >&5 + (: ASAN_LDFLAGS already contains -XCClinker) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append ASAN_LDFLAGS " -XCClinker" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + ASAN_LDFLAGS=-XCClinker + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + +if test ${ASAN_LDFLAGS+y} +then : + + case " $ASAN_LDFLAGS " in #( + *" -fsanitize=fuzzer-no-link "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS already contains -fsanitize=fuzzer-no-link"; } >&5 + (: ASAN_LDFLAGS already contains -fsanitize=fuzzer-no-link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append ASAN_LDFLAGS " -fsanitize=fuzzer-no-link" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + ASAN_LDFLAGS=-fsanitize=fuzzer-no-link + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 + (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + if test -z "$FUZZ_ENGINE"; then + FUZZ_ENGINE="-fsanitize=fuzzer" + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-omit-frame-pointer" >&5 +printf %s "checking whether C compiler accepts -fno-omit-frame-pointer... " >&6; } +if test ${ax_cv_check_cflags___fno_omit_frame_pointer+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -fno-omit-frame-pointer" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ax_cv_check_cflags___fno_omit_frame_pointer=yes +else case e in #( + e) ax_cv_check_cflags___fno_omit_frame_pointer=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_omit_frame_pointer" >&5 +printf "%s\n" "$ax_cv_check_cflags___fno_omit_frame_pointer" >&6; } +if test "x$ax_cv_check_cflags___fno_omit_frame_pointer" = xyes +then : + + +if test ${CFLAGS+y} +then : + + case " $CFLAGS " in #( + *" -fno-omit-frame-pointer "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -fno-omit-frame-pointer"; } >&5 + (: CFLAGS already contains -fno-omit-frame-pointer) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append CFLAGS " -fno-omit-frame-pointer" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + CFLAGS=-fno-omit-frame-pointer + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + +else case e in #( + e) : ;; +esac +fi + + # Use CFLAGS, not CPPFLAGS to match oss-fuzz behavior + +if test ${CFLAGS+y} +then : + + case " $CFLAGS " in #( + *" -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"; } >&5 + (: CFLAGS already contains -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append CFLAGS " -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + CFLAGS=-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + printf "%s\n" "#define NO_LEAKS 1" >>confdefs.h + + +else case e in #( + e) + as_fn_error $? "$CC does not support the -fsanitize=fuzzer-no-link flag" "$LINENO" 5 + ;; +esac +fi + + else + # Not using compiler fuzzing support, link with stub library. + FUZZ_ENGINE='$(top_builddir)/lib/fuzzstub/libsudo_fuzzstub.la' + fi + + + if test "$enable_hardening" != "no"; then + # + # Attempt to use _FORTIFY_SOURCE with sprintf. If the headers support + # it but libc does not, __sprintf_chk should be an undefined symbol. + # + O_CPPFLAGS="$CPPFLAGS" + +if test ${CPPFLAGS+y} +then : + + case " $CPPFLAGS " in #( + *" -D_FORTIFY_SOURCE=2 "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS already contains -D_FORTIFY_SOURCE=2"; } >&5 + (: CPPFLAGS already contains -D_FORTIFY_SOURCE=2) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append CPPFLAGS " -D_FORTIFY_SOURCE=2" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 + (: CPPFLAGS="$CPPFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + CPPFLAGS=-D_FORTIFY_SOURCE=2 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CPPFLAGS=\"\$CPPFLAGS\""; } >&5 + (: CPPFLAGS="$CPPFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _FORTIFY_SOURCE may be specified" >&5 +printf %s "checking whether _FORTIFY_SOURCE may be specified... " >&6; } +if test ${sudo_cv_use_fortify_source+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +int +main (void) +{ +char buf[4]; (void)sprintf(buf, "%s", "foo"); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + sudo_cv_use_fortify_source=yes +else case e in #( + e) sudo_cv_use_fortify_source=no + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + sudo_cv_use_fortify_source=yes +else case e in #( + e) sudo_cv_use_fortify_source=no + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_use_fortify_source" >&5 +printf "%s\n" "$sudo_cv_use_fortify_source" >&6; } + if test "$sudo_cv_use_fortify_source" != yes; then + CPPFLAGS="$O_CPPFLAGS" + fi + + if test -n "$GCC" -a "$enable_ssp" != "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler stack protector support" >&5 +printf %s "checking for compiler stack protector support... " >&6; } +if test ${sudo_cv_var_stack_protector+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + # Avoid CFLAGS since the compiler might optimize away our + # test. We don't want CPPFLAGS or LIBS to interfere with + # the test but keep LDFLAGS as it may have an rpath needed + # to find the ssp lib. + _CPPFLAGS="$CPPFLAGS" + _CFLAGS="$CFLAGS" + _LDFLAGS="$LDFLAGS" + _LIBS="$LIBS" + CPPFLAGS= + LIBS= + + sudo_cv_var_stack_protector="-fstack-protector-strong" + CFLAGS="$sudo_cv_var_stack_protector" + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $ac_includes_default +int +main (void) +{ +char buf[1024]; buf[1023] = '\0'; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +else case e in #( + e) + sudo_cv_var_stack_protector="-fstack-protector-all" + CFLAGS="$sudo_cv_var_stack_protector" + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $ac_includes_default +int +main (void) +{ +char buf[1024]; buf[1023] = '\0'; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +else case e in #( + e) + sudo_cv_var_stack_protector="-fstack-protector" + CFLAGS="$sudo_cv_var_stack_protector" + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $ac_includes_default +int +main (void) +{ +char buf[1024]; buf[1023] = '\0'; + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + +else case e in #( + e) + sudo_cv_var_stack_protector=no + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CPPFLAGS="$_CPPFLAGS" + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + LIBS="$_LIBS" + + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_stack_protector" >&5 +printf "%s\n" "$sudo_cv_var_stack_protector" >&6; } + if test X"$sudo_cv_var_stack_protector" != X"no"; then + HARDENING_CFLAGS="$sudo_cv_var_stack_protector" + HARDENING_LDFLAGS="-Wc,$sudo_cv_var_stack_protector" + fi + fi + + # The gcc front-end may accept -fstack-clash-protection even if the + # machine-specific code does not support it. We use a test program + # with a large stack allocation to try to cause the compiler to + # insert the stack clash protection code, or fail if not supported. + if test -n "$GCC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler supports -fstack-clash-protection" >&5 +printf %s "checking whether C compiler supports -fstack-clash-protection... " >&6; } +if test ${sudo_cv_check_cflags___fstack_clash_protection+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fstack-clash-protection" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int main(int argc, char *argv[]) { char buf[16384], *src = argv[0], *dst = buf; while ((*dst++ = *src++) != '\0') { continue; } return buf[argc]; } + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + sudo_cv_check_cflags___fstack_clash_protection=yes +else case e in #( + e) sudo_cv_check_cflags___fstack_clash_protection=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$_CFLAGS" + + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_check_cflags___fstack_clash_protection" >&5 +printf "%s\n" "$sudo_cv_check_cflags___fstack_clash_protection" >&6; } + if test X"$sudo_cv_check_cflags___fstack_clash_protection" = X"yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -fstack-clash-protection" >&5 +printf %s "checking whether the linker accepts -fstack-clash-protection... " >&6; } +if test ${ax_cv_check_ldflags___fstack_clash_protection+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -fstack-clash-protection" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_cv_check_ldflags___fstack_clash_protection=yes +else case e in #( + e) ax_cv_check_ldflags___fstack_clash_protection=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags ;; +esac fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___fstack_clash_protection" >&5 +printf "%s\n" "$ax_cv_check_ldflags___fstack_clash_protection" >&6; } +if test x"$ax_cv_check_ldflags___fstack_clash_protection" = xyes +then : -if test ${ASAN_LDFLAGS+y} +if test ${HARDENING_CFLAGS+y} then : - case " $ASAN_LDFLAGS " in #( - *" -XCClinker "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS already contains -XCClinker"; } >&5 - (: ASAN_LDFLAGS already contains -XCClinker) 2>&5 + case " $HARDENING_CFLAGS " in #( + *" -fstack-clash-protection "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS already contains -fstack-clash-protection"; } >&5 + (: HARDENING_CFLAGS already contains -fstack-clash-protection) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append ASAN_LDFLAGS " -XCClinker" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 - (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + as_fn_append HARDENING_CFLAGS " -fstack-clash-protection" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS=\"\$HARDENING_CFLAGS\""; } >&5 + (: HARDENING_CFLAGS="$HARDENING_CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - ASAN_LDFLAGS=-XCClinker - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 - (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 +else case e in #( + e) + HARDENING_CFLAGS=-fstack-clash-protection + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS=\"\$HARDENING_CFLAGS\""; } >&5 + (: HARDENING_CFLAGS="$HARDENING_CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -if test ${ASAN_LDFLAGS+y} +if test ${HARDENING_LDFLAGS+y} then : - case " $ASAN_LDFLAGS " in #( - *" -fsanitize=fuzzer-no-link "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS already contains -fsanitize=fuzzer-no-link"; } >&5 - (: ASAN_LDFLAGS already contains -fsanitize=fuzzer-no-link) 2>&5 + case " $HARDENING_LDFLAGS " in #( + *" -Wc,-fstack-clash-protection "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS already contains -Wc,-fstack-clash-protection"; } >&5 + (: HARDENING_LDFLAGS already contains -Wc,-fstack-clash-protection) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append ASAN_LDFLAGS " -fsanitize=fuzzer-no-link" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 - (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 + as_fn_append HARDENING_LDFLAGS " -Wc,-fstack-clash-protection" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - ASAN_LDFLAGS=-fsanitize=fuzzer-no-link - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : ASAN_LDFLAGS=\"\$ASAN_LDFLAGS\""; } >&5 - (: ASAN_LDFLAGS="$ASAN_LDFLAGS") 2>&5 +else case e in #( + e) + HARDENING_LDFLAGS=-Wc,-fstack-clash-protection + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } + ;; +esac +fi + +else case e in #( + e) : ;; +esac fi - if test -z "$FUZZ_ENGINE"; then - FUZZ_ENGINE="-fsanitize=fuzzer" - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-omit-frame-pointer" >&5 -printf %s "checking whether C compiler accepts -fno-omit-frame-pointer... " >&6; } -if test ${ax_cv_check_cflags___fno_omit_frame_pointer+y} + fi + + # Check for control-flow transfer instrumentation (Intel CET). + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fcf-protection" >&5 +printf %s "checking whether C compiler accepts -fcf-protection... " >&6; } +if test ${ax_cv_check_cflags___fcf_protection+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -fno-omit-frame-pointer" + CFLAGS="$CFLAGS -fcf-protection" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -31390,160 +34281,151 @@ main (void) _ACEOF if ac_fn_c_try_compile "$LINENO" then : - ax_cv_check_cflags___fno_omit_frame_pointer=yes -else $as_nop - ax_cv_check_cflags___fno_omit_frame_pointer=no + ax_cv_check_cflags___fcf_protection=yes +else case e in #( + e) ax_cv_check_cflags___fcf_protection=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags + CFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_omit_frame_pointer" >&5 -printf "%s\n" "$ax_cv_check_cflags___fno_omit_frame_pointer" >&6; } -if test x"$ax_cv_check_cflags___fno_omit_frame_pointer" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fcf_protection" >&5 +printf "%s\n" "$ax_cv_check_cflags___fcf_protection" >&6; } +if test "x$ax_cv_check_cflags___fcf_protection" = xyes +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -fcf-protection" >&5 +printf %s "checking whether the linker accepts -fcf-protection... " >&6; } +if test ${ax_cv_check_ldflags___fcf_protection+y} then : + printf %s "(cached) " >&6 +else case e in #( + e) + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -fcf-protection" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int +main (void) +{ -if test ${CFLAGS+y} + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ax_cv_check_ldflags___fcf_protection=yes +else case e in #( + e) ax_cv_check_ldflags___fcf_protection=no ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___fcf_protection" >&5 +printf "%s\n" "$ax_cv_check_ldflags___fcf_protection" >&6; } +if test x"$ax_cv_check_ldflags___fcf_protection" = xyes then : - case " $CFLAGS " in #( - *" -fno-omit-frame-pointer "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -fno-omit-frame-pointer"; } >&5 - (: CFLAGS already contains -fno-omit-frame-pointer) 2>&5 + +if test ${HARDENING_CFLAGS+y} +then : + + case " $HARDENING_CFLAGS " in #( + *" -fcf-protection "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS already contains -fcf-protection"; } >&5 + (: HARDENING_CFLAGS already contains -fcf-protection) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append CFLAGS " -fno-omit-frame-pointer" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 - (: CFLAGS="$CFLAGS") 2>&5 + as_fn_append HARDENING_CFLAGS " -fcf-protection" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS=\"\$HARDENING_CFLAGS\""; } >&5 + (: HARDENING_CFLAGS="$HARDENING_CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - CFLAGS=-fno-omit-frame-pointer - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 - (: CFLAGS="$CFLAGS") 2>&5 +else case e in #( + e) + HARDENING_CFLAGS=-fcf-protection + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS=\"\$HARDENING_CFLAGS\""; } >&5 + (: HARDENING_CFLAGS="$HARDENING_CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - -fi - - -else $as_nop - : + ;; +esac fi - # Use CFLAGS, not CPPFLAGS to match oss-fuzz behavior -if test ${CFLAGS+y} +if test ${HARDENING_LDFLAGS+y} then : - case " $CFLAGS " in #( - *" -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION"; } >&5 - (: CFLAGS already contains -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) 2>&5 + case " $HARDENING_LDFLAGS " in #( + *" -Wc,-fcf-protection "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS already contains -Wc,-fcf-protection"; } >&5 + (: HARDENING_LDFLAGS already contains -Wc,-fcf-protection) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append CFLAGS " -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 - (: CFLAGS="$CFLAGS") 2>&5 + as_fn_append HARDENING_LDFLAGS " -Wc,-fcf-protection" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - CFLAGS=-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 - (: CFLAGS="$CFLAGS") 2>&5 +else case e in #( + e) + HARDENING_LDFLAGS=-Wc,-fcf-protection + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi - printf "%s\n" "#define NO_LEAKS 1" >>confdefs.h - -else $as_nop - - as_fn_error $? "$CC does not support the -fsanitize=fuzzer-no-link flag" "$LINENO" 5 - -fi - -else - # Not using compiler fuzzing support, link with stub library. - FUZZ_ENGINE='$(top_builddir)/lib/fuzzstub/libsudo_fuzzstub.la' +else case e in #( + e) : ;; +esac fi -if test -n "$GCC"; then - if test -z "$enable_pie"; then - case "$host_os" in - linux*) - # Attempt to build with PIE support - enable_pie="maybe" - ;; - esac - fi - if test -n "$enable_pie"; then - if test "$enable_pie" = "no"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-pie" >&5 -printf %s "checking whether C compiler accepts -fno-pie... " >&6; } -if test ${ax_cv_check_cflags___fno_pie+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -fno-pie" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main (void) -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ax_cv_check_cflags___fno_pie=yes -else $as_nop - ax_cv_check_cflags___fno_pie=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags +else case e in #( + e) : ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_pie" >&5 -printf "%s\n" "$ax_cv_check_cflags___fno_pie" >&6; } -if test x"$ax_cv_check_cflags___fno_pie" = xyes -then : - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-pie" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -nopie" >&5 -printf %s "checking whether the linker accepts -nopie... " >&6; } -if test ${ax_cv_check_ldflags___nopie+y} + fi + + # Linker-specific hardening flags. + if test X"$with_gnu_ld" = X"yes"; then + # GNU ld, and similar (gold, lld, etc). + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,relro" >&5 +printf %s "checking whether the linker accepts -Wl,-z,relro... " >&6; } +if test ${ax_cv_check_ldflags___Wl__z_relro+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$LDFLAGS - LDFLAGS="$LDFLAGS -nopie" + LDFLAGS="$LDFLAGS -Wl,-z,relro" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -31557,78 +34439,68 @@ main (void) _ACEOF if ac_fn_c_try_link "$LINENO" then : - ax_cv_check_ldflags___nopie=yes -else $as_nop - ax_cv_check_ldflags___nopie=no + ax_cv_check_ldflags___Wl__z_relro=yes +else case e in #( + e) ax_cv_check_ldflags___Wl__z_relro=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags + LDFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___nopie" >&5 -printf "%s\n" "$ax_cv_check_ldflags___nopie" >&6; } -if test x"$ax_cv_check_ldflags___nopie" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_relro" >&5 +printf "%s\n" "$ax_cv_check_ldflags___Wl__z_relro" >&6; } +if test x"$ax_cv_check_ldflags___Wl__z_relro" = xyes then : - PIE_CFLAGS="-fno-pie" - PIE_LDFLAGS="-nopie" - -else $as_nop - : -fi - - CFLAGS="$_CFLAGS" - -else $as_nop - : -fi - - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fPIE" >&5 -printf %s "checking whether C compiler accepts -fPIE... " >&6; } -if test ${ax_cv_check_cflags___fPIE+y} +if test ${HARDENING_LDFLAGS+y} then : - printf %s "(cached) " >&6 -else $as_nop - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -fPIE" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case " $HARDENING_LDFLAGS " in #( + *" -Wl,-z,relro "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS already contains -Wl,-z,relro"; } >&5 + (: HARDENING_LDFLAGS already contains -Wl,-z,relro) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : -int -main (void) -{ + as_fn_append HARDENING_LDFLAGS " -Wl,-z,relro" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ax_cv_check_cflags___fPIE=yes -else $as_nop - ax_cv_check_cflags___fPIE=no +else case e in #( + e) + HARDENING_LDFLAGS=-Wl,-z,relro + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags + +else case e in #( + e) : ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fPIE" >&5 -printf "%s\n" "$ax_cv_check_cflags___fPIE" >&6; } -if test x"$ax_cv_check_cflags___fPIE" = xyes -then : - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fPIE" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -pie" >&5 -printf %s "checking whether the linker accepts -pie... " >&6; } -if test ${ax_cv_check_ldflags___pie+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,now" >&5 +printf %s "checking whether the linker accepts -Wl,-z,now... " >&6; } +if test ${ax_cv_check_ldflags___Wl__z_now+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$LDFLAGS - LDFLAGS="$LDFLAGS -pie" + LDFLAGS="$LDFLAGS -Wl,-z,now" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -31642,88 +34514,68 @@ main (void) _ACEOF if ac_fn_c_try_link "$LINENO" then : - ax_cv_check_ldflags___pie=yes -else $as_nop - ax_cv_check_ldflags___pie=no + ax_cv_check_ldflags___Wl__z_now=yes +else case e in #( + e) ax_cv_check_ldflags___Wl__z_now=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags + LDFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___pie" >&5 -printf "%s\n" "$ax_cv_check_ldflags___pie" >&6; } -if test x"$ax_cv_check_ldflags___pie" = xyes -then : - - if test "$enable_pie" = "maybe"; then - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working PIE support" >&5 -printf %s "checking for working PIE support... " >&6; } -if test ${sudo_cv_working_pie+y} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_now" >&5 +printf "%s\n" "$ax_cv_check_ldflags___Wl__z_now" >&6; } +if test x"$ax_cv_check_ldflags___Wl__z_now" = xyes then : - printf %s "(cached) " >&6 -else $as_nop - if test "$cross_compiling" = yes -then : - sudo_cv_working_pie=no -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int main() { char *p = malloc(1024); if (p == NULL) return 1; memset(p, 0, 1024); return 0; } -_ACEOF -if ac_fn_c_try_run "$LINENO" +if test ${HARDENING_LDFLAGS+y} then : - sudo_cv_working_pie=yes -else $as_nop - sudo_cv_working_pie=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi + case " $HARDENING_LDFLAGS " in #( + *" -Wl,-z,now "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS already contains -Wl,-z,now"; } >&5 + (: HARDENING_LDFLAGS already contains -Wl,-z,now) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_working_pie" >&5 -printf "%s\n" "$sudo_cv_working_pie" >&6; } - if test $sudo_cv_working_pie = yes -then : - enable_pie=yes -fi - - fi - if test "$enable_pie" = "yes"; then - PIE_CFLAGS="-fPIE" - PIE_LDFLAGS="-Wc,-fPIE -pie" - fi + as_fn_append HARDENING_LDFLAGS " -Wl,-z,now" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac -else $as_nop - : +else case e in #( + e) + HARDENING_LDFLAGS=-Wl,-z,now + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi - CFLAGS="$_CFLAGS" - -else $as_nop - : +else case e in #( + e) : ;; +esac fi - fi - fi -fi -if test "$enable_pie" != "yes"; then - # Solaris 11.1 and higher supports tagging binaries to use ASLR - case "$host_os" in - solaris2.1[1-9]|solaris2.[2-9][0-9]) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,aslr" >&5 -printf %s "checking whether the linker accepts -Wl,-z,aslr... " >&6; } -if test ${ax_cv_check_ldflags___Wl__z_aslr+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,noexecstack" >&5 +printf %s "checking whether the linker accepts -Wl,-z,noexecstack... " >&6; } +if test ${ax_cv_check_ldflags___Wl__z_noexecstack+y} then : printf %s "(cached) " >&6 -else $as_nop - +else case e in #( + e) ax_check_save_flags=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-z,aslr" + LDFLAGS="$LDFLAGS -Wl,-z,noexecstack" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -31737,463 +34589,409 @@ main (void) _ACEOF if ac_fn_c_try_link "$LINENO" then : - ax_cv_check_ldflags___Wl__z_aslr=yes -else $as_nop - ax_cv_check_ldflags___Wl__z_aslr=no + ax_cv_check_ldflags___Wl__z_noexecstack=yes +else case e in #( + e) ax_cv_check_ldflags___Wl__z_noexecstack=no ;; +esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags + LDFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_aslr" >&5 -printf "%s\n" "$ax_cv_check_ldflags___Wl__z_aslr" >&6; } -if test x"$ax_cv_check_ldflags___Wl__z_aslr" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_noexecstack" >&5 +printf "%s\n" "$ax_cv_check_ldflags___Wl__z_noexecstack" >&6; } +if test x"$ax_cv_check_ldflags___Wl__z_noexecstack" = xyes then : -if test ${PIE_LDFLAGS+y} +if test ${HARDENING_LDFLAGS+y} then : - case " $PIE_LDFLAGS " in #( - *" -Wl,-z,aslr "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS already contains -Wl,-z,aslr"; } >&5 - (: PIE_LDFLAGS already contains -Wl,-z,aslr) 2>&5 + case " $HARDENING_LDFLAGS " in #( + *" -Wl,-z,noexecstack "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS already contains -Wl,-z,noexecstack"; } >&5 + (: HARDENING_LDFLAGS already contains -Wl,-z,noexecstack) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append PIE_LDFLAGS " -Wl,-z,aslr" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS=\"\$PIE_LDFLAGS\""; } >&5 - (: PIE_LDFLAGS="$PIE_LDFLAGS") 2>&5 + as_fn_append HARDENING_LDFLAGS " -Wl,-z,noexecstack" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - PIE_LDFLAGS=-Wl,-z,aslr - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : PIE_LDFLAGS=\"\$PIE_LDFLAGS\""; } >&5 - (: PIE_LDFLAGS="$PIE_LDFLAGS") 2>&5 +else case e in #( + e) + HARDENING_LDFLAGS=-Wl,-z,noexecstack + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 + (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - -fi - -else $as_nop - : + ;; +esac fi - ;; - esac +else case e in #( + e) : ;; +esac fi -if test "$enable_hardening" != "no" && test "$enable_ssp" != "no"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for compiler stack protector support" >&5 -printf %s "checking for compiler stack protector support... " >&6; } -if test ${sudo_cv_var_stack_protector+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - # Avoid CFLAGS since the compiler might optimize away our test. - # We don't want CPPFLAGS or LIBS to interfere with the test but - # keep LDFLAGS as it may have an rpath needed to find the ssp lib. - _CPPFLAGS="$CPPFLAGS" - _CFLAGS="$CFLAGS" - _LDFLAGS="$LDFLAGS" - _LIBS="$LIBS" - CPPFLAGS= - LIBS= - - sudo_cv_var_stack_protector="-fstack-protector-strong" - CFLAGS="$sudo_cv_var_stack_protector" - LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - $ac_includes_default -int -main (void) -{ -char buf[1024]; buf[1023] = '\0'; - ; - return 0; -} + fi + fi -_ACEOF -if ac_fn_c_try_link "$LINENO" +case "$with_passwd" in +yes|maybe) + AUTH_OBJS="$AUTH_OBJS getspwuid.lo passwd.lo" + if test "${ac_cv_search_crypt}" = "no" then : -else $as_nop - - sudo_cv_var_stack_protector="-fstack-protector-all" - CFLAGS="$sudo_cv_var_stack_protector" - LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no crypt function found, assuming plaintext passwords" >&5 +printf "%s\n" "$as_me: WARNING: no crypt function found, assuming plaintext passwords" >&2;} - $ac_includes_default -int -main (void) -{ -char buf[1024]; buf[1023] = '\0'; - ; - return 0; -} +fi + ;; +*) + printf "%s\n" "#define WITHOUT_PASSWD 1" >>confdefs.h -_ACEOF -if ac_fn_c_try_link "$LINENO" + if test -z "$AUTH_OBJS" then : -else $as_nop - - sudo_cv_var_stack_protector="-fstack-protector" - CFLAGS="$sudo_cv_var_stack_protector" - LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + as_fn_error $? "no authentication methods defined." "$LINENO" 5 - $ac_includes_default -int -main (void) -{ -char buf[1024]; buf[1023] = '\0'; - ; - return 0; -} +fi + ;; +esac +AUTH_OBJS=${AUTH_OBJS# } -_ACEOF -if ac_fn_c_try_link "$LINENO" +if test -n "$LIBS" then : -else $as_nop - - sudo_cv_var_stack_protector=no + L="$LIBS" + LIBS= + for l in ${L}; do + dupe=0 + for sl in ${SUDO_LIBS} ${SUDOERS_LIBS} ${NET_LIBS}; do + test $l = $sl && dupe=1 + done + test $dupe = 0 && LIBS="${LIBS} $l" + done fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - CPPFLAGS="$_CPPFLAGS" - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" - LIBS="$_LIBS" +printf "%s\n" "#define os_init $OS_INIT" >>confdefs.h -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_stack_protector" >&5 -printf "%s\n" "$sudo_cv_var_stack_protector" >&6; } - if test X"$sudo_cv_var_stack_protector" != X"no"; then - HARDENING_CFLAGS="$sudo_cv_var_stack_protector" - HARDENING_LDFLAGS="-Wc,$sudo_cv_var_stack_protector" - fi -fi -if test "$enable_hardening" != "no"; then - # The gcc front-end may accept -fstack-clash-protection even if the - # machine-specific code does not support it. We use a test program - # with a large stack allocation to try to cause the compiler to - # insert the stack clash protection code, or fail if not supported. - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler supports -fstack-clash-protection" >&5 -printf %s "checking whether C compiler supports -fstack-clash-protection... " >&6; } -if test ${sudo_cv_check_cflags___fstack_clash_protection+y} +if test -n "$GCC" then : - printf %s "(cached) " >&6 -else $as_nop - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fstack-clash-protection" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # + # The fallthrough attribute is supported by gcc 7.0 and clang 10. + # This test relies on AC_LANG_WERROR. + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports the fallthrough attribute" >&5 +printf %s "checking whether $CC supports the fallthrough attribute... " >&6; } +if test ${sudo_cv_var_fallthrough_attribute+y} +then : + printf %s "(cached) " >&6 +else case e in #( + e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - int main(int argc, char *argv[]) { char buf[16384], *src = argv[0], *dst = buf; while ((*dst++ = *src++) != '\0') { continue; } return buf[argc]; } + int main(int argc, char *argv[]) + { + int num = argc + 1; + switch (num) { + case 1: + num = 0; + __attribute__((__fallthrough__)); + case 0: + num++; + } + return num; + } _ACEOF if ac_fn_c_try_compile "$LINENO" then : - sudo_cv_check_cflags___fstack_clash_protection=yes -else $as_nop - sudo_cv_check_cflags___fstack_clash_protection=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS="$_CFLAGS" + sudo_cv_var_fallthrough_attribute=yes +else case e in #( + e) + sudo_cv_var_fallthrough_attribute=no + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_check_cflags___fstack_clash_protection" >&5 -printf "%s\n" "$sudo_cv_check_cflags___fstack_clash_protection" >&6; } - if test X"$sudo_cv_check_cflags___fstack_clash_protection" = X"yes"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -fstack-clash-protection" >&5 -printf %s "checking whether the linker accepts -fstack-clash-protection... " >&6; } -if test ${ax_cv_check_ldflags___fstack_clash_protection+y} -then : - printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$LDFLAGS - LDFLAGS="$LDFLAGS -fstack-clash-protection" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ;; +esac +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_fallthrough_attribute" >&5 +printf "%s\n" "$sudo_cv_var_fallthrough_attribute" >&6; } + if test X"$sudo_cv_var_fallthrough_attribute" = X"yes" +then : + + printf "%s\n" "#define HAVE_FALLTHROUGH_ATTRIBUTE 1" >>confdefs.h -int -main (void) -{ - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ax_cv_check_ldflags___fstack_clash_protection=yes -else $as_nop - ax_cv_check_ldflags___fstack_clash_protection=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___fstack_clash_protection" >&5 -printf "%s\n" "$ax_cv_check_ldflags___fstack_clash_protection" >&6; } -if test x"$ax_cv_check_ldflags___fstack_clash_protection" = xyes + if test X"$enable_warnings" = X"yes" -o X"$with_devel" = X"yes" then : -if test ${HARDENING_CFLAGS+y} +if test ${CFLAGS+y} then : - case " $HARDENING_CFLAGS " in #( - *" -fstack-clash-protection "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS already contains -fstack-clash-protection"; } >&5 - (: HARDENING_CFLAGS already contains -fstack-clash-protection) 2>&5 + case " $CFLAGS " in #( + *" -Wall "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wall"; } >&5 + (: CFLAGS already contains -Wall) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append HARDENING_CFLAGS " -fstack-clash-protection" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS=\"\$HARDENING_CFLAGS\""; } >&5 - (: HARDENING_CFLAGS="$HARDENING_CFLAGS") 2>&5 + as_fn_append CFLAGS " -Wall" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - HARDENING_CFLAGS=-fstack-clash-protection - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS=\"\$HARDENING_CFLAGS\""; } >&5 - (: HARDENING_CFLAGS="$HARDENING_CFLAGS") 2>&5 +else case e in #( + e) + CFLAGS=-Wall + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -if test ${HARDENING_LDFLAGS+y} +if test ${CFLAGS+y} then : - case " $HARDENING_LDFLAGS " in #( - *" -Wc,-fstack-clash-protection "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS already contains -Wc,-fstack-clash-protection"; } >&5 - (: HARDENING_LDFLAGS already contains -Wc,-fstack-clash-protection) 2>&5 + case " $CFLAGS " in #( + *" -Wmissing-prototypes "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wmissing-prototypes"; } >&5 + (: CFLAGS already contains -Wmissing-prototypes) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append HARDENING_LDFLAGS " -Wc,-fstack-clash-protection" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 - (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 + as_fn_append CFLAGS " -Wmissing-prototypes" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - HARDENING_LDFLAGS=-Wc,-fstack-clash-protection - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 - (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 +else case e in #( + e) + CFLAGS=-Wmissing-prototypes + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - -fi - - -else $as_nop - : + ;; +esac fi - fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fcf-protection" >&5 -printf %s "checking whether C compiler accepts -fcf-protection... " >&6; } -if test ${ax_cv_check_cflags___fcf_protection+y} +if test ${CFLAGS+y} then : - printf %s "(cached) " >&6 -else $as_nop - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -fcf-protection" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case " $CFLAGS " in #( + *" -Wno-unknown-pragmas "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wno-unknown-pragmas"; } >&5 + (: CFLAGS already contains -Wno-unknown-pragmas) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : -int -main (void) -{ + as_fn_append CFLAGS " -Wno-unknown-pragmas" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ax_cv_check_cflags___fcf_protection=yes -else $as_nop - ax_cv_check_cflags___fcf_protection=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags +else case e in #( + e) + CFLAGS=-Wno-unknown-pragmas + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fcf_protection" >&5 -printf "%s\n" "$ax_cv_check_cflags___fcf_protection" >&6; } -if test x"$ax_cv_check_cflags___fcf_protection" = xyes -then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -fcf-protection" >&5 -printf %s "checking whether the linker accepts -fcf-protection... " >&6; } -if test ${ax_cv_check_ldflags___fcf_protection+y} + +if test ${CFLAGS+y} then : - printf %s "(cached) " >&6 -else $as_nop - ax_check_save_flags=$LDFLAGS - LDFLAGS="$LDFLAGS -fcf-protection" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case " $CFLAGS " in #( + *" -Wpointer-arith "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wpointer-arith"; } >&5 + (: CFLAGS already contains -Wpointer-arith) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : -int -main (void) -{ + as_fn_append CFLAGS " -Wpointer-arith" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO" -then : - ax_cv_check_ldflags___fcf_protection=yes -else $as_nop - ax_cv_check_ldflags___fcf_protection=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags +else case e in #( + e) + CFLAGS=-Wpointer-arith + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___fcf_protection" >&5 -printf "%s\n" "$ax_cv_check_ldflags___fcf_protection" >&6; } -if test x"$ax_cv_check_ldflags___fcf_protection" = xyes -then : -if test ${HARDENING_CFLAGS+y} +if test ${CFLAGS+y} then : - case " $HARDENING_CFLAGS " in #( - *" -fcf-protection "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS already contains -fcf-protection"; } >&5 - (: HARDENING_CFLAGS already contains -fcf-protection) 2>&5 + case " $CFLAGS " in #( + *" -Wshadow "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wshadow"; } >&5 + (: CFLAGS already contains -Wshadow) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append HARDENING_CFLAGS " -fcf-protection" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS=\"\$HARDENING_CFLAGS\""; } >&5 - (: HARDENING_CFLAGS="$HARDENING_CFLAGS") 2>&5 + as_fn_append CFLAGS " -Wshadow" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - HARDENING_CFLAGS=-fcf-protection - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_CFLAGS=\"\$HARDENING_CFLAGS\""; } >&5 - (: HARDENING_CFLAGS="$HARDENING_CFLAGS") 2>&5 +else case e in #( + e) + CFLAGS=-Wshadow + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -if test ${HARDENING_LDFLAGS+y} +if test ${CFLAGS+y} then : - case " $HARDENING_LDFLAGS " in #( - *" -Wc,-fcf-protection "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS already contains -Wc,-fcf-protection"; } >&5 - (: HARDENING_LDFLAGS already contains -Wc,-fcf-protection) 2>&5 + case " $CFLAGS " in #( + *" -Wsign-compare "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wsign-compare"; } >&5 + (: CFLAGS already contains -Wsign-compare) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append HARDENING_LDFLAGS " -Wc,-fcf-protection" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 - (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 + as_fn_append CFLAGS " -Wsign-compare" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - HARDENING_LDFLAGS=-Wc,-fcf-protection - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : HARDENING_LDFLAGS=\"\$HARDENING_LDFLAGS\""; } >&5 - (: HARDENING_LDFLAGS="$HARDENING_LDFLAGS") 2>&5 +else case e in #( + e) + CFLAGS=-Wsign-compare + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -else $as_nop - : -fi +if test ${CFLAGS+y} +then : + + case " $CFLAGS " in #( + *" -Wwrite-strings "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wwrite-strings"; } >&5 + (: CFLAGS already contains -Wwrite-strings) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + as_fn_append CFLAGS " -Wwrite-strings" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac -else $as_nop - : +else case e in #( + e) + CFLAGS=-Wwrite-strings + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,relro" >&5 -printf %s "checking whether the linker accepts -Wl,-z,relro... " >&6; } -if test ${ax_cv_check_ldflags___Wl__z_relro+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wvla" >&5 +printf %s "checking whether C compiler accepts -Wvla... " >&6; } +if test ${ax_cv_check_cflags___Wvla+y} then : printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-z,relro" +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Wvla" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -32205,66 +35003,69 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - ax_cv_check_ldflags___Wl__z_relro=yes -else $as_nop - ax_cv_check_ldflags___Wl__z_relro=no + ax_cv_check_cflags___Wvla=yes +else case e in #( + e) ax_cv_check_cflags___Wvla=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_relro" >&5 -printf "%s\n" "$ax_cv_check_ldflags___Wl__z_relro" >&6; } -if test x"$ax_cv_check_ldflags___Wl__z_relro" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wvla" >&5 +printf "%s\n" "$ax_cv_check_cflags___Wvla" >&6; } +if test "x$ax_cv_check_cflags___Wvla" = xyes then : -if test ${LDFLAGS+y} +if test ${CFLAGS+y} then : - case " $LDFLAGS " in #( - *" -Wl,-z,relro "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS already contains -Wl,-z,relro"; } >&5 - (: LDFLAGS already contains -Wl,-z,relro) 2>&5 + case " $CFLAGS " in #( + *" -Wvla "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wvla"; } >&5 + (: CFLAGS already contains -Wvla) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append LDFLAGS " -Wl,-z,relro" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 + as_fn_append CFLAGS " -Wvla" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - LDFLAGS=-Wl,-z,relro - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 +else case e in #( + e) + CFLAGS=-Wvla + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -else $as_nop - : +else case e in #( + e) : ;; +esac fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,now" >&5 -printf %s "checking whether the linker accepts -Wl,-z,now... " >&6; } -if test ${ax_cv_check_ldflags___Wl__z_now+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Walloca" >&5 +printf %s "checking whether C compiler accepts -Walloca... " >&6; } +if test ${ax_cv_check_cflags___Walloca+y} then : printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-z,now" +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Walloca" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -32276,66 +35077,69 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - ax_cv_check_ldflags___Wl__z_now=yes -else $as_nop - ax_cv_check_ldflags___Wl__z_now=no + ax_cv_check_cflags___Walloca=yes +else case e in #( + e) ax_cv_check_cflags___Walloca=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_now" >&5 -printf "%s\n" "$ax_cv_check_ldflags___Wl__z_now" >&6; } -if test x"$ax_cv_check_ldflags___Wl__z_now" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Walloca" >&5 +printf "%s\n" "$ax_cv_check_cflags___Walloca" >&6; } +if test "x$ax_cv_check_cflags___Walloca" = xyes then : -if test ${LDFLAGS+y} +if test ${CFLAGS+y} then : - case " $LDFLAGS " in #( - *" -Wl,-z,now "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS already contains -Wl,-z,now"; } >&5 - (: LDFLAGS already contains -Wl,-z,now) 2>&5 + case " $CFLAGS " in #( + *" -Walloca "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Walloca"; } >&5 + (: CFLAGS already contains -Walloca) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append LDFLAGS " -Wl,-z,now" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 + as_fn_append CFLAGS " -Walloca" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - LDFLAGS=-Wl,-z,now - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 +else case e in #( + e) + CFLAGS=-Walloca + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - + ;; +esac fi -else $as_nop - : +else case e in #( + e) : ;; +esac fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,noexecstack" >&5 -printf %s "checking whether the linker accepts -Wl,-z,noexecstack... " >&6; } -if test ${ax_cv_check_ldflags___Wl__z_noexecstack+y} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wtrampolines" >&5 +printf %s "checking whether C compiler accepts -Wtrampolines... " >&6; } +if test ${ax_cv_check_cflags___Wtrampolines+y} then : printf %s "(cached) " >&6 -else $as_nop - - ax_check_save_flags=$LDFLAGS - LDFLAGS="$LDFLAGS -Wl,-z,noexecstack" +else case e in #( + e) + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Wtrampolines" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -32347,185 +35151,178 @@ main (void) return 0; } _ACEOF -if ac_fn_c_try_link "$LINENO" +if ac_fn_c_try_compile "$LINENO" then : - ax_cv_check_ldflags___Wl__z_noexecstack=yes -else $as_nop - ax_cv_check_ldflags___Wl__z_noexecstack=no + ax_cv_check_cflags___Wtrampolines=yes +else case e in #( + e) ax_cv_check_cflags___Wtrampolines=no ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam \ - conftest$ac_exeext conftest.$ac_ext - LDFLAGS=$ax_check_save_flags +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS=$ax_check_save_flags ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__z_noexecstack" >&5 -printf "%s\n" "$ax_cv_check_ldflags___Wl__z_noexecstack" >&6; } -if test x"$ax_cv_check_ldflags___Wl__z_noexecstack" = xyes +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wtrampolines" >&5 +printf "%s\n" "$ax_cv_check_cflags___Wtrampolines" >&6; } +if test "x$ax_cv_check_cflags___Wtrampolines" = xyes then : -if test ${LDFLAGS+y} +if test ${CFLAGS+y} then : - case " $LDFLAGS " in #( - *" -Wl,-z,noexecstack "*) : - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS already contains -Wl,-z,noexecstack"; } >&5 - (: LDFLAGS already contains -Wl,-z,noexecstack) 2>&5 + case " $CFLAGS " in #( + *" -Wtrampolines "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wtrampolines"; } >&5 + (: CFLAGS already contains -Wtrampolines) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; #( *) : - as_fn_append LDFLAGS " -Wl,-z,noexecstack" - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 + as_fn_append CFLAGS " -Wtrampolines" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } ;; esac -else $as_nop - - LDFLAGS=-Wl,-z,noexecstack - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : LDFLAGS=\"\$LDFLAGS\""; } >&5 - (: LDFLAGS="$LDFLAGS") 2>&5 +else case e in #( + e) + CFLAGS=-Wtrampolines + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } - -fi - -else $as_nop - : -fi - + ;; +esac fi -case "$with_passwd" in -yes|maybe) - AUTH_OBJS="$AUTH_OBJS getspwuid.lo passwd.lo" - if test "${ac_cv_search_crypt}" = "no"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no crypt function found, assuming plaintext passwords" >&5 -printf "%s\n" "$as_me: WARNING: no crypt function found, assuming plaintext passwords" >&2;} - fi - ;; -*) - printf "%s\n" "#define WITHOUT_PASSWD 1" >>confdefs.h - - if test -z "$AUTH_OBJS"; then - as_fn_error $? "no authentication methods defined." "$LINENO" 5 - fi - ;; +else case e in #( + e) : ;; esac -AUTH_OBJS=${AUTH_OBJS# } - -if test -n "$LIBS"; then - L="$LIBS" - LIBS= - for l in ${L}; do - dupe=0 - for sl in ${SUDO_LIBS} ${SUDOERS_LIBS} ${NET_LIBS}; do - test $l = $sl && dupe=1 - done - test $dupe = 0 && LIBS="${LIBS} $l" - done fi - -printf "%s\n" "#define os_init $OS_INIT" >>confdefs.h + if test X"$sudo_cv_var_fallthrough_attribute" = X"yes" +then : -if test -n "$GCC"; then - if test X"$enable_warnings" = X"yes" -o X"$with_devel" = X"yes"; then - CFLAGS="${CFLAGS} -Wall -Wsign-compare -Wpointer-arith -Wno-unknown-pragmas -Wmissing-prototypes -Wwrite-strings" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wshadow" >&5 -printf %s "checking whether C compiler accepts -Wshadow... " >&6; } -if test ${ax_cv_check_cflags___Wshadow+y} +if test ${CFLAGS+y} then : - printf %s "(cached) " >&6 -else $as_nop - ax_check_save_flags=$CFLAGS - CFLAGS="$CFLAGS -Wshadow" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ + case " $CFLAGS " in #( + *" -Wimplicit-fallthrough "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wimplicit-fallthrough"; } >&5 + (: CFLAGS already contains -Wimplicit-fallthrough) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : -int -main (void) -{ + as_fn_append CFLAGS " -Wimplicit-fallthrough" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO" -then : - ax_cv_check_cflags___Wshadow=yes -else $as_nop - ax_cv_check_cflags___Wshadow=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext - CFLAGS=$ax_check_save_flags +else case e in #( + e) + CFLAGS=-Wimplicit-fallthrough + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wshadow" >&5 -printf "%s\n" "$ax_cv_check_cflags___Wshadow" >&6; } -if test x"$ax_cv_check_cflags___Wshadow" = xyes -then : - CFLAGS="$CFLAGS -Wshadow" -else $as_nop - : + + fi - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC supports the fallthrough attribute" >&5 -printf %s "checking whether $CC supports the fallthrough attribute... " >&6; } -if test ${sudo_cv_var_fallthrough_attribute+y} +fi + if test X"$enable_werror" = X"yes" then : - printf %s "(cached) " >&6 -else $as_nop - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - int main(int argc, char *argv[]) - { - int num = argc + 1; - switch (num) { - case 1: - num = 0; - __attribute__((__fallthrough__)); - case 0: - num++; - } - return num; - } -_ACEOF -if ac_fn_c_try_compile "$LINENO" +if test ${CFLAGS+y} then : - sudo_cv_var_fallthrough_attribute=yes - -else $as_nop + case " $CFLAGS " in #( + *" -Werror "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Werror"; } >&5 + (: CFLAGS already contains -Werror) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : - sudo_cv_var_fallthrough_attribute=no + as_fn_append CFLAGS " -Werror" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +else case e in #( + e) + CFLAGS=-Werror + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac fi -rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext -fi -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $sudo_cv_var_fallthrough_attribute" >&5 -printf "%s\n" "$sudo_cv_var_fallthrough_attribute" >&6; } - if test X"$sudo_cv_var_fallthrough_attribute" = X"yes"; then - printf "%s\n" "#define HAVE_FALLTHROUGH_ATTRIBUTE 1" >>confdefs.h - CFLAGS="$CFLAGS -Wimplicit-fallthrough" - fi - fi - if test X"$enable_werror" = X"yes"; then - CFLAGS="${CFLAGS} -Werror" - fi +fi case "$host_os" in # Avoid unwanted warnings on macOS - darwin*) CFLAGS="${CFLAGS} -Wno-deprecated-declarations";; + darwin*) +if test ${CFLAGS+y} +then : + + case " $CFLAGS " in #( + *" -Wno-deprecated-declarations "*) : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains -Wno-deprecated-declarations"; } >&5 + (: CFLAGS already contains -Wno-deprecated-declarations) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } ;; #( + *) : + + as_fn_append CFLAGS " -Wno-deprecated-declarations" + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac + +else case e in #( + e) + CFLAGS=-Wno-deprecated-declarations + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5 + (: CFLAGS="$CFLAGS") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + ;; +esac +fi +;; esac + fi CROSS_COMPILING="$cross_compiling" @@ -32545,28 +35342,28 @@ fi _intercept_file= while test X"$intercept_file" != X"$_intercept_file"; do _intercept_file="$intercept_file" - eval intercept_file="$_intercept_file" + eval "intercept_file=\"$_intercept_file\"" done # Update exec_prefix in noexec_file _noexec_file= while test X"$noexec_file" != X"$_noexec_file"; do _noexec_file="$noexec_file" - eval noexec_file="$_noexec_file" + eval "noexec_file=\"$_noexec_file\"" done # Update exec_prefix in sesh_file _sesh_file= while test X"$sesh_file" != X"$_sesh_file"; do _sesh_file="$sesh_file" - eval sesh_file="$_sesh_file" + eval "sesh_file=\"$_sesh_file\"" done # Update exec_prefix in plugindir _plugindir= while test X"$plugindir" != X"$_plugindir"; do _plugindir="$plugindir" - eval plugindir="$_plugindir" + eval "plugindir=\"$_plugindir\"" done exec_prefix="$oexec_prefix" @@ -32590,7 +35387,9 @@ case "$EXAMPLES" in ;; esac -if test X"$enable_intercept" != X"no"; then +if test X"$enable_intercept" != X"no" +then : + SUDO_OBJS="${SUDO_OBJS} intercept.pb-c.o" PROGS="${PROGS} sudo_intercept.la" INSTALL_INTERCEPT="install-intercept" @@ -32599,8 +35398,11 @@ if test X"$enable_intercept" != X"no"; then #define _PATH_SUDO_INTERCEPT "$intercept_file" EOF + fi -if test X"$with_noexec" != X"no"; then +if test X"$with_noexec" != X"no" +then : + PROGS="${PROGS} sudo_noexec.la" INSTALL_NOEXEC="install-noexec" @@ -32608,19 +35410,28 @@ if test X"$with_noexec" != X"no"; then #define _PATH_SUDO_NOEXEC "$noexec_file" EOF + fi -if test X"$with_selinux" != X"no"; then +if test X"$with_selinux" != X"no" +then : + cat >>confdefs.h <>confdefs.h <>confdefs.h <>confdefs.h -else + +else case e in #( + e) cat >>confdefs.h <confcache <<\_ACEOF # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the +# 'ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* 'ac_cv_foo' will be assigned the # following values. _ACEOF @@ -32730,14 +35551,14 @@ printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes: double-quote + # 'set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) - # `set' quotes correctly as required by POSIX, so do not add quotes. + # 'set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | @@ -32798,6 +35619,18 @@ LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs +# Check whether --enable-year2038 was given. +if test ${enable_year2038+y} +then : + enableval=$enable_year2038; +fi + +# Check whether --enable-largefile was given. +if test ${enable_largefile+y} +then : + enableval=$enable_largefile; +fi + : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 @@ -32827,7 +35660,6 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh -as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh @@ -32836,12 +35668,13 @@ then : # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST -else $as_nop - case `(set -o) 2>/dev/null` in #( +else case e in #( + e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; +esac ;; esac fi @@ -32913,7 +35746,7 @@ IFS=$as_save_IFS ;; esac -# We did not find ourselves, most probably we were run as `sh COMMAND' +# We did not find ourselves, most probably we were run as 'sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 @@ -32942,7 +35775,6 @@ as_fn_error () } # as_fn_error - # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. @@ -32982,11 +35814,12 @@ then : { eval $1+=\$2 }' -else $as_nop - as_fn_append () +else case e in #( + e) as_fn_append () { eval $1=\$$1\$2 - } + } ;; +esac fi # as_fn_append # as_fn_arith ARG... @@ -33000,11 +35833,12 @@ then : { as_val=$(( $* )) }' -else $as_nop - as_fn_arith () +else case e in #( + e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` - } + } ;; +esac fi # as_fn_arith @@ -33087,9 +35921,9 @@ if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. + # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then @@ -33170,10 +36004,12 @@ as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" +as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" +as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" +as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" +as_tr_sh="eval sed '$as_sed_sh'" # deprecated exec 6>&1 @@ -33188,8 +36024,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sudo $as_me 1.9.12p2, which was -generated by GNU Autoconf 2.71. Invocation command line was +This file was extended by sudo $as_me 1.9.13, which was +generated by GNU Autoconf 2.72a. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -33221,7 +36057,7 @@ _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ -\`$as_me' instantiates files and other configuration actions +'$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. @@ -33256,11 +36092,11 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -sudo config.status 1.9.12p2 -configured by $0, generated by GNU Autoconf 2.71, +sudo config.status 1.9.13 +configured by $0, generated by GNU Autoconf 2.72a, with options \\"\$ac_cs_config\\" -Copyright (C) 2021 Free Software Foundation, Inc. +Copyright (C) 2023 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -33320,8 +36156,8 @@ do ac_need_defaults=false;; --he | --h) # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; + as_fn_error $? "ambiguous option: '$1' +Try '$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ @@ -33329,8 +36165,8 @@ Try \`$0 --help' for more information.";; ac_cs_silent=: ;; # This is an error. - -*) as_fn_error $? "unrecognized option: \`$1' -Try \`$0 --help' for more information." ;; + -*) as_fn_error $? "unrecognized option: '$1' +Try '$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; @@ -33709,7 +36545,7 @@ do "plugins/sudoers/sudoers") CONFIG_FILES="$CONFIG_FILES plugins/sudoers/sudoers" ;; "harness") CONFIG_COMMANDS="$CONFIG_COMMANDS harness" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;; esac done @@ -33729,7 +36565,7 @@ fi # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. +# after its creation but before its name has been assigned to '$tmp'. $debug || { tmp= ac_tmp= @@ -33753,7 +36589,7 @@ ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. +# This happens for instance with './config.status config.h'. if test -n "$CONFIG_FILES"; then @@ -33911,13 +36747,13 @@ fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. +# This happens for instance with './config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF -# Transform confdefs.h into an awk script `defines.awk', embedded as +# Transform confdefs.h into an awk script 'defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. @@ -34027,7 +36863,7 @@ do esac case $ac_mode$ac_tag in :[FHL]*:*);; - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac @@ -34049,19 +36885,19 @@ do -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. + # because $ac_f cannot contain ':'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done - # Let's still pretend it is `configure' which instantiates (i.e., don't + # Let's still pretend it is 'configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` @@ -34185,7 +37021,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 esac _ACEOF -# Neutralize VPATH when `$srcdir' = `.'. +# Neutralize VPATH when '$srcdir' = '.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 @@ -34214,9 +37050,9 @@ test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir' which seems to be undefined. Please make sure it is defined" >&5 -printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" @@ -34864,10 +37700,13 @@ echo " prefix : $prefix" >&6 echo " compiler : $CC" >&6 echo " compiler options : $CFLAGS" >&6 echo " preprocessor options : $CPPFLAGS" >&6 -echo " linker options : $LDFLAGS" >&6 echo " front-end libraries : $SUDO_LIBS" >&6 -echo " sudoers libraries : $SUDOERS_LIBS" >&6 +echo " front-end linker options : $SUDO_LDFLAGS" >&6 +echo " network libraries : $NET_LIBS" >&6 echo " extra libraries : $LIBS" >&6 +echo " extra linker options : $LDFLAGS" >&6 +echo " sudoers libraries : $SUDOERS_LIBS" >&6 +echo " sudoers linker options : $SUDOERS_LDFLAGS" >&6 if test "${enable_sanitizer-no}" != "no"; then echo " sanitizer options : ${enable_sanitizer}" >&6 fi @@ -34965,6 +37804,10 @@ echo " mail if command not allowed : ${mail_no_perms}" >&6 echo " Pathnames:" >&6 echo " log directory : ${log_dir}" >&6 echo " plugin directory : ${plugindir}" >&6 +echo " sudoers plugin : ${sudoers_plugin}" >&6 +if test "${enable_python-no}" != "no"; then + echo " python plugin : ${python_plugin}" >&6 +fi echo " run directory : ${rundir}" >&6 echo " var directory : ${vardir}" >&6 echo " I/O log directory : ${iolog_dir}" >&6 @@ -34979,6 +37822,7 @@ if test ${with_netsvc-"no"} != "no"; then elif test ${with_nsswitch-"yes"} != "no"; then echo " nsswitch file : ${nsswitch_conf}" >&6 fi +echo " intercept file : ${intercept_file}" >&6 echo " noexec file : ${noexec_file}" >&6 echo " secure path : ${with_secure_path-no}" >&6 echo " askpass helper file : ${with_askpass-no}" >&6 @@ -35012,25 +37856,34 @@ if test "${enable_env_debug+set}" = "set"; then fi echo "" >&6 -if test "$openssl_missing" = "yes"; then +if test "$openssl_missing" = "yes" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: OpenSSL dev libraries not found, Sudo logsrv connections will not be encrypted." >&5 printf "%s\n" "$as_me: WARNING: OpenSSL dev libraries not found, Sudo logsrv connections will not be encrypted." >&2;} + fi -if test "$with_pam" = "yes"; then +if test "$with_pam" = "yes" +then : + case $host_os in - hpux*|hiuxmpp*) - if test -f /usr/lib/security/libpam_hpsec.so.1; then + hpux*) + if test -f /usr/lib/security/libpam_hpsec.so.1 +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: you may wish to add the following line to /etc/pam.conf" >&5 printf "%s\n" "$as_me: you may wish to add the following line to /etc/pam.conf" >&6;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: sudo session required libpam_hpsec.so.1 bypass_umask bypass_last_login" >&5 printf "%s\n" "$as_me: sudo session required libpam_hpsec.so.1 bypass_umask bypass_last_login" >&6;} - fi + +fi ;; linux*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: you will need to customize examples/pam.conf and install it as /etc/pam.d/sudo" >&5 printf "%s\n" "$as_me: you will need to customize examples/pam.conf and install it as /etc/pam.d/sudo" >&6;} ;; esac + fi case "$rundir" in /run/*|/var/run/*) @@ -35040,13 +37893,15 @@ case "$rundir" in clear_rundir=1 ;; esac -if test $clear_rundir -eq 1; then +if test $clear_rundir -eq 1 +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: the $rundir/ts directory must be cleared at boot time." >&5 printf "%s\n" "$as_me: warning: the $rundir/ts directory must be cleared at boot time." >&6;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: You may need to create a startup item to do this." >&5 printf "%s\n" "$as_me: You may need to create a startup item to do this." >&6;} -fi +fi diff --git a/configure.ac b/configure.ac index 8eccad7e46..174c5775d9 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ dnl Use the top-level autogen.sh script to generate configure and config.h.in dnl dnl SPDX-License-Identifier: ISC dnl -dnl Copyright (c) 1994-1996, 1998-2022 Todd C. Miller +dnl Copyright (c) 1994-1996, 1998-2023 Todd C. Miller dnl dnl Permission to use, copy, modify, and distribute this software for any dnl purpose with or without fee is hereby granted, provided that the above @@ -18,7 +18,7 @@ dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. dnl AC_PREREQ([2.70]) -AC_INIT([sudo], [1.9.12p2], [https://bugzilla.sudo.ws/], [sudo]) +AC_INIT([sudo], [1.9.13], [https://bugzilla.sudo.ws/], [sudo]) AC_CONFIG_HEADERS([config.h pathnames.h]) AC_CONFIG_SRCDIR([src/sudo.c]) AC_CONFIG_AUX_DIR([scripts]) @@ -178,6 +178,8 @@ AC_SUBST([editor]) AC_SUBST([pam_session]) AC_SUBST([pam_login_service]) AC_SUBST([plugindir]) +AC_SUBST([sudoers_plugin]) +AC_SUBST([python_plugin]) # # Begin initial values for man page substitution # @@ -226,6 +228,8 @@ secure_path="not set" pam_session=on pam_login_service=sudo plugindir="$libexecdir/sudo" +sudoers_plugin="sudoers.so" +python_plugin="python_plugin.so" DIGEST=digest.lo devsearch="/dev/pts:/dev/vt:/dev/term:/dev/zcons:/dev/pty:/dev" # @@ -735,9 +739,7 @@ AC_ARG_WITH(mail-if-no-user, [AS_HELP_STRING([--without-mail-if-no-user], [do no *) AC_MSG_ERROR([--with-mail-if-no-user does not take an argument.]) ;; esac]) -if test "$mail_no_user" = "on"; then - AC_DEFINE(SEND_MAIL_WHEN_NO_USER) -fi +AS_IF([test "$mail_no_user" = "on"], [AC_DEFINE(SEND_MAIL_WHEN_NO_USER)]) AC_ARG_WITH(mail-if-no-host, [AS_HELP_STRING([--with-mail-if-no-host], [send mail if user in sudoers but not for this host])], [case $with_mail_if_no_host in @@ -821,7 +823,7 @@ AC_ARG_WITH(timedir, [AS_HELP_STRING([--with-timedir=DIR], [deprecated])], ;; esac]) -AC_ARG_WITH(rundir, [AS_HELP_STRING([--with-rundir=DIR], [directory for sudo-specific files that do not survive a system reboot, e.g. `/var/run/sudo'])], +AC_ARG_WITH(rundir, [AS_HELP_STRING([--with-rundir=DIR], [directory for sudo-specific files that do not survive a system reboot, e.g. '/var/run/sudo'])], [case $with_rundir in yes) AC_MSG_ERROR([must give --with-rundir an argument.]) ;; @@ -829,7 +831,7 @@ AC_ARG_WITH(rundir, [AS_HELP_STRING([--with-rundir=DIR], [directory for sudo-spe ;; esac]) -AC_ARG_WITH(vardir, [AS_HELP_STRING([--with-vardir=DIR], [directory for sudo-specific files that survive a system reboot, e.g. `/var/db/sudo' or `/var/lib/sudo'])], +AC_ARG_WITH(vardir, [AS_HELP_STRING([--with-vardir=DIR], [directory for sudo-specific files that survive a system reboot, e.g. '/var/db/sudo' or '/var/lib/sudo'])], [case $with_vardir in yes) AC_MSG_ERROR([must give --with-vardir an argument.]) ;; @@ -971,9 +973,7 @@ AC_ARG_WITH(env-editor, [AS_HELP_STRING([--with-env-editor], [Use the environmen *) AC_MSG_ERROR([--with-env-editor does not take an argument.]) ;; esac]) -if test "$env_editor" = "on"; then - AC_DEFINE(ENV_EDITOR) -fi +AS_IF([test "$env_editor" = "on"], [AC_DEFINE(ENV_EDITOR)]) AC_ARG_WITH(passwd-tries, [AS_HELP_STRING([--with-passwd-tries], [number of tries to enter password (default is 3)])], [case $with_passwd_tries in @@ -1149,11 +1149,11 @@ AC_ARG_WITH(askpass, [AS_HELP_STRING([--with-askpass=PATH], [Fully qualified pat esac], [ with_askpass=no ]) -if test X"$with_askpass" != X"no"; then +AS_IF([test X"$with_askpass" != X"no"], [ SUDO_DEFINE_UNQUOTED(_PATH_SUDO_ASKPASS, "$with_askpass") -else +], [ SUDO_DEFINE_UNQUOTED(_PATH_SUDO_ASKPASS, NULL) -fi +]) AC_ARG_WITH(exampledir, [AS_HELP_STRING([--with-exampledir=DIR], [path to install sudo examples in])], [case $with_exampledir in @@ -1270,7 +1270,7 @@ AC_ARG_ENABLE(log-host, *) AC_MSG_WARN([ignoring unknown argument to --enable-log-host: $enableval]) ;; esac -], AC_MSG_RESULT(no)) +]) AC_ARG_ENABLE(noargs-shell, [AS_HELP_STRING([--enable-noargs-shell], [If sudo is given no arguments run a shell])], @@ -1334,11 +1334,11 @@ AC_ARG_ENABLE(env_reset, ;; esac ]) -if test "$env_reset" = "on"; then +AS_IF([test "$env_reset" = "on"], [ AC_DEFINE(ENV_RESET, 1) -else +], [ AC_DEFINE(ENV_RESET, 0) -fi +]) AC_ARG_ENABLE(warnings, [AS_HELP_STRING([--enable-warnings], [Whether to enable compiler warnings])], @@ -1373,9 +1373,9 @@ AC_ARG_ENABLE(pie, AC_ARG_ENABLE(sanitizer, [AS_HELP_STRING([--enable-sanitizer], [Build sudo with sanitizer support.])], [ -if test X"$enable_sanitizer" = X"yes"; then - enable_sanitizer="-fsanitize=address,undefined" -fi + AS_IF([test X"$enable_sanitizer" = X"yes"], [ + enable_sanitizer="-fsanitize=address,undefined" + ]) ], [enable_sanitizer=no]) AC_ARG_ENABLE(fuzzer, @@ -1478,7 +1478,7 @@ AC_ARG_WITH(selinux, [AS_HELP_STRING([--with-selinux], [enable SELinux support]) SUDO_OBJS="${SUDO_OBJS} selinux.o" PROGS="${PROGS} sesh" SEMAN=1 - AC_CHECK_LIB(selinux, setkeycreatecon, + AC_CHECK_LIB([selinux], [setkeycreatecon], [AC_DEFINE(HAVE_SETKEYCREATECON)]) ;; no) ;; @@ -1522,9 +1522,7 @@ AC_DEFINE_UNQUOTED(TIMESTAMP_TYPE, $timestamp_type) AC_ARG_ENABLE(offensive_insults, [AS_HELP_STRING([--enable-offensive-insults], [Enable potentially offensive sudo insults.])], [], [enable_offensive_insults=no]) -if test "$enable_offensive_insults" = "yes"; then - AC_DEFINE(OFFENSIVE_INSULTS) -fi +AS_IF([test "$enable_offensive_insults" = "yes"], [AC_DEFINE(OFFENSIVE_INSULTS)]) AC_ARG_ENABLE(package_build, [AS_HELP_STRING([--enable-package-build], [Enable options for package building.])], @@ -1568,14 +1566,14 @@ AC_ARG_ENABLE(log-client, esac ], [AC_DEFINE([SUDOERS_LOG_CLIENT])]) -if test X"${enable_log_client}${enable_log_server}" = X"nono"; then +AS_IF([test X"${enable_log_client}${enable_log_server}" = X"nono"], [ # No need for liblogsrv.la LOGSRV_SRC= LIBLOGSRV= -fi -if test X"$LOGSRVD_SRC" != X""; then +]) +AS_IF([test X"$LOGSRVD_SRC" != X""], [ PPFILES="$PPFILES "'$(srcdir)/etc/sudo-logsrvd.pp' -fi +]) dnl dnl Do OpenSSL / wolfSSL / gcrypt after logsrv options @@ -1584,9 +1582,9 @@ AC_ARG_ENABLE(openssl, [AS_HELP_STRING([--enable-openssl], [Use OpenSSL's TLS and sha2 functions])], [], [ # Enable OpenSSL by default unless logsrvd and client are disabled - if test X"${enable_log_client}${enable_log_server}" != X"nono"; then + AS_IF([test X"${enable_log_client}${enable_log_server}" != X"nono"], [ enable_openssl=maybe - fi + ]) ]) AC_ARG_ENABLE(openssl-pkgconfig-template, [AS_HELP_STRING([--enable-openssl-pkgconfig-template], [A printf format string used to construct the OpenSSL pkg-config name])], @@ -1599,10 +1597,10 @@ AC_ARG_ENABLE(wolfssl, AC_ARG_ENABLE(gcrypt, [AS_HELP_STRING([--enable-gcrypt], [Use GNU crypt's sha2 functions])], [ - if test "${enable_openssl-no}${enable_wolfssl-no}" != "nono"; then + AS_IF([test "${enable_openssl-no}${enable_wolfssl-no}" != "nono"], [ AC_MSG_WARN([ignoring --enable-gcrypt when OpenSSL or wolfSSL is enabled.]) enable_gcrypt=no - fi + ]) ]) AC_ARG_ENABLE(python, @@ -1621,23 +1619,23 @@ dnl AC_PROG_CPP AC_CHECK_TOOL(AR, ar, false) AC_CHECK_TOOL(RANLIB, ranlib, :) -if test X"$AR" = X"false"; then +AS_IF([test X"$AR" = X"false"], [ AC_MSG_ERROR([the "ar" utility is required to build sudo]) -fi +]) AX_PROG_CC_FOR_BUILD -if test "x$ac_cv_prog_cc_c89" = "xno"; then +AS_IF([test "x$ac_cv_prog_cc_c89" = "xno"], [ AC_MSG_ERROR([Sudo version $PACKAGE_VERSION requires an ANSI C compiler to build.]) -fi +]) dnl dnl If the user specified --disable-static, override them or we'll dnl be unable to build the executables in the sudoers plugin dir. dnl -if test "$enable_static" = "no"; then +AS_IF([test "$enable_static" = "no"], [ AC_MSG_WARN([ignoring --disable-static, sudo does not install static libs]) enable_static=yes -fi +]) dnl dnl Set host variables and m4 macro dir @@ -1646,24 +1644,17 @@ AC_CANONICAL_HOST AC_CONFIG_MACRO_DIR([m4]) dnl -dnl On AIX we need to force libtool to install .so files for the plugins -dnl instead of a .a file that contains the .so. We do this by enabling -dnl runtime linking (where the .so file is installed). This must happen -dnl before the call to LT_INIT +dnl Relies on CC host being set dnl -case "$host_os" in -aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) - AX_APPEND_FLAG([-Wl,-brtl], [LDFLAGS]) - ;; -esac +SUDO_PVS_STUDIO_CFG dnl -dnl On HP-UX 11.11 and higher (and hiuxmpp) we prefer dlopen() -dnl over shl_load(). Libtool defaults to shl_load() so we need -dnl to prime the cache to override that default. +dnl On HP-UX 11.11 and higher we prefer dlopen() over shl_load(). +dnl Libtool defaults to shl_load() so we need to prime the cache +dnl to override that default. dnl case "$host_os" in -hiuxmpp*|hpux11.1[[1-9]]|hpux11.[[2-9]][[0-9]]|hpux1[[2-9]].*) +hpux11.1[[1-9]]|hpux11.[[2-9]][[0-9]]|hpux1[[2-9]].*) # Prefer dlopen() over shl_load() : ${ac_cv_func_shl_load='no'} : ${ac_cv_lib_dld_shl_load='no'} @@ -1676,6 +1667,26 @@ dnl LT_PREREQ([2.2.6b]) LT_INIT([dlopen]) +dnl +dnl AIX supports two distinct flavors of shared libraries. +dnl Traditional AIX shared libs are .a files with a .so inside. +dnl AIX SVR4-style shared libs are plain .so files. The --with-aix-soname +dnl option can be used to select the type. We need to set the default +dnl values to match. This must come after the LT_INIT() call. +dnl +case "$host_os" in +aix*) + AS_IF([test X"$aix_use_runtimelinking" != X"yes"], [ + # Using traditional AIX dynamic shared objects in an archive file. + noexec_file="$libexecdir/sudo/sudo_noexec.a(sudo_noexec.so)" + intercept_file="$libexecdir/sudo/sudo_intercept.a(sudo_intercept.so)" + sudoers_plugin="sudoers.a(sudoers.so)" + python_plugin="python_plugin.a(python_plugin.so)" + ]) + ;; +esac +SUDO_DEFINE_UNQUOTED([_PATH_SUDOERS_PLUGIN], ["$sudoers_plugin"]) + dnl dnl Allow the user to specify an alternate libtool. dnl XXX - should be able to skip LT_INIT if we are using a different libtool @@ -1694,7 +1705,7 @@ esac]) dnl dnl Defer enable_intercept and with_noexec until after libtool magic runs dnl -if test "$enable_shared" = "no"; then +AS_IF([test "$enable_shared" = "no"], [ enable_intercept=no with_noexec=no enable_dlopen=no @@ -1702,7 +1713,7 @@ if test "$enable_shared" = "no"; then lt_cv_dlopen_libs= ac_cv_func_dlopen=no LT_LDFLAGS=-static -fi +]) LIBDL="$lt_cv_dlopen_libs" SHLIB_ENABLE="$enable_dlopen" @@ -1734,56 +1745,57 @@ dnl AC_PATH_PROG(SHA1SUM, [sha1sum], [openssl dgst -sha1]) AC_PATH_PROG(UNAMEPROG, [uname], [uname]) AC_PATH_PROG(TRPROG, [tr], [tr]) -AC_PATH_PROG(MANDOCPROG, [mandoc], [mandoc]) -if test "$MANDOCPROG" != "mandoc"; then +AC_CACHE_CHECK([for mandoc or nroff], [ac_cv_path_NROFF], [ + AC_PATH_PROGS_FEATURE_CHECK([NROFF], [mandoc nroff], [ac_cv_path_NROFF="$ac_path_NROFF"], [ac_cv_path_NROFF=no]) +]) +case "$ac_cv_path_NROFF" in +*mandoc|no) + # Prefer mdoc format for mandoc (or when no formatter is present). : ${MANTYPE='mdoc'} -else - AC_PATH_PROG(NROFFPROG, [nroff]) - if test -n "$NROFFPROG"; then - test -n "$MANTYPE" && sudo_cv_var_mantype="$MANTYPE" - AC_CACHE_CHECK([which macro set to use for manual pages], - [sudo_cv_var_mantype], - [ - sudo_cv_var_mantype="man" - echo ".Sh NAME" > conftest - echo ".Nm sudo" >> conftest - echo ".Nd sudo" >> conftest - echo ".Sh DESCRIPTION" >> conftest - echo "sudo" >> conftest - if $NROFFPROG -mdoc conftest >/dev/null 2>&1; then - sudo_cv_var_mantype="mdoc" - fi - rm -f conftest - ] - ) - MANTYPE="$sudo_cv_var_mantype" - else - : ${MANTYPE='mdoc'} - fi -fi + ;; +*) + # Check whether nroff supports -mdoc, this may produce incorrect + # results when cross-compiling. + test -n "$MANTYPE" && sudo_cv_var_mantype="$MANTYPE" + AC_CACHE_CHECK([which macro set to use for manual pages], + [sudo_cv_var_mantype], + [ + sudo_cv_var_mantype="man" + echo ".Sh NAME" > conftest + echo ".Nm sudo" >> conftest + echo ".Nd sudo" >> conftest + echo ".Sh DESCRIPTION" >> conftest + echo "sudo" >> conftest + if $ac_cv_path_NROFF -mdoc conftest >/dev/null 2>&1; then + sudo_cv_var_mantype="mdoc" + fi + rm -f conftest + ] + ) + MANTYPE="$sudo_cv_var_mantype" + ;; +esac dnl dnl If a config.cache exists make sure it matches the current host. dnl -if test -n "$sudo_cv_prev_host"; then - if test "$sudo_cv_prev_host" != "$host"; then +AS_IF([test -n "$sudo_cv_prev_host"], [ + AS_IF([test "$sudo_cv_prev_host" != "$host"], [ AC_MSG_ERROR([config.cache was created on a different host; remove it and re-run configure.]) - fi -fi -AC_CACHE_VAL(sudo_cv_prev_host, sudo_cv_prev_host="$host") + ]) +]) +sudo_cv_prev_host="$host" dnl dnl We want to be able to differentiate between different rev's dnl -if test -n "$host_os"; then - OS=`echo $host_os | sed 's/[[0-9]].*//'` +AS_IF([test -n "$host_os"], [ OSREV=`echo $host_os | sed 's/^[[^0-9\.]]*\([[0-9\.]]*\).*$/\1/'` OSMAJOR=`echo $OSREV | sed 's/\..*$//'` -else - OS="unknown" +], [ OSREV=0 OSMAJOR=0 -fi +]) case "$host" in *-*-solaris2*) @@ -1802,9 +1814,9 @@ case "$host" in SUDO_OBJS="${SUDO_OBJS} solaris.o" # AFS support needs -lucb - if test "$with_AFS" = "yes"; then + AS_IF([test "$with_AFS" = "yes"], [ AFS_LIBS="-lc -lucb" - fi + ]) : ${mansectsu='1m'} : ${mansectform='4'} : ${mansectmisc='5'} @@ -1820,9 +1832,9 @@ case "$host" in # For AIX we build in support for both LAM and PAM # and choose which to use based on auth_type in # /etc/security/login.cfg - if test X"${with_pam}${with_aixauth}" = X""; then + AS_IF([test X"${with_pam}${with_aixauth}" = X""], [ AUTH_EXCL_DEF="AIX_AUTH PAM" - fi + ]) # AIX analog of nsswitch.conf, enabled by default AC_ARG_WITH(netsvc, [AS_HELP_STRING([--with-netsvc[[=PATH]]], [path to netsvc.conf])], @@ -1832,9 +1844,9 @@ case "$host" in ;; *) ;; esac]) - if test -z "$with_nsswitch" -a -z "$with_netsvc"; then + AS_IF([test -z "$with_nsswitch" -a -z "$with_netsvc"], [ with_netsvc="/etc/netsvc.conf" - fi + ]) # LDR_PRELOAD is only supported in AIX 5.3 and later case "$OSREV" in @@ -1848,9 +1860,9 @@ case "$host" in # strnlen/strndup may be broken on AIX < 6 depending # on the libc version, use our own. - if test $OSMAJOR -lt 6; then + AS_IF([test $OSMAJOR -lt 6], [ : ${ac_cv_func_strnlen='no'} - fi + ]) # fmemopen(3) has a bug wrt feof() on some AIX versions. # https://www.ibm.com/support/pages/apar/IJ11845 @@ -1858,19 +1870,19 @@ case "$host" in # getdelim() may or may not be present on AIX <= 6.1. # bos610 is missing getdelim but bos61J has it. - if test "$enable_package_build" = "yes"; then - if test $OSMAJOR -le 6; then + AS_IF([test "$enable_package_build" = "yes"], [ + AS_IF([test $OSMAJOR -le 6], [ : ${ac_cv_func_getdelim='no'} - fi - fi + ]) + ]) # memset_s() may or may ont be present on AIX <= 7.1. # bos710 is missing memset_s but bos71L has it. - if test "$enable_package_build" = "yes"; then - if test $OSMAJOR -le 7; then + AS_IF([test "$enable_package_build" = "yes"], [ + AS_IF([test $OSMAJOR -le 7], [ : ${ac_cv_func_memset_s='no'} - fi - fi + ]) + ]) # Remove timedir on boot, AIX does not have /var/run INIT_SCRIPT=aix.sh @@ -1896,33 +1908,28 @@ case "$host" in ]) ;; *-*-hiuxmpp*) - AC_DEFINE([PAM_SUN_CODEBASE]) - - : ${mansectsu='1m'} - : ${mansectform='4'} - : ${mansectmisc='5'} - - # HP-UX does not clear /var/run so we need to do it - INIT_SCRIPT=hpux.sh - INIT_DIR=/sbin/init.d - RC_LINK=/sbin/rc2.d/S900sudo + # HI-UX/MPP is based on OSF/1 - # HP-UX shared libs must be executable. - # Load time is much greater if writable so use 0555. - SHLIB_MODE=0555 + # ignore envariables wrt dynamic lib path + AX_APPEND_FLAG([-Wl,-no_library_replacement], [SUDO_LDFLAGS]) - # HP-UX won't unlink a shared lib that is open - INSTALL_BACKUP='~' + shadow_funcs="getprpwnam dispcrypt" + shadow_libs="-lsecurity" - AC_CHECK_FUNCS([pstat_getproc gethrtime]) + # ":DEFAULT" must be appended to _RLD_LIST + RTLD_PRELOAD_VAR="_RLD_LIST" + RTLD_PRELOAD_DEFAULT="DEFAULT" + : ${mansectsu='8'} + : ${mansectform='4'} + : ${mansectmisc='5'} ;; *-*-hpux*) AC_DEFINE([PAM_SUN_CODEBASE]) # AFS support needs -lBSD - if test "$with_AFS" = "yes"; then + AS_IF([test "$with_AFS" = "yes"], AFS_LIBS="-lc -lBSD" - fi + ]) : ${mansectsu='1m'} : ${mansectform='4'} : ${mansectmisc='5'} @@ -1940,7 +1947,7 @@ case "$host" in INSTALL_BACKUP='~' # The HP bundled compiler cannot generate shared libs - if test -z "$GCC"; then + AS_IF([test -z "$GCC"], [ AC_CACHE_CHECK([for HP bundled C compiler], [sudo_cv_var_hpccbundled], [if $CC -V 2>&1 | grep '^(Bundled)' >/dev/null 2>&1; then @@ -1949,20 +1956,20 @@ case "$host" in sudo_cv_var_hpccbundled=no fi] ) - if test "$sudo_cv_var_hpccbundled" = "yes"; then + AS_IF([test "$sudo_cv_var_hpccbundled" = "yes"], [ AC_MSG_ERROR([The HP bundled C compiler is unable to build Sudo, you must use gcc or the HP ANSI C compiler instead.]) - fi - fi + ]) + ]) # Build PA-RISC1.1 objects for better portability case "$host_cpu" in hppa[[2-9]]*) _CFLAGS="$CFLAGS" - if test -n "$GCC"; then + AS_IF([test -n "$GCC"], [ portable_flag="-march=1.1" - else + ], [ portable_flag="+DAportable" - fi + ]) CFLAGS="$CFLAGS $portable_flag" AC_CACHE_CHECK([whether $CC understands $portable_flag], [sudo_cv_var_daportable], @@ -1973,9 +1980,9 @@ case "$host" in ) ] ) - if test X"$sudo_cv_var_daportable" != X"yes"; then + AS_IF([test X"$sudo_cv_var_daportable" != X"yes"], [ CFLAGS="$_CFLAGS" - fi + ]) ;; esac @@ -1992,6 +1999,7 @@ case "$host" in test -z "$with_pam" && AUTH_EXCL_DEF="PAM" ;; esac + AC_CHECK_HEADERS([utmps.h]) AC_CHECK_FUNCS([pstat_getproc gethrtime]) ;; *-dec-osf*) @@ -2013,11 +2021,11 @@ case "$host" in shadow_funcs="getprpwnam dispcrypt" # OSF/1 4.x and higher need -ldb too - if test $OSMAJOR -lt 4; then + AS_IF([test $OSMAJOR -lt 4], [ shadow_libs="-lsecurity -laud -lm" - else + ], [ shadow_libs="-lsecurity -ldb -laud -lm" - fi + ]) # use SIA by default, if we have it test "$CHECKSIA" = "true" && AUTH_EXCL_DEF="SIA" @@ -2044,17 +2052,17 @@ case "$host" in ;; *-*-irix*) AC_DEFINE([_BSD_TYPES]) - if test "$prefix" = "/usr/local" -a "$mandir" = '${datarootdir}/man'; then - if test -d "/usr/share/man/local"; then + AS_IF([test "$prefix" = "/usr/local" -a "$mandir" = '${datarootdir}/man'], [ + AS_IF([test -d "/usr/share/man/local"], [ mandir="/usr/share/man/local" - else + ], [ mandir="/usr/man/local" - fi - fi + ]) + ]) # IRIX <= 4 needs -lsun - if test "$OSMAJOR" -le 4; then - AC_CHECK_LIB(sun, getpwnam, [LIBS="${LIBS} -lsun"]) - fi + AS_IF([test "$OSMAJOR" -le 4], [ + AC_CHECK_LIB([sun], [getpwnam], [LIBS="${LIBS} -lsun"]) + ]) # ":DEFAULT" must be appended to _RLD_LIST RTLD_PRELOAD_VAR="_RLD_LIST" RTLD_PRELOAD_DEFAULT="DEFAULT" @@ -2074,19 +2082,23 @@ case "$host" in #include ]) # We call getrandom via syscall(3) in case it is not in libc - AC_CHECK_HEADERS([linux/random.h]) - - # The glibc getentropy() emulation may fail on older kernels. - # We use our own getentropy() by default on Linux. - : ${ac_cv_func_getentropy='no'} - - # The glibc arc4random() may fail in chroot on older kernels. - # We use our own arc4random() by default on Linux. - : ${ac_cv_func_arc4random='no'} - - # The glibc closefrom() emulation may fail in chroot. - # We use our own closefrom() by default on Linux. - : ${ac_cv_func_closefrom='no'} + AC_CHECK_HEADERS([linux/random.h sys/syscall.h]) + + # Only use our replacement functions when not fuzzing, + # they may skew the coverage reports. + AS_IF([test X"$enable_fuzzer" = X"no"], [ + # glibc's getentropy() emulation may fail on older kernels. + # We use our own getentropy() by default on Linux. + : ${ac_cv_func_getentropy='no'} + + # glibc's arc4random() may fail in chroot on older kernels. + # We use our own arc4random() by default on Linux. + : ${ac_cv_func_arc4random='no'} + + # glibc's closefrom() emulation may fail in chroot. + # We use our own closefrom() by default on Linux. + : ${ac_cv_func_closefrom='no'} + ]) # Linux 3.2 supports reading/writing a another process # without using ptrace(2). @@ -2118,7 +2130,7 @@ case "$host" in : ${mansectmisc='5'} ;; *-ncr-sysv4*|*-ncr-sysvr4*) - AC_CHECK_LIB(c89, strcasecmp, [LIBS="${LIBS} -lc89"]) + AC_CHECK_LIB([c89], [strcasecmp], [LIBS="${LIBS} -lc89"]) : ${mansectsu='1m'} : ${mansectform='4'} : ${mansectmisc='5'} @@ -2132,9 +2144,9 @@ case "$host" in *-*-bsdi*) SKIP_SETREUID=yes # Check for newer BSD auth API - if test -z "$with_bsdauth"; then + AS_IF([test -z "$with_bsdauth"], [ AC_CHECK_FUNCS([auth_challenge], [AUTH_EXCL_DEF="BSD_AUTH"]) - fi + ]) ;; *-*-freebsd*) AC_DEFINE([_BSD_SOURCE]) @@ -2146,17 +2158,17 @@ case "$host" in SKIP_SETREUID=yes ;; esac - if test "${with_skey-'no'}" = "yes"; then + AS_IF([test "${with_skey-'no'}" = "yes"], [ SUDOERS_LIBS="${SUDOERS_LIBS} -lmd" - fi + ]) CHECKSHADOW="false" test -z "$with_pam" && AUTH_EXCL_DEF="PAM" : ${with_logincap='maybe'} # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + AS_IF([test X"$with_exampledir" = X""], [ exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + ]) ;; *-*-*openbsd*) AC_DEFINE([_BSD_SOURCE]) @@ -2170,20 +2182,20 @@ case "$host" in SKIP_SETREUID=yes # OpenBSD >= 3.0 supports BSD auth - if test -z "$with_bsdauth"; then - if test "$OSMAJOR" -ge 3; then + AS_IF([test -z "$with_bsdauth"], [ + AS_IF([test "$OSMAJOR" -ge 3], [ AUTH_EXCL_DEF="BSD_AUTH" - fi - fi + ]) + ]) : ${with_logincap='maybe'} # Newer OpenBSD only fills in pw_password for getpwnam_shadow() shadow_funcs="getpwnam_shadow" # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + AS_IF([test X"$with_exampledir" = X""], [ exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + ]) ;; *-*-*netbsd*) # NetBSD has a real setreuid(2) starting with 1.3.2 @@ -2200,49 +2212,49 @@ case "$host" in AC_DEFINE([_OPENBSD_SOURCE]) # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + AS_IF([test X"$with_exampledir" = X""], [ exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + ]) ;; *-*-dragonfly*) AC_DEFINE([_BSD_SOURCE]) - if test "${with_skey-'no'}" = "yes"; then + AS_IF([test "${with_skey-'no'}" = "yes"], [ SUDOERS_LIBS="${SUDOERS_LIBS} -lmd" - fi + ]) CHECKSHADOW="false" test -z "$with_pam" && AUTH_EXCL_DEF="PAM" : ${with_logincap='yes'} # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + AS_IF([test X"$with_exampledir" = X""], [ exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + ]) ;; *-*-*bsd*) CHECKSHADOW="false" # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + AS_IF([test X"$with_exampledir" = X""], [ exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + ]) ;; *-*-darwin*) # Darwin has a real setreuid(2) starting with 9.0 - if test $OSMAJOR -lt 9; then + AS_IF([test $OSMAJOR -lt 9], [ SKIP_SETREUID=yes - fi + ]) CHECKSHADOW="false" test -z "$with_pam" && AUTH_EXCL_DEF="PAM" : ${with_logincap='yes'} # Darwin has a broken poll(), Apple radar 3710161 : ${enable_poll='no'} # Darwin 8 and above can interpose library symbols cleanly - if test $OSMAJOR -ge 8; then + AS_IF([test $OSMAJOR -ge 8], [ AC_DEFINE(HAVE___INTERPOSE) dlyld_interpose=yes - else + ], [ RTLD_PRELOAD_ENABLE_VAR="DYLD_FORCE_FLAT_NAMESPACE" - fi + ]) RTLD_PRELOAD_VAR="DYLD_INSERT_LIBRARIES" # Build sudo_noexec.so as a shared library, not a module. @@ -2263,9 +2275,9 @@ case "$host" in AX_CHECK_LINK_FLAG([-Wl,-force_flat_namespace], [AX_APPEND_FLAG([-Wl,-force_flat_namespace], [SUDO_LDFLAGS])]) # Examples go in share/examples/sudo - if test X"$with_exampledir" = X""; then + AS_IF([test X"$with_exampledir" = X""], [ exampledir='$(datarootdir)/examples/$(PACKAGE_TARNAME)' - fi + ]) ;; *-*-nextstep*) # lockf() is broken on the NeXT @@ -2307,73 +2319,40 @@ case "$host" in ;; esac -if test X"$enable_pvs_studio" = X"yes"; then - # Determine preprocessor type - case "$CC" in - *clang*) preprocessor=clang;; - *gcc*) preprocessor=gcc;; - *) - case `$CC --version 2>&1` in - *clang*) preprocessor=clang;; - *gcc*) preprocessor=gcc;; - *) AC_MSG_ERROR([Compiler must be gcc or clang for PVS-Studio.]);; - esac - ;; - esac - - # Determine platform (currently linux or macos) - case "$host" in - x86_64-*-linux*) pvs_platform=linux64;; - *86-*-linux*) pvs_platform=linux32;; - *-*-darwin*) pvs_platform=macos;; - *) AC_MSG_ERROR([PVS-Studio does not support $host.]);; - esac - - # create basic PVS-Studio.cfg file - cat > PVS-Studio.cfg <<-EOF - preprocessor = $preprocessor - platform = $pvs_platform - analysis-mode = 4 - language = C -EOF -fi - dnl dnl Library preloading to support NOEXEC dnl -if test X"$enable_intercept" = X"no"; then +AS_IF([test X"$enable_intercept" = X"no"], [ intercept_file=disabled -fi -if test X"$with_noexec" = X"no"; then +]) +AS_IF([test X"$with_noexec" = X"no"], [ noexec_file=disabled -fi -if test X"${intercept_file} ${noexec_file}" != X"disabled disabled"; then +]) +AS_IF([test X"${intercept_file} ${noexec_file}" != X"disabled disabled"], [ SUDO_DEFINE_UNQUOTED(RTLD_PRELOAD_VAR, "$RTLD_PRELOAD_VAR") SUDO_DEFINE_UNQUOTED(RTLD_PRELOAD_DELIM, '$RTLD_PRELOAD_DELIM') - if test -n "$RTLD_PRELOAD_DEFAULT"; then + AS_IF([test -n "$RTLD_PRELOAD_DEFAULT"], [ SUDO_DEFINE_UNQUOTED(RTLD_PRELOAD_DEFAULT, "$RTLD_PRELOAD_DEFAULT") - fi - if test -n "$RTLD_PRELOAD_ENABLE_VAR"; then + ]) + AS_IF([test -n "$RTLD_PRELOAD_ENABLE_VAR"], [ SUDO_DEFINE_UNQUOTED(RTLD_PRELOAD_ENABLE_VAR, "$RTLD_PRELOAD_ENABLE_VAR") - fi -fi + ]) +]) dnl dnl Check for mixing mutually exclusive and regular auth methods dnl AUTH_REG=${AUTH_REG# } AUTH_EXCL=${AUTH_EXCL# } -if test -n "$AUTH_EXCL"; then - if test -n "$AUTH_REG"; then - AC_MSG_ERROR([Cannot mix mutually exclusive ($AUTH_EXCL) and regular ($AUTH_REG) authentication methods]) - fi -fi +AS_IF([test -n "$AUTH_EXCL" -a -n "$AUTH_REG"], [ + AC_MSG_ERROR([Cannot mix mutually exclusive ($AUTH_EXCL) and regular ($AUTH_REG) authentication methods]) +]) dnl dnl Only one of S/Key and OPIE may be specified dnl -if test X"${with_skey}${with_opie}" = X"yesyes"; then +AS_IF([test X"${with_skey}${with_opie}" = X"yesyes"], [ AC_MSG_ERROR([cannot use both S/Key and OPIE]) -fi +]) dnl dnl Use BSD-style man sections by default @@ -2385,12 +2364,12 @@ dnl dnl dnl Add in any libpaths or libraries specified via configure dnl -if test -n "$with_libpath"; then +AS_IF([test -n "$with_libpath"], [ for i in ${with_libpath}; do SUDO_APPEND_LIBPATH(LDFLAGS, [$i]) done -fi -if test -n "$with_libraries"; then +]) +AS_IF([test -n "$with_libraries"], [ for i in ${with_libraries}; do case $i in -l*) ;; @@ -2400,7 +2379,7 @@ if test -n "$with_libraries"; then esac LIBS="${LIBS} ${i}" done -fi +]) dnl dnl C compiler checks (to be done after os checks) @@ -2408,20 +2387,7 @@ dnl AC_C_CONST AC_C_INLINE AC_C_VOLATILE -AC_MSG_CHECKING([for variadic macro support in cpp]) -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ -AC_INCLUDES_DEFAULT -#if defined(__GNUC__) && __GNUC__ == 2 -# define sudo_fprintf(fp, fmt...) fprintf((fp), (fmt)) -#else -# define sudo_fprintf(fp, ...) fprintf((fp), __VA_ARGS__) -#endif -], [sudo_fprintf(stderr, "a %s", "test");])], [AC_MSG_RESULT([yes])], -[AC_MSG_RESULT([no]) - AC_DEFINE([NO_VARIADIC_MACROS], [1], [Define if your C preprocessor does not support variadic macros.]) - AC_MSG_WARN([your C preprocessor doesn't support variadic macros, debugging support will be limited]) - SUDO_APPEND_COMPAT_EXP(sudo_debug_printf_nvm_v1) -]) +SUDO_CPP_VARIADIC_MACROS dnl dnl Program checks @@ -2431,23 +2397,23 @@ AC_PROG_YACC AC_PATH_PROG([FLEX], [flex], [flex]) SUDO_PROG_MV SUDO_PROG_BSHELL -if test -z "$with_sendmail"; then +AS_IF([test -z "$with_sendmail"], [ SUDO_PROG_SENDMAIL with_sendmail="$ac_cv_path_SENDMAILPROG" -fi +]) SUDO_PROG_VI dnl dnl Use fully-qualified path to vi in the manual dnl -if test -z "$with_editor"; then +AS_IF([test -z "$with_editor"], [ editor="$ac_cv_path_VIPROG" -fi +]) dnl dnl Check for authpriv support in syslog dnl -if test X"$with_logfac" = X""; then +AS_IF([test X"$with_logfac" = X""], [ AC_CHECK_DECL([LOG_AUTHPRIV], [logfac=authpriv], [], [#include ]) -fi +]) AC_DEFINE_UNQUOTED(LOGFAC, "$logfac", [The syslog facility sudo will use.]) dnl dnl Header file checks @@ -2455,8 +2421,10 @@ dnl AC_HEADER_DIRENT AC_HEADER_STDBOOL AC_HEADER_MAJOR -AC_CHECK_HEADERS_ONCE([netgroup.h paths.h spawn.h wordexp.h sys/sockio.h sys/bsdtypes.h sys/select.h sys/stropts.h sys/sysmacros.h sys/syscall.h sys/statvfs.h]) -AC_CHECK_HEADERS([utmps.h] [utmpx.h], [break]) +AC_CHECK_HEADERS_ONCE([netgroup.h paths.h spawn.h wordexp.h sys/sockio.h sys/bsdtypes.h sys/select.h sys/stropts.h sys/sysmacros.h sys/statvfs.h]) +AS_IF([test X"$ac_cv_header_utmps_h" != X"yes"], [ + AC_CHECK_HEADERS([utmpx.h]) +]) AC_CHECK_HEADERS([endian.h] [sys/endian.h] [machine/endian.h], [break]) AC_CHECK_HEADERS([procfs.h] [sys/procfs.h], [AC_CHECK_MEMBERS(struct psinfo.pr_ttydev, [AC_CHECK_FUNCS([_ttyname_dev])], [], [AC_INCLUDES_DEFAULT #ifdef HAVE_PROCFS_H @@ -2469,18 +2437,41 @@ AC_CHECK_HEADERS([procfs.h] [sys/procfs.h], [AC_CHECK_MEMBERS(struct psinfo.pr_t break) # # Check for large file and 64-bit time support. -# GNU libc only allows setting _TIME_BITS when FILE_OFFSET_BITS is also set. -# GNU libc defines __TIMESIZE on systems where _TIME_BITS can be set. # AC_SYS_LARGEFILE -if test X"$ac_cv_sys_file_offset_bits" = X"yes"; then - AC_CHECK_DECL(__TIMESIZE, [ - AC_DEFINE([_TIME_BITS], [64], [Number of bits in a time_t, on hosts where this is settable.]) - ], [], [ -AC_INCLUDES_DEFAULT -#include +AC_SYS_YEAR2038 + +# +# Don't allow undefined symbols, even in shared libraries, if possible. +# This will detect missing symbols at build-time instead of run-time +# but is incompatible with the sanitizers/fuzzers. +# We must set this *before* the library tests. +# +AS_IF([test -n "$GCC" -a X"${enable_sanitizer}${enable_fuzzer}" = X"nono"], [ + # On FreeBSD and Dragonfly, environ is filled in by the dynamic loader + # so -Wl,--no-undefined causes a link error when environ is used. + # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=263265 + # We use errno because OpenBSD shared libraries don't explicitly + # link with libc, which can result in undefined reference errors. + AC_CACHE_CHECK([the linker accepts -Wl,--no-undefined], + [sudo_cv_var_ld___no_undefined], + [ + sudo_cv_var_ld___no_undefined=no + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_prog_compiler_pic -shared -Wl,--no-undefined" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include +extern char **environ;]], [[int ret = ((long)environ & 0xff) + errno; return ret;]])], + [sudo_cv_var_ld___no_undefined=yes]) + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + ] + ) + AS_IF([test "$sudo_cv_var_ld___no_undefined" = "yes"], [ + AX_APPEND_FLAG([-Wl,--no-undefined], [LDFLAGS]) ]) -fi +]) # # HP-UX may need to define _XOPEN_SOURCE_EXTENDED to expose MSG_WAITALL. @@ -2492,65 +2483,58 @@ case "$host_os" in hpux*) AC_CACHE_CHECK([whether sys/socket.h needs _XOPEN_SOURCE_EXTENDED for MSG_WAITALL], [sudo_cv_xopen_source_extended], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT -# include ], [int a = MSG_WAITALL; return a;])], +[# include ]], [[int a = MSG_WAITALL; return a;]])], [sudo_cv_xopen_source_extended=no], [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#define _XOPEN_SOURCE_EXTENDED AC_INCLUDES_DEFAULT -# include -# include ], [int a = MSG_WAITALL; return a;])], +[# include +# include ]], [[int a = MSG_WAITALL; return a;]])], [sudo_cv_xopen_source_extended=yes], [sudo_cv_xopen_source_extended=error]) ])]) - if test "$sudo_cv_xopen_source_extended" = "yes"; then + AS_IF([test "$sudo_cv_xopen_source_extended" = "yes"], [ AC_DEFINE([_XOPEN_SOURCE_EXTENDED]) - fi + ]) ;; esac -AC_SYS_POSIX_TERMIOS -if test "$ac_cv_sys_posix_termios" != "yes"; then - AC_MSG_ERROR([must have POSIX termios to build sudo]) -fi SUDO_MAILDIR -if test ${with_logincap-'no'} != "no"; then - AC_CHECK_HEADERS([login_cap.h], [LOGINCAP_USAGE='[[-c class]] '; LCMAN=1 +AS_IF([test ${with_logincap-'no'} != "no"], [ + AC_CHECK_HEADERS([login_cap.h], [ + LOGINCAP_USAGE='[[-c class]] ' + LCMAN=1 with_logincap=yes - case "$OS" in - freebsd*|netbsd*) - SUDO_LIBS="${SUDO_LIBS} -lutil" - SUDOERS_LIBS="${SUDOERS_LIBS} -lutil" - ;; - esac ]) -fi -if test ${with_project-'no'} != "no"; then + AS_IF([test "${with_logincap}" = "yes"], [ + # setusercontext() is in libutil on NetBSD, FreeBSD, Dragonfly BSD. + _LIBS="$LIBS" + AC_SEARCH_LIBS([setusercontext], [util]) + LIBS="$_LIBS" + AS_IF([test "${ac_cv_search_setusercontext}" != "none required"], [ + SUDO_LIBS="${SUDO_LIBS} -lutil" + SUDOERS_LIBS="${SUDOERS_LIBS} -lutil" + ]) + ]) +]) +AS_IF([test ${with_project-'no'} != "no"], [ AC_CHECK_HEADER(project.h, [ - AC_CHECK_LIB(project, setproject, [ + AC_CHECK_LIB([project], [setproject], [ AC_DEFINE(HAVE_PROJECT_H) SUDO_LIBS="${SUDO_LIBS} -lproject" ]) ], [with_project=no]) -fi +]) dnl dnl typedef checks dnl -AC_TYPE_MODE_T -AC_TYPE_UID_T -AC_CHECK_TYPE([clockid_t], [], [AC_DEFINE(clockid_t, int)], [#include -#include ]) -AC_CHECK_TYPE([sig_atomic_t], [], [AC_DEFINE(sig_atomic_t, int)], [#include +AS_IF([test X"${ac_cv_header_stdint_h}${ac_cv_header_inttypes_h}" = X"nono"], [ + AC_CHECK_TYPES([int8_t, uint8_t, int16_t, uint16_t, int32_t, uint32_t, int64_t, uint64_t, intmax_t, uintmax_t]) +]) +AC_CHECK_TYPES([sig_atomic_t], [], [], [ +AC_INCLUDES_DEFAULT #include ]) AC_CHECK_TYPES([struct in6_addr], [], [], [#include #include ]) -AC_TYPE_LONG_LONG_INT -if test X"$ac_cv_type_long_long_int" != X"yes"; then - AC_MSG_ERROR([C compiler does not appear to support the long long int type]) -fi -AC_CHECK_TYPE(intmax_t, long long) -AC_CHECK_TYPE(uintmax_t, unsigned long long) -AC_CHECK_TYPE(uint8_t, unsigned char) -AC_CHECK_TYPE(uint32_t, unsigned int) -AC_CHECK_TYPE(uint64_t, unsigned long long) -AC_CHECK_TYPE(socklen_t, [], [AC_DEFINE(socklen_t, unsigned int)], [ +AC_CHECK_TYPES(socklen_t, [], [], [ AC_INCLUDES_DEFAULT #include ]) SUDO_UID_T_LEN @@ -2559,18 +2543,18 @@ SUDO_SOCK_SIN_LEN AC_CHECK_SIZEOF([id_t]) AC_CHECK_SIZEOF([long long]) AC_CHECK_SIZEOF([time_t]) -if test $ac_cv_header_utmps_h = "yes"; then +AS_IF([test X"$ac_cv_header_utmps_h" = X"yes"], [ SUDO_CHECK_UTMP_MEMBERS([utmps]) -elif test $ac_cv_header_utmpx_h = "yes"; then +], [test X"$ac_cv_header_utmpx_h" = X"yes"], [ SUDO_CHECK_UTMP_MEMBERS([utmpx]) -else +], [ SUDO_CHECK_UTMP_MEMBERS([utmp]) -fi +]) dnl dnl Python plugin support dnl -if test ${enable_python-'no'} = "yes"; then +AS_IF([test ${enable_python-'no'} = "yes"], [ AM_PATH_PYTHON([3]) AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for python, bypassing python-config]) @@ -2607,19 +2591,19 @@ if test ${enable_python-'no'} = "yes"; then PYTHON_PLUGIN_SRC=plugins/python PYTHON_PLUGIN= AC_CONFIG_FILES([$PYTHON_PLUGIN_SRC/Makefile]) -fi +]) dnl dnl Function checks dnl AC_FUNC_GETGROUPS AC_FUNC_FSEEKO -AC_CHECK_FUNCS_ONCE([fexecve fmemopen killpg nl_langinfo faccessat wordexp getauxval strtoull]) +AC_CHECK_FUNCS_ONCE([fexecve fmemopen killpg nl_langinfo faccessat wordexp strtoull]) AC_CHECK_FUNCS([execvpe], [SUDO_APPEND_INTERCEPT_EXP(execvpe)]) AC_CHECK_FUNCS([pread], [ # pread/pwrite on 32-bit HP-UX 11.x may not support large files case "$host_os" in - hpux*|hiuxmpp*) + hpux*) AC_CHECK_FUNCS([pread64 pwrite64], [ AC_CHECK_DECLS([pread64, pwrite64]) ]) @@ -2728,47 +2712,74 @@ AC_CHECK_FUNCS([arc4random], [ ], [ AC_LIBOBJ(getentropy) SUDO_APPEND_COMPAT_EXP(sudo_getentropy) + AC_CHECK_FUNCS([getauxval]) ]) # arc4random.c wants pthread_atfork AC_CHECK_HEADERS([pthread.h], [ - AC_CHECK_LIB(pthread, main, [LIBPTHREAD="-lpthread"]) + AC_CHECK_LIB([pthread], [main], [LIBPTHREAD="-lpthread"]) AC_CHECK_FUNCS([pthread_atfork]) ]) ]) utmp_style=LEGACY AC_CHECK_FUNCS([getutsid getutxid getutid], [utmp_style=POSIX; break]) -if test "$utmp_style" = "LEGACY"; then +AS_IF([test "$utmp_style" = "LEGACY"], [ AC_CHECK_FUNCS([getttyent ttyslot], [break]) -fi +]) -AC_CHECK_FUNCS([sysctl], [AC_CHECK_FUNCS([devname]) - AC_CHECK_MEMBER([struct kinfo_proc.ki_structsize], [AC_DEFINE(HAVE_KINFO_PROC_FREEBSD)], [ - AC_CHECK_MEMBER([struct kinfo_proc2.p_paddr], [AC_DEFINE(HAVE_KINFO_PROC2_NETBSD)], [ - AC_CHECK_MEMBER([struct kinfo_proc.p_paddr], [AC_DEFINE(HAVE_KINFO_PROC_OPENBSD)], [ - AC_CHECK_MEMBER([struct kinfo_proc.kp_proc], [AC_DEFINE(HAVE_KINFO_PROC_44BSD)], [], [ -# include -# include - ]) - ], [ -# include -# include - ]) - ], - [ -# include -# include +AC_CHECK_FUNCS([sysctl], [ + AC_CHECK_FUNCS([devname]) + # Check for the various flavors of kinfo_proc + found=false + AC_CHECK_MEMBER([struct kinfo_proc.ki_structsize], [ + AC_DEFINE(HAVE_KINFO_PROC_FREEBSD) + found=true + ], [], [ +#include +#include +#include + ]) + AS_IF([test "$found" = "false"], [ + AC_CHECK_MEMBER([struct kinfo_proc.kp_paddr], [ + AC_DEFINE(HAVE_KINFO_PROC_DFLY) + found=true + ], [], [ +#include +#include +#include + ]) + ]) + AS_IF([test "$found" = "false"], [ + AC_CHECK_MEMBER([struct kinfo_proc2.p_paddr], [ + AC_DEFINE(HAVE_KINFO_PROC2_NETBSD) + found=true + ], [], [ +#include +#include + ]) + ]) + AS_IF([test "$found" = "false"], [ + AC_CHECK_MEMBER([struct kinfo_proc.p_paddr], [ + AC_DEFINE(HAVE_KINFO_PROC_OPENBSD) + found=true + ], [], [ +#include +#include + ]) + ]) + AS_IF([test "$found" = "false"], [ + AC_CHECK_MEMBER([struct kinfo_proc.kp_proc], [ + AC_DEFINE(HAVE_KINFO_PROC_44BSD) + found=true + ], [], [ +#include +#include ]) - ], - [ -# include -# include -# include ]) ]) AC_CHECK_FUNCS([openpty], [AC_CHECK_HEADERS([libutil.h util.h pty.h], [break])], [ - AC_CHECK_LIB(util, openpty, [ + AC_CHECK_LIB([util], [openpty], [ AC_CHECK_HEADERS([libutil.h util.h pty.h], [break]) case "$SUDO_LIBS" in *-lutil*) ;; @@ -2787,20 +2798,20 @@ AC_CHECK_FUNCS([openpty], [AC_CHECK_HEADERS([libutil.h util.h pty.h], [break])], ]) AC_CHECK_FUNCS([unsetenv], [SUDO_FUNC_UNSETENV_VOID], []) SUDO_FUNC_PUTENV_CONST -if test -z "$SKIP_SETRESUID"; then +AS_IF([test -z "$SKIP_SETRESUID"], [ AC_CHECK_FUNCS([setresuid], [ SKIP_SETREUID=yes AC_CHECK_DECLS([setresuid]) AC_CHECK_FUNCS([getresuid], [AC_CHECK_DECLS([getresuid])]) ]) -fi -if test -z "$SKIP_SETREUID"; then +]) +AS_IF([test -z "$SKIP_SETRESUID"], [ AC_CHECK_FUNCS([setreuid]) -fi +]) AC_CHECK_FUNCS_ONCE([seteuid]) -if test X"$with_interfaces" != X"no"; then +AS_IF([test X"$with_interfaces" != X"no"], [ AC_CHECK_FUNCS([getifaddrs], [AC_CHECK_FUNCS([freeifaddrs])]) -fi +]) AC_CHECK_FUNCS([lockf], [break]) AC_CHECK_FUNCS([innetgr], [ AC_CHECK_DECLS([innetgr], [], [], [ @@ -2865,7 +2876,7 @@ AC_CHECK_FUNCS([freezero], [], [ ]) AC_CHECK_FUNCS(nanosleep, [], [ # On Solaris, nanosleep is in librt - AC_CHECK_LIB(rt, nanosleep, [ + AC_CHECK_LIB([rt], [nanosleep], [ AC_DEFINE(HAVE_NANOSLEEP) LIBRT="-lrt" ], [ @@ -2918,22 +2929,22 @@ AC_CHECK_FUNCS([strlcat], [], [ SUDO_APPEND_COMPAT_EXP(sudo_strlcat) ]) AC_CHECK_FUNC([strnlen], [AC_FUNC_STRNLEN], [AC_LIBOBJ(strnlen)]) -if test X"$ac_cv_func_strnlen_working" = X"yes"; then +AS_IF([test X"$ac_cv_func_strnlen_working" = X"yes"], [ AC_DEFINE(HAVE_STRNLEN) AC_CHECK_FUNCS([strndup], [], [ AC_LIBOBJ(strndup) SUDO_APPEND_COMPAT_EXP(sudo_strndup) ]) -else +], [ # Broken or missing strnlen, use our own. SUDO_APPEND_COMPAT_EXP(sudo_strnlen) # Avoid libc strndup() since it is usually implemented using strnlen() AC_LIBOBJ(strndup) SUDO_APPEND_COMPAT_EXP(sudo_strndup) -fi +]) AC_CHECK_FUNCS([clock_gettime], [], [ # On Solaris, clock_gettime is in librt - AC_CHECK_LIB(rt, clock_gettime, [ + AC_CHECK_LIB([rt], [clock_gettime], [ AC_DEFINE(HAVE_CLOCK_GETTIME) LIBRT="-lrt" ]) @@ -2943,9 +2954,9 @@ AC_CHECK_FUNCS([getopt_long], [], [ SUDO_APPEND_COMPAT_EXP(sudo_getopt_long sudo_getopt_long_only) AC_CACHE_CHECK([for optreset], sudo_cv_optreset, [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[extern int optreset; optreset = 1; return optreset;]])], [sudo_cv_optreset=yes], [sudo_cv_optreset=no])]) - if test "$sudo_cv_optreset" = "yes"; then + AS_IF([test "$sudo_cv_optreset" = "yes"], [ AC_DEFINE(HAVE_OPTRESET) - fi + ]) ]) AC_CHECK_FUNCS([closefrom], [], [AC_LIBOBJ(closefrom) SUDO_APPEND_COMPAT_EXP(sudo_closefrom) @@ -2972,17 +2983,13 @@ case "$host_os" in ;; esac # If any of the mktemp family are missing we use our own. -if test X"$sudo_mktemp" = X"yes"; then - AC_CHECK_FUNCS([arc4random random lrand48], [break]) - if test X"$ac_cv_func_arc4random" != X"yes"; then - AC_CHECK_FUNCS([getentropy]) - fi +AS_IF([test X"$sudo_mktemp" = X"yes"], [ AC_LIBOBJ(mktemp) SUDO_APPEND_COMPAT_EXP(sudo_mkdtemp sudo_mkdtempat sudo_mkostempsat sudo_mkstemp sudo_mkstemps) COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }mktemp_test" -fi +]) AX_FUNC_SNPRINTF -if test X"$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf" = X"yesyes"; then +AS_IF([test X"$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf" = X"yesyes"], [ # System has a C99-compliant v?snprintf(), check for v?asprintf() AC_CHECK_FUNCS([asprintf], [], [ AC_LIBOBJ(snprintf) @@ -2992,10 +2999,10 @@ if test X"$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf" = X"yesyes" AC_LIBOBJ(snprintf) SUDO_APPEND_COMPAT_EXP(sudo_vasprintf) ]) -else +], [ # Missing or non-compliant v?snprintf(), assume missing/bad v?asprintf() SUDO_APPEND_COMPAT_EXP(sudo_snprintf sudo_vsnprintf sudo_asprintf sudo_vasprintf) -fi +]) AC_CHECK_MEMBERS([struct tm.tm_gmtoff], [], [], [ AC_INCLUDES_DEFAULT #include @@ -3015,14 +3022,14 @@ AC_CHECK_FUNCS([setpassent setgroupent]) dnl dnl Function checks for sudo_noexec dnl -if test X"$with_noexec" != X"no"; then +AS_IF([test X"$with_noexec" != X"no"], # Check for non-standard exec functions AC_CHECK_FUNCS([exect execvP execvpe]) # Check for posix_spawn, and posix_spawnp - if test X"$ac_cv_header_spawn_h" = X"yes"; then + AS_IF([test X"$ac_cv_header_spawn_h" = X"yes"], [ AC_CHECK_FUNCS([posix_spawn posix_spawnp]) - fi -fi + ]) +]) dnl dnl Check for the dirfd function/macro. If not found, look for dd_fd in DIR. @@ -3034,466 +3041,93 @@ AC_CHECK_MEMBERS([struct dirent.d_type, struct dirent.d_namlen], [], [], [ AC_INCLUDES_DEFAULT #include <$ac_header_dirent> ]) -dnl -dnl Check for functions only present in OpenSSL 1.1 and above -dnl -openssl_missing=no -if test "${enable_openssl-no}" != no; then - # Use pkg-config to find the openssl cflags and libs if possible. - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then - PKG_CONFIG_LIBDIR= - for d in ${enable_openssl}/*/pkgconfig; do - if test -d "$d"; then - PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR:$d" - fi - done - if test -n "$PKG_CONFIG_LIBDIR"; then - PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR#:} - export PKG_CONFIG_LIBDIR - fi - elif test "$cross_compiling" = "yes" -a -z "$PKG_CONFIG"; then - # Cannot use pkg-config when cross-compiling - PKG_CONFIG=false - fi - : ${PKG_CONFIG='pkg-config'} - pkg_openssl=`printf $enable_openssl_pkgconfig_template "openssl"` - pkg_libcrypto=lib`printf $enable_openssl_pkgconfig_template "crypto"` - if $PKG_CONFIG --exists "$pkg_openssl >= 1.0.1" >/dev/null 2>&1; then - AC_DEFINE(HAVE_OPENSSL) - if test "$enable_openssl" = "maybe"; then - enable_openssl=yes - fi - - # Check whether --static is needed (don't assume name of ssl lib) - # There may be dependent libraries or -pthread. - O_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs-only-L $pkg_openssl`" - libssl="`$PKG_CONFIG --libs-only-l $pkg_openssl | sed 's/^ *-l//'`" - libssl_extra="`echo $libssl | sed 's/^[[^ ]]* *//'`" - libssl="`echo $libssl | sed 's/ .*//'`" - AC_CHECK_LIB($libssl, SSL_new, [STATIC=""], [STATIC="--static"], [$libssl_extra]) - LDFLAGS="$O_LDFLAGS" - - # Use pkg-config to determine OpenSSL libs and cflags - for f in `$PKG_CONFIG $STATIC --libs $pkg_openssl`; do - case "$f" in - -L*) - f="${f#-L}" - SUDO_APPEND_LIBPATH([LIBTLS], [$f]) - ;; - *) - AX_APPEND_FLAG([$f], [LIBTLS]) - ;; - esac - done - if $PKG_CONFIG --exists $pkg_libcrypto >/dev/null 2>&1; then - # Use OpenSSL's sha2 functions if possible (don't assume name of crypto) - O_LDFLAGS="$LDFLAGS" - libcrypto= - libcrypto_extra= - for f in `$PKG_CONFIG $STATIC --libs $pkg_libcrypto`; do - case "$f" in - -l*) - if test -z "$libcrypto"; then - libcrypto="${f#-l}" - else - libcrypto_extra="$libcrypto_extra $f" - fi - ;; - *) - AX_APPEND_FLAG([$f], [LDFLAGS]) - ;; - esac - done - AC_CHECK_LIB($libcrypto, EVP_MD_CTX_new, [DIGEST=digest_openssl.lo], [], [$libcrypto_extra]) - LDFLAGS="$O_LDFLAGS" - - # Use pkg-config to determine libcrypto libs and cflags - for f in `$PKG_CONFIG $STATIC --libs $pkg_libcrypto`; do - case "$f" in - -L*) - f="${f#-L}" - SUDO_APPEND_LIBPATH([LIBCRYPTO], [$f]) - ;; - *) - AX_APPEND_FLAG([$f], [LIBCRYPTO]) - ;; - esac - done - else - # No separate pkg config for libcrypto - LIBCRYPTO="$LIBTLS" - LIBCRYPTO_R="$LIBTLS_R" - fi - for f in `$PKG_CONFIG --cflags-only-I $pkg_openssl`; do - AX_APPEND_FLAG([$f], [CPPFLAGS]) - done - else - # No pkg-config file present, try to do it manually - O_LDFLAGS="$LDFLAGS" - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then - SUDO_APPEND_LIBPATH(LDFLAGS, [${enable_openssl}/lib]) - fi - AC_CHECK_LIB(ssl, SSL_new, [ - # Check OPENSSL_VERSION_NUMBER in headers - O_CPPFLAGS="$CPPFLAGS" - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then - # Note: we only reset CPPFLAGS on failure - AX_APPEND_FLAG([-I${enable_openssl}/include], [CPPFLAGS]) - fi - AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include -#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x1000100fL -#error "OpenSSL too old" -#endif -]])], [ - # OpenSSL >= 1.0.1 detected, use it. - AC_DEFINE(HAVE_OPENSSL) - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then - SUDO_APPEND_LIBPATH(LIBCRYPTO, [${enable_openssl}/lib]) - SUDO_APPEND_LIBPATH(LIBTLS, [${enable_openssl}/lib]) - else - enable_openssl=yes - fi - LIBCRYPTO="${LIBCRYPTO} -lcrypto" - LIBTLS="${LIBTLS} -lssl -lcrypto" - # Use OpenSSL's sha2 functions if possible - AC_CHECK_LIB(crypto, EVP_MD_CTX_new, [ - DIGEST=digest_openssl.lo - ]) -], [ - # OpenSSL < 1.0.1 detected, ignore it. - if test "$enable_openssl" = "maybe"; then - AC_MSG_WARN([OpenSSL too old (1.0.1 or higher required), Sudo logsrv connections will not be encrypted.]) - enable_openssl=no - else - AC_MSG_ERROR([OpenSSL too old (1.0.1 or higher required).]) - fi - CPPFLAGS="$O_CPPFLAGS" -]) - ], [ - if test "$enable_openssl" = "maybe"; then - openssl_missing=yes - enable_openssl=no - else - AC_MSG_ERROR([OpenSSL development libraries not found.]) - fi - ], [-lcrypto]) - LDFLAGS="$O_LDFLAGS" - fi - if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then - unset PKG_CONFIG_LIBDIR - fi -fi dnl -dnl Note that enable_openssl may be reset above. +dnl Check for OpenSSL or wolfSSL dnl -if test "${enable_openssl-no}" != no; then - OLIBS="$LIBS" - LIBS="$LIBS $LIBTLS" - AC_CHECK_FUNCS([X509_STORE_CTX_get0_cert ASN1_STRING_get0_data SSL_CTX_get0_certificate SSL_CTX_set0_tmp_dh_pkey TLS_method]) - # SSL_CTX_set_min_proto_version may be a macro - AC_CHECK_DECL([SSL_CTX_set_min_proto_version], [AC_DEFINE(HAVE_SSL_CTX_SET_MIN_PROTO_VERSION)], [], [ - AC_INCLUDES_DEFAULT - #include - ]) - # LibreSSL TLS 1.3 support may not be enabled, check for declaration too. - AC_CHECK_FUNC([SSL_CTX_set_ciphersuites], [ - AC_CHECK_DECL([SSL_CTX_set_ciphersuites], [AC_DEFINE(HAVE_SSL_CTX_SET_CIPHERSUITES)], [], [ - AC_INCLUDES_DEFAULT - #include - ]) - ]) - LIBS="$OLIBS" -elif test "${enable_gcrypt-no}" != no; then - # Use gcrypt's sha2 functions - AC_DEFINE(HAVE_GCRYPT) - DIGEST=digest_gcrypt.lo - LIBMD="-lgcrypt" - if test "$enable_gcrypt" != "yes"; then - AX_APPEND_FLAG([-I${enable_gcrypt}/include], [CPPFLAGS]) - SUDO_APPEND_LIBPATH(LDFLAGS, [${enable_gcrypt}/lib]) - fi -fi +SUDO_CHECK_OPENSSL + dnl -dnl Check for OpenSSL compatibility functions in wolfSSL +dnl Check for sha2 functions if not using openssl or wolfssl dnl -if test "${enable_wolfssl-no}" != no; then - # Use pkg-config to find the wolfssl cflags and libs if possible. - if test "$enable_wolfssl" != "yes"; then - PKG_CONFIG_LIBDIR="${enable_wolfssl}/lib/pkgconfig:${enable_wolfssl}/lib64/pkgconfig:${enable_wolfssl}/share/pkgconfig" - export PKG_CONFIG_LIBDIR - elif test "$cross_compiling" = "yes" -a -z "$PKG_CONFIG"; then - # Cannot use pkg-config when cross-compiling - PKG_CONFIG=false - fi - : ${PKG_CONFIG='pkg-config'} - if $PKG_CONFIG --exists wolfssl >/dev/null 2>&1; then - AC_DEFINE(HAVE_OPENSSL) - AC_DEFINE(HAVE_WOLFSSL) - - O_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags-only-I wolfssl`" - O_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs-only-L wolfssl`" - - # Check whether --static is needed - libssl="`$PKG_CONFIG --libs-only-l wolfssl | sed 's/^ *-l//'`" - libssl_extra=`echo $libssl | sed 's/^[[^ ]]* *//'` - libssl=`echo $libssl | sed 's/ .*//'` - AC_CHECK_LIB($libssl, wolfSSL_new, [STATIC=""], [STATIC="--static"], [$libssl_extra]) - - # Use wolfSSL's sha2 functions if possible - AC_CHECK_DECL([EVP_MD_CTX_new], [DIGEST=digest_openssl.lo], [], [ - AC_INCLUDES_DEFAULT - #include - #include - ]) - CPPFLAGS="$O_CPPFLAGS" - LDFLAGS="$O_LDFLAGS" - - # Use pkg-config to determine wolfSSL libs and cflags - for f in `$PKG_CONFIG $STATIC --libs wolfssl`; do - case "$f" in - -L*) - f="${f#-L}" - SUDO_APPEND_LIBPATH([LIBTLS], [$f]) - ;; - *) - AX_APPEND_FLAG([$f], [LIBTLS]) - ;; - esac - done - # No separate pkg config for libcrypto - LIBCRYPTO="$LIBTLS" - LIBCRYPTO_R="$LIBTLS_R" - for f in `$PKG_CONFIG --cflags-only-I wolfssl`; do - AX_APPEND_FLAG([$f], [CPPFLAGS]) - # So we find the openssl compat headers under wolfssl - AX_APPEND_FLAG([$f/wolfssl], [CPPFLAGS]) - done - if test "$CPPFLAGS" = "$O_CPPFLAGS"; then - # So we find the openssl compat headers under wolfssl (XXX) - AX_APPEND_FLAG([-I/usr/include/wolfssl], [CPPFLAGS]) - fi - else - AC_DEFINE(HAVE_OPENSSL) - AC_DEFINE(HAVE_WOLFSSL) - - # No pkg-config file present, try to do it manually - if test "$enable_wolfssl" != "yes"; then - SUDO_APPEND_LIBPATH(LIBCRYPTO, [${enable_wolfssl}/lib]) - SUDO_APPEND_LIBPATH(LIBTLS, [${enable_wolfssl}/lib]) - AX_APPEND_FLAG([-I${enable_wolfssl}/include], [CPPFLAGS]) - # So we find the openssl compat headers under wolfssl - AX_APPEND_FLAG([-I${enable_wolfssl}/include/wolfssl], [CPPFLAGS]) - else - # So we find the openssl compat headers under wolfssl (XXX) - AX_APPEND_FLAG([-I/usr/include/wolfssl], [CPPFLAGS]) - fi - LIBTLS="${LIBTLS} -lwolfssl" - LIBCRYPTO="${LIBCRYPTO} -lwolfssl" - - # Use wolfSSL's sha2 functions if possible - AC_CHECK_DECL([EVP_MD_CTX_new], [DIGEST=digest_openssl.lo], [], [ - AC_INCLUDES_DEFAULT - #include - #include +AS_IF([test "$DIGEST" = "digest.lo"], [ + AS_IF([test "${enable_gcrypt-no}" != no], [ + # Use gcrypt's sha2 functions + AC_DEFINE(HAVE_GCRYPT) + DIGEST=digest_gcrypt.lo + LIBMD="-lgcrypt" + AS_IF([test "$enable_gcrypt" != "yes"], [ + AX_APPEND_FLAG([-I${enable_gcrypt}/include], [CPPFLAGS]) + SUDO_APPEND_LIBPATH(LDFLAGS, [${enable_gcrypt}/lib]) ]) - fi - dnl - dnl Check for specific OpenSSL API compatibility macros - dnl - AC_CHECK_DECL([X509_STORE_CTX_get0_cert], [AC_DEFINE(HAVE_X509_STORE_CTX_GET0_CERT)], [], [ - AC_INCLUDES_DEFAULT - #include - #include - ]) - AC_CHECK_DECL([ASN1_STRING_get0_data], [AC_DEFINE(HAVE_ASN1_STRING_GET0_DATA)], [], [ - AC_INCLUDES_DEFAULT - #include - #include - ]) - AC_CHECK_DECL([SSL_CTX_get0_certificate], [AC_DEFINE(HAVE_SSL_CTX_GET0_CERTIFICATE)], [], [ - AC_INCLUDES_DEFAULT - #include - #include - ]) - AC_CHECK_DECL([SSL_CTX_set0_tmp_dh_pkey], [AC_DEFINE(HAVE_SSL_CTX_SET0_TMP_DH_PKEY)], [], [ - AC_INCLUDES_DEFAULT - #include - #include - ]) - AC_CHECK_DECL([TLS_method], [AC_DEFINE(HAVE_TLS_METHOD)], [], [ - AC_INCLUDES_DEFAULT - #include - #include - ]) - AC_CHECK_DECL([SSL_CTX_set_min_proto_version], [AC_DEFINE(HAVE_SSL_CTX_SET_MIN_PROTO_VERSION)], [], [ - AC_INCLUDES_DEFAULT - #include - #include - ]) - AC_CHECK_DECL([SSL_CTX_set_ciphersuites], [AC_DEFINE(HAVE_SSL_CTX_SET_CIPHERSUITES)], [], [ - AC_INCLUDES_DEFAULT - #include - #include - ]) -fi -dnl -dnl Check for sha2 functions if not using openssl, wolfssl or gcrypt -dnl -if test "$DIGEST" = "digest.lo"; then - FOUND_SHA2=no - AC_CHECK_HEADER([sha2.h], [ - FOUND_SHA2=yes - AC_CHECK_FUNCS([SHA224Update], [SUDO_FUNC_SHA2_VOID_PTR], [ - # On some systems, SHA224Update is in libmd - AC_CHECK_LIB(md, SHA224Update, [ - AC_DEFINE(HAVE_SHA224UPDATE) - SUDO_FUNC_SHA2_VOID_PTR - LIBMD="-lmd" - ], [ - # Does not have SHA224Update - FOUND_SHA2=no + ], [ + # Use sudo's sha2 functions if not in libmd or libc. + FOUND_SHA2=no + AC_CHECK_HEADER([sha2.h], [ + FOUND_SHA2=yes + AC_CHECK_FUNCS([SHA224Update], [SUDO_FUNC_SHA2_VOID_PTR], [ + # On some systems, SHA224Update is in libmd + AC_CHECK_LIB([md], [SHA224Update], [ + AC_DEFINE(HAVE_SHA224UPDATE) + SUDO_FUNC_SHA2_VOID_PTR + LIBMD="-lmd" + ], [ + # Does not have SHA224Update + FOUND_SHA2=no + ]) ]) ]) + AS_IF([test X"$FOUND_SHA2" = X"no"], [ + AC_LIBOBJ(sha2) + SUDO_APPEND_COMPAT_EXP(sudo_SHA224Final sudo_SHA224Init sudo_SHA224Pad sudo_SHA224Transform sudo_SHA224Update sudo_SHA256Final sudo_SHA256Init sudo_SHA256Pad sudo_SHA256Transform sudo_SHA256Update sudo_SHA384Final sudo_SHA384Init sudo_SHA384Pad sudo_SHA384Transform sudo_SHA384Update sudo_SHA512Final sudo_SHA512Init sudo_SHA512Pad sudo_SHA512Transform sudo_SHA512Update) + ]) ]) - if test X"$FOUND_SHA2" = X"no"; then - AC_LIBOBJ(sha2) - SUDO_APPEND_COMPAT_EXP(sudo_SHA224Final sudo_SHA224Init sudo_SHA224Pad sudo_SHA224Transform sudo_SHA224Update sudo_SHA256Final sudo_SHA256Init sudo_SHA256Pad sudo_SHA256Transform sudo_SHA256Update sudo_SHA384Final sudo_SHA384Init sudo_SHA384Pad sudo_SHA384Transform sudo_SHA384Update sudo_SHA512Final sudo_SHA512Init sudo_SHA512Pad sudo_SHA512Transform sudo_SHA512Update) - fi -fi +]) + dnl -dnl If socket(2) not in libc, check -lsocket and -linet -dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols +dnl Network functions may live in libsocket, libinet, libnsl, or libresolv. +dnl Order is important here. dnl -OLIBS="$LIBS" -LIBS="${LIBS} ${NET_LIBS}" -AC_CHECK_FUNC([socket], [], [ - for libs in "-lsocket" "-linet" "-lsocket -lnsl"; do - _libs= - for lib in $libs; do - case "$NET_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`" - SUDO_CHECK_LIB($lib, socket, [NET_LIBS="${NET_LIBS} $libs"; break], [], [$extralibs]) - done -]) -LIBS="$OLIBS" +SUDO_CHECK_NET_FUNC([socket]) + dnl -dnl If inet_pton(3) not in libc, check -lnsl and -linet -dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols -dnl Some systems may have inet_pton() in libresolv. +dnl We need to keep track of inet_pton()'s dependent libraries for +dnl our getaddrinfo() replacement. dnl -OLIBS="$LIBS" -LIBS="${LIBS} ${NET_LIBS}" -found=false -INET_PTON_LIBS= -AC_CHECK_FUNC([inet_pton], [ - found=true +ONET_LIBS="$NET_LIBS" +SUDO_CHECK_NET_FUNC([inet_pton], [ AC_DEFINE(HAVE_INET_PTON) -], [ - for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do - _libs= - for lib in $libs; do - case "$NET_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`" - SUDO_CHECK_LIB($lib, inet_pton, [ - found=true - AC_DEFINE(HAVE_INET_PTON) - NET_LIBS="${NET_LIBS} $libs" - INET_PTON_LIBS="$libs" - case "$libs" in - *-lresolv*) - AC_DEFINE(NEED_RESOLV_H) - ;; - esac - break - ], [], [$extralibs]) + INET_PTON_LIBS= + for lib in $NET_LIBS; do + case "$ONET_LIBS" in + *"$lib"*) ;; + *) INET_PTON_LIBS="${INET_PTON_LIBS}${INET_PTON_LIBS+ }$lib";; + esac done -]) -LIBS="$OLIBS" -if test X"$found" != X"true"; then +], [ AC_LIBOBJ(inet_pton) SUDO_APPEND_COMPAT_EXP(sudo_inet_pton) -fi +]) + dnl -dnl If inet_ntop(3) not in libc, check -lnsl and -linet -dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols -dnl Some systems may have inet_ntop() in libresolv. +dnl The check for inet_ntop() must follow inet_pton() for INET_PTON_LIBS. dnl -OLIBS="$LIBS" -LIBS="${LIBS} ${NET_LIBS}" -found=false -AC_CHECK_FUNC([inet_ntop], [ - found=true +SUDO_CHECK_NET_FUNC([inet_ntop], [ AC_DEFINE(HAVE_INET_NTOP) ], [ - for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do - _libs= - for lib in $libs; do - case "$NET_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`" - SUDO_CHECK_LIB($lib, inet_ntop, [ - found=true - AC_DEFINE(HAVE_INET_NTOP) - NET_LIBS="${NET_LIBS} $libs" - break - ], [], [$extralibs]) - done -]) -LIBS="$OLIBS" -if test X"$found" != X"true"; then AC_LIBOBJ(inet_ntop) SUDO_APPEND_COMPAT_EXP(sudo_inet_ntop) -fi +]) + dnl -dnl If syslog(3) not in libc, check -lsocket, -lnsl and -linet +dnl The check for syslog() must be last so we can detect INET_PTON_LIBS. +dnl +SUDO_CHECK_NET_FUNC([syslog]) + +dnl +dnl Check for getaddrinfo and add any required libs to NET_LIBS. +dnl If it was added to LIBOBJS we need to export the symbols. dnl -OLIBS="$LIBS" -LIBS="${LIBS} ${NET_LIBS}" -AC_CHECK_FUNC([syslog], [], [ - for libs in "-lsocket" "-linet" "-lsocket -lnsl"; do - _libs= - for lib in $libs; do - case "$NET_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`" - SUDO_CHECK_LIB($lib, syslog, [NET_LIBS="${NET_LIBS} $libs"; break], [], [$extralibs]) - done -]) -LIBS="$OLIBS" -# -# Check for getaddrinfo and add any required libs to NET_LIBS. -# If it was added to LIBOBJS we need to export the symbols. -# OLIBS="$LIBS" GETADDRINFO_LIBS= AX_FUNC_GETADDRINFO @@ -3502,26 +3136,11 @@ case " $LIBOBJS " in SUDO_APPEND_COMPAT_EXP(sudo_getaddrinfo sudo_freeaddrinfo sudo_gai_strerror) # We need libsudo_util to pull in dependent libraries for # inet_pton(), gethostbyname(), and getservbyname() - if test -n "${INET_PTON_LIBS}"; then + AS_IF([test -n "${INET_PTON_LIBS}"], [ LT_DEP_LIBS="${LT_DEP_LIBS}${LT_DEP_LIBS+ }${INET_PTON_LIBS}" LIBS="${LIBS}${LIBS+ }${INET_PTON_LIBS}" - fi - AC_CHECK_FUNC([gethostbyname], [], [ - for libs in "-lsocket" "-linet" "-lsocket -lnsl"; do - _libs= - for lib in $libs; do - case "$LT_DEP_LIBS" in - *"$lib"*) ;; - *) _libs="$_libs $lib";; - esac - done - libs="${_libs# }" - test -z "$libs" && continue - lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" - extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`" - SUDO_CHECK_LIB($lib, gethostbyname, [LT_DEP_LIBS="${LT_DEP_LIBS} $libs"; break], [], [$extralibs]) - done ]) + SUDO_CHECK_NET_FUNC([gethostbyname]) ;; *) for lib in $LIBS; do @@ -3530,7 +3149,7 @@ case " $LIBOBJS " in *) GETADDRINFO_LIBS="${GETADDRINFO_LIBS}${GETADDRINFO_LIBS+ }$lib";; esac done - if test -n "${GETADDRINFO_LIBS}"; then + AS_IF([test -n "${GETADDRINFO_LIBS}"], [ # We need libsudo_util to pull in dependent libraries for # gai_strerror() LT_DEP_LIBS="${LT_DEP_LIBS}${LT_DEP_LIBS+ }${GETADDRINFO_LIBS}" @@ -3543,7 +3162,7 @@ case " $LIBOBJS " in *) NET_LIBS="${NET_LIBS}${NET_LIBS+ }$lib";; esac done - fi + ]) ;; esac LIBS="$OLIBS" @@ -3556,18 +3175,18 @@ AC_CACHE_CHECK([for va_copy], sudo_cv_func_va_copy, [ va_list ap1, ap2;]], [[va_copy(ap1, ap2);]])], [sudo_cv_func_va_copy=yes], [sudo_cv_func_va_copy=no]) ]) -if test "$sudo_cv_func_va_copy" = "yes"; then +AS_IF([test "$sudo_cv_func_va_copy" = "yes"], [ AC_DEFINE(HAVE_VA_COPY) -else +], [ AC_CACHE_CHECK([for __va_copy], sudo_cv_func___va_copy, [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include va_list ap1, ap2;]], [[__va_copy(ap1, ap2);]])], [sudo_cv_func___va_copy=yes], [sudo_cv_func___va_copy=no]) ]) - if test "$sudo_cv_func___va_copy" = "yes"; then + AS_IF([test "$sudo_cv_func___va_copy" = "yes"], [ AC_DEFINE(HAVE___VA_COPY) - fi -fi + ]) +]) dnl dnl Check for getprogname()/setprogname() or __progname @@ -3577,87 +3196,36 @@ AC_CHECK_FUNCS([getprogname], [ ], [ AC_CACHE_CHECK([for __progname], sudo_cv___progname, [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[extern char *__progname; if (__progname[0] == '\0') return 1;]])], [sudo_cv___progname=yes], [sudo_cv___progname=no])]) - if test "$sudo_cv___progname" = "yes"; then + AS_IF([test "$sudo_cv___progname" = "yes"], [ AC_DEFINE(HAVE___PROGNAME) - fi + ]) SUDO_APPEND_COMPAT_EXP(sudo_getprogname) SUDO_APPEND_COMPAT_EXP(sudo_setprogname) ]) + dnl dnl Check for __func__ or __FUNCTION__ dnl AC_CACHE_CHECK([for __func__], sudo_cv___func__, [ -AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[if (__func__[0] == '\0') return 1;]])], [sudo_cv___func__=yes], [sudo_cv___func__=no])]) -if test "$sudo_cv___func__" = "yes"; then + AS_IF([test X"$ac_cv_prog_cc_c99" = X"no"], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[if (__func__[0] == '\0') return 1;]])], [sudo_cv___func__=yes], [sudo_cv___func__=no]) + ], [ + # C99 and higher support __func__ + sudo_cv___func__=yes + ]) +]) +AS_IF([test "$sudo_cv___func__" = "yes"], [ AC_DEFINE(HAVE___FUNC__) -elif test -n "$GCC"; then +], [test -n "$GCC"], [ AC_CACHE_CHECK([for __FUNCTION__], sudo_cv___FUNCTION__, [ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[if(__FUNCTION__[0] == '\0') return 1;]])], [sudo_cv___FUNCTION__=yes], [sudo_cv___FUNCTION__=no])]) - if test "$sudo_cv___FUNCTION__" = "yes"; then + AS_IF([test "$sudo_cv___FUNCTION__" = "yes"], [ AC_DEFINE(HAVE___FUNC__) AC_DEFINE(__func__, __FUNCTION__, [Define to __FUNCTION__ if your compiler supports __FUNCTION__ but not __func__]) - fi -fi - -# gettext() and friends may be located in libc (Linux and Solaris) -# or in libintl. However, it is possible to have libintl installed -# even when gettext() is present in libc. In the case of GNU libintl, -# gettext() will be defined to gettext_libintl in libintl.h. -# Since gcc prefers /usr/local/include to /usr/include, we need to -# make sure we use the gettext() that matches the include file. -if test "$enable_nls" != "no"; then - if test "$enable_nls" != "yes"; then - AX_APPEND_FLAG([-I${enable_nls}/include], [CPPFLAGS]) - SUDO_APPEND_LIBPATH(LDFLAGS, [$enable_nls/lib]) - fi - OLIBS="$LIBS" - for l in "libc" "-lintl" "-lintl -liconv"; do - if test "$l" = "libc"; then - # If user specified a dir for libintl ignore libc - if test "$enable_nls" != "yes"; then - continue - fi - gettext_name=sudo_cv_gettext - AC_MSG_CHECKING([for gettext]) - else - LIBS="$OLIBS $l" - gettext_name=sudo_cv_gettext"`echo $l|sed -e 's/ //g' -e 's/-/_/g'`" - AC_MSG_CHECKING([for gettext in $l]) - fi - AC_CACHE_VAL($gettext_name, [ - AC_LINK_IFELSE( - [ - AC_LANG_PROGRAM([[#include ]], [(void)gettext((char *)0);]) - ], [eval $gettext_name=yes], [eval $gettext_name=no] - ) - ]) - eval gettext_result="\$$gettext_name" - AC_MSG_RESULT($gettext_result) - if test "$gettext_result" = "yes"; then - AC_CHECK_FUNCS([ngettext]) - break - fi - done - LIBS="$OLIBS" + ]) +]) - if test "$sudo_cv_gettext" = "yes"; then - SUDO_NLS=enabled - # For Solaris we need links from lang to lang.UTF-8 in localedir - case "$host_os" in - solaris2*) LOCALEDIR_SUFFIX=".UTF-8";; - esac - elif test "$sudo_cv_gettext_lintl" = "yes"; then - SUDO_NLS=enabled - LIBINTL="-lintl" - elif test "$sudo_cv_gettext_lintl_liconv" = "yes"; then - SUDO_NLS=enabled - LIBINTL="-lintl -liconv" - fi - if test X"$SUDO_NLS" = X"enabled"; then - AC_DEFINE(HAVE_LIBINTL_H) - SUDO_APPEND_COMPAT_EXP(sudo_warn_gettext_v1) - fi -fi +SUDO_CHECK_GETTEXT dnl dnl Deferred zlib option processing. @@ -3667,7 +3235,7 @@ dnl prepend the include dir to make sure we get the right zlib header. dnl case "$enable_zlib" in yes) - AC_CHECK_LIB(z, gzclearerr, [ + AC_CHECK_LIB([z], [gzclearerr], [ AC_CHECK_HEADERS([zlib.h], [ZLIB="-lz"], [enable_zlib=builtin]) ]) ;; @@ -3696,16 +3264,34 @@ case "$enable_zlib" in ZLIB_SRC=lib/zlib AC_CONFIG_HEADERS([lib/zlib/zconf.h]) AC_CONFIG_FILES([lib/zlib/Makefile]) - if test X"$enable_shared" = X"no" -o "$enable_zlib" = "static"; then - if test "$enable_zlib" = "shared"; then + AS_IF([test X"$enable_shared" = X"no" -o "$enable_zlib" = "static"], [ + AS_IF([test "$enable_zlib" = "shared"], [ AC_MSG_ERROR([unable to build shared libraries on this system]) - fi + ]) # Build as convenience library ZLIB_LDFLAGS=-no-install - fi + ]) ;; esac +dnl +dnl Check for NSIG, _NSIG or __NSIG declarations in signal.h +dnl +AC_CHECK_DECLS([NSIG], [], [ + AC_CHECK_DECLS([_NSIG], [], [ + AC_CHECK_DECLS([__NSIG], [], [], [ +AC_INCLUDES_DEFAULT +#include + ]) + ], [ +AC_INCLUDES_DEFAULT +#include + ]) +], [ +AC_INCLUDES_DEFAULT +#include +]) + dnl dnl Check for errno declaration in errno.h dnl @@ -3741,36 +3327,36 @@ AC_CHECK_DECLS([SIZE_MAX], [], [], [ dnl dnl Try to find equivalents for missing types dnl -if test "$ac_cv_have_decl_LLONG_MAX" != "yes"; then +AS_IF([test "$ac_cv_have_decl_LLONG_MAX" != "yes"], [ AC_CHECK_DECLS([QUAD_MAX], [], [], [[ #include #include ]]) -fi -if test "$ac_cv_have_decl_LLONG_MIN" != "yes"; then +]) +AS_IF([test "$ac_cv_have_decl_LLONG_MIN" != "yes"], [ AC_CHECK_DECLS([QUAD_MIN], [], [], [[ #include #include ]]) -fi -if test "$ac_cv_have_decl_ULLONG_MAX" != "yes"; then +]) +AS_IF([test "$ac_cv_have_decl_ULLONG_MAX" != "yes"], [ AC_CHECK_DECLS([UQUAD_MAX], [], [], [[ #include #include ]]) -fi -if test "$ac_cv_have_decl_SIZE_MAX" != "yes"; then +]) +AS_IF([test "$ac_cv_have_decl_SIZE_MAX" != "yes"], [ AC_CHECK_DECLS([SIZE_T_MAX], [], [], [[ #include #include ]]) -fi -if test "$ac_cv_have_decl_PATH_MAX" != "yes"; then +]) +AS_IF([test "$ac_cv_have_decl_PATH_MAX" != "yes"], [ AC_CHECK_DECLS([_POSIX_PATH_MAX], [], [], [[ #include #include ]]) -fi +]) dnl dnl Check for strsignal() or sys_siglist @@ -3779,15 +3365,18 @@ AC_CHECK_FUNCS([strsignal], [], [ AC_LIBOBJ(strsignal) SUDO_APPEND_COMPAT_EXP(sudo_strsignal) HAVE_SIGLIST="false" - AC_CHECK_DECLS([sys_siglist, _sys_siglist], [ - HAVE_SIGLIST="true" - ], [ ], [ + AC_CHECK_DECLS([sys_siglist], [HAVE_SIGLIST="true"], [ + AC_CHECK_DECLS([_sys_siglist], [HAVE_SIGLIST="true"], [], [ +AC_INCLUDES_DEFAULT +#include + ]) + ], [ AC_INCLUDES_DEFAULT #include ]) - if test "$HAVE_SIGLIST" != "true"; then + AS_IF([test "$HAVE_SIGLIST" != "true"], [ AC_LIBOBJ(siglist) - fi + ]) ]) dnl @@ -3809,18 +3398,26 @@ dnl dnl Check for sys_signame or sys_sigabbrev if missing sig2str() or str2sig(). dnl Also enable unit tests for sig2str() and str2sig(). dnl -if test x"${ac_cv_func_sig2str}${ac_cv_func_str2sig}" != x"yesyes"; then +AS_IF([test x"${ac_cv_func_sig2str}${ac_cv_func_str2sig}" != x"yesyes"], [ AC_CHECK_FUNCS([sigabbrev_np]) - if test x"${ac_cv_func_sigabbrev_np}" != x"yes"; then + AS_IF([test x"${ac_cv_func_sigabbrev_np}" != x"yes"], [ COMPAT_TEST_PROGS="${COMPAT_TEST_PROGS}${COMPAT_TEST_PROGS+ }strsig_test" HAVE_SIGNAME="false" - AC_CHECK_DECLS([sys_signame, _sys_signame, sys_sigabbrev], [ - HAVE_SIGNAME="true" - ], [ ], [ + AC_CHECK_DECLS([sys_signame], [HAVE_SIGNAME="true"], [ + AC_CHECK_DECLS([_sys_signame], [HAVE_SIGNAME="true"], [ + AC_CHECK_DECLS([sys_sigabbrev], [HAVE_SIGNAME="true"], [], [ +AC_INCLUDES_DEFAULT +#include + ]) + ], [ +AC_INCLUDES_DEFAULT +#include + ]) + ], [ AC_INCLUDES_DEFAULT #include ]) - if test "$HAVE_SIGNAME" != "true"; then + AS_IF([test "$HAVE_SIGNAME" != "true"], [ AC_CACHE_CHECK([for undeclared sys_sigabbrev], [sudo_cv_var_sys_sigabbrev], [AC_LINK_IFELSE( @@ -3830,15 +3427,15 @@ AC_INCLUDES_DEFAULT ) ] ) - if test "$sudo_cv_var_sys_sigabbrev" = yes; then + AS_IF([test "$sudo_cv_var_sys_sigabbrev" = yes], [ AC_DEFINE(HAVE_SYS_SIGABBREV) - else + ], [ AC_LIBOBJ(signame) SIGNAME=signame.lo - fi - fi - fi -fi + ]) + ]) + ]) +]) dnl dnl Check for dl_iterate_phdr, may require -ldl @@ -3851,13 +3448,13 @@ LIBS="$OLIBS" dnl dnl nsswitch.conf and its equivalents dnl -if test ${with_netsvc-"no"} != "no"; then +AS_IF([test ${with_netsvc-"no"} != "no"], [ SUDO_DEFINE_UNQUOTED(_PATH_NETSVC_CONF, "${with_netsvc-/etc/netsvc.conf}") netsvc_conf=${with_netsvc-/etc/netsvc.conf} -elif test ${with_nsswitch-"yes"} != "no"; then +], [test ${with_nsswitch-"yes"} != "no"], [ SUDO_DEFINE_UNQUOTED(_PATH_NSSWITCH_CONF, "${with_nsswitch-/etc/nsswitch.conf}") nsswitch_conf=${with_nsswitch-/etc/nsswitch.conf} -fi +]) dnl dnl Mutually exclusive auth checks come first, followed by @@ -3868,7 +3465,7 @@ dnl dnl Convert default authentication methods to with_* if dnl no explicit authentication scheme was specified. dnl -if test -z "${AUTH_EXCL}${AUTH_REG}" -a -n "$AUTH_EXCL_DEF"; then +AS_IF([test -z "${AUTH_EXCL}${AUTH_REG}" -a -n "$AUTH_EXCL_DEF"], [ for auth in $AUTH_EXCL_DEF; do case $auth in AIX_AUTH) with_aixauth=maybe;; @@ -3877,44 +3474,44 @@ if test -z "${AUTH_EXCL}${AUTH_REG}" -a -n "$AUTH_EXCL_DEF"; then SIA) CHECKSIA=true;; esac done -fi +]) dnl dnl PAM support. Systems that use PAM by default set with_pam=default dnl and we do the actual tests here. dnl -if test ${with_pam-"no"} != "no"; then +AS_IF([test ${with_pam-"no"} != "no"], [ # # Check for pam_start() in libpam first, then for pam_appl.h. # found_pam_lib=no - AC_CHECK_LIB(pam, pam_start, [found_pam_lib=yes], [], [$lt_cv_dlopen_libs]) + AC_CHECK_LIB([pam], [pam_start], [found_pam_lib=yes], [], [$lt_cv_dlopen_libs]) # # Some PAM implementations (macOS for example) put the PAM headers # in /usr/include/pam instead of /usr/include/security... # found_pam_hdrs=no AC_CHECK_HEADERS([security/pam_appl.h] [pam/pam_appl.h], [found_pam_hdrs=yes; break]) - if test "$found_pam_lib" = "yes" -a "$found_pam_hdrs" = "yes"; then + AS_IF([test "$found_pam_lib" = "yes" -a "$found_pam_hdrs" = "yes"], [ # Found both PAM libs and headers with_pam=yes - elif test "$with_pam" = "yes"; then - if test "$found_pam_lib" = "no"; then + ], [test "$with_pam" = "yes"], [ + AS_IF([test "$found_pam_lib" = "no"], [ AC_MSG_ERROR([--with-pam specified but unable to locate PAM development library.]) - fi - if test "$found_pam_hdrs" = "no"; then + ]) + AS_IF([test "$found_pam_hdrs" = "no"], [ AC_MSG_ERROR([--with-pam specified but unable to locate PAM development headers.]) - fi - elif test "$found_pam_lib" != "$found_pam_hdrs"; then - if test "$found_pam_lib" = "no"; then + ]) + ], [test "$found_pam_lib" != "$found_pam_hdrs"], [ + AS_IF([test "$found_pam_lib" = "no"], [ AC_MSG_ERROR([found PAM headers but no PAM development library; specify --without-pam to build without PAM]) - fi - if test "$found_pam_hdrs" = "no"; then + ]) + AS_IF([test "$found_pam_hdrs" = "no"], [ AC_MSG_ERROR([found PAM library but no PAM development headers; specify --without-pam to build without PAM]) - fi - fi + ]) + ]) - if test "$with_pam" = "yes"; then + AS_IF([test "$with_pam" = "yes"], [ # Older PAM implementations lack pam_getenvlist OLIBS="$LIBS" LIBS="$LIBS -lpam $lt_cv_dlopen_libs" @@ -3947,77 +3544,75 @@ if test ${with_pam-"no"} != "no"; then *) AC_MSG_WARN([ignoring unknown argument to --enable-pam-session: $enableval]) ;; esac]) - fi -fi + ]) +]) dnl dnl AIX general authentication dnl We may build in support for both AIX LAM and PAM and select dnl which one to use at run-time. dnl -if test ${with_aixauth-'no'} != "no"; then +AS_IF([test ${with_aixauth-'no'} != "no"], [ AC_CHECK_FUNCS([authenticate], [with_aixauth=yes]) - if test "${with_aixauth}" = "yes"; then + AS_IF([test "${with_aixauth}" = "yes"], [ AC_MSG_NOTICE([using AIX general authentication]) AC_DEFINE(HAVE_AIXAUTH) AUTH_OBJS="$AUTH_OBJS aix_auth.lo"; SUDOERS_LIBS="${SUDOERS_LIBS} -ls" AUTH_EXCL=AIX_AUTH - fi -fi + ]) +]) dnl dnl BSD authentication dnl If set to "maybe" only enable if no other exclusive method in use. dnl -if test ${with_bsdauth-'no'} != "no"; then +AS_IF([test ${with_bsdauth-'no'} != "no"], [ AC_CHECK_HEADER(bsd_auth.h, AC_DEFINE(HAVE_BSD_AUTH_H) [AUTH_OBJS="$AUTH_OBJS bsdauth.lo"] [BSDAUTH_USAGE='[[-a type]] '] [AUTH_EXCL=BSD_AUTH; BAMAN=1], [AC_MSG_ERROR([BSD authentication was specified but bsd_auth.h could not be found])]) -fi +]) dnl dnl SIA authentication for Tru64 Unix dnl -if test ${CHECKSIA-'false'} = "true"; then +AS_IF([test ${CHECKSIA-'false'} = "true"], [ AC_CHECK_FUNCS([sia_ses_init], [found=true], [found=false]) - if test "$found" = "true"; then + AS_IF([test "$found" = "true"], [ AUTH_EXCL=SIA AUTH_OBJS="$AUTH_OBJS sia.lo" - fi -fi + ]) +]) dnl dnl extra FWTK libs + includes dnl -if test ${with_fwtk-'no'} != "no"; then - if test "$with_fwtk" != "yes"; then +AS_IF([test ${with_fwtk-'no'} != "no"], [ + AS_IF([test "$with_fwtk" != "yes"], [ SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_fwtk}]) AX_APPEND_FLAG([-I${with_fwtk}], [CPPFLAGS]) with_fwtk=yes - fi + ]) SUDOERS_LIBS="${SUDOERS_LIBS} -lauth -lfwall" AUTH_OBJS="$AUTH_OBJS fwtk.lo" -fi +]) dnl dnl extra SecurID lib + includes dnl -if test ${with_SecurID-'no'} != "no"; then - if test "$with_SecurID" != "yes"; then - : - elif test -d /usr/ace/examples; then +AS_IF([test ${with_SecurID-'no'} != "no"], [ + AS_IF([test "$with_SecurID" != "yes"], [], [test -d /usr/ace/examples], [ with_SecurID=/usr/ace/examples - else + ], [ with_SecurID=/usr/ace - fi + ]) AX_APPEND_FLAG([-I${with_SecurID}], [CPPFLAGS]) SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_SecurID}]) SUDOERS_LIBS="${SUDOERS_LIBS} -laceclnt -lpthread" AUTH_OBJS="$AUTH_OBJS securid5.lo"; -fi +]) dnl dnl Non-mutually exclusive auth checks come next. @@ -4028,21 +3623,21 @@ dnl dnl Convert default authentication methods to with_* if dnl no explicit authentication scheme was specified. dnl -if test -z "${AUTH_EXCL}" -a -n "$AUTH_DEF"; then +AS_IF([test -z "${AUTH_EXCL}" -a -n "$AUTH_DEF"], [ for auth in $AUTH_DEF; do case $auth in passwd) : ${with_passwd='maybe'};; esac done -fi +]) dnl dnl Kerberos V dnl There is an easy way and a hard way... dnl -if test ${with_kerb5-'no'} != "no"; then +AS_IF([test ${with_kerb5-'no'} != "no"], [ AC_CHECK_PROG(KRB5CONFIG, krb5-config, yes, "") - if test -n "$KRB5CONFIG"; then + AS_IF([test -n "$KRB5CONFIG"], [ AC_DEFINE(HAVE_KERB5) AUTH_OBJS="$AUTH_OBJS kerb5.lo" for f in `krb5-config --cflags`; do @@ -4060,27 +3655,27 @@ if test ${with_kerb5-'no'} != "no"; then AC_MSG_RESULT(no) ] ) - else + ], [ AC_DEFINE(HAVE_KERB5) dnl dnl Use the specified directory, if any, else search for correct inc dir dnl - if test "$with_kerb5" = "yes"; then + AS_IF([test "$with_kerb5" = "yes"], [ found=no O_CPPFLAGS="$CPPFLAGS" for dir in "" "kerberosV/" "krb5/" "kerberos5/" "kerberosv5/"; do CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}" AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include ]])], [found=yes; break]) done - if test X"$found" = X"no"; then + AS_IF([test X"$found" = X"no"], [ CPPFLAGS="$O_CPPFLAGS" AC_MSG_WARN([unable to locate Kerberos V include files, you will have to edit the Makefile and add -I/path/to/krb/includes to CPPFLAGS]) - fi - else + ]) + ], [ dnl XXX - try to include krb5.h here too SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_kerb5}/lib]) AX_APPEND_FLAG([-I${with_kerb5}/include], [CPPFLAGS]) - fi + ]) dnl dnl Try to determine whether we have Heimdal or MIT Kerberos @@ -4091,14 +3686,14 @@ if test ${with_kerb5-'no'} != "no"; then AC_DEFINE(HAVE_HEIMDAL) # XXX - need to check whether -lcrypo is needed! SUDOERS_LIBS="${SUDOERS_LIBS} -lkrb5 -lcrypto -ldes -lcom_err -lasn1" - AC_CHECK_LIB(roken, main, [SUDOERS_LIBS="${SUDOERS_LIBS} -lroken"]) + AC_CHECK_LIB([roken], [main], [SUDOERS_LIBS="${SUDOERS_LIBS} -lroken"]) ], [ AC_MSG_RESULT(no) SUDOERS_LIBS="${SUDOERS_LIBS} -lkrb5 -lk5crypto -lcom_err" - AC_CHECK_LIB(krb5support, main, [SUDOERS_LIBS="${SUDOERS_LIBS} -lkrb5support"]) + AC_CHECK_LIB([krb5support], [main], [SUDOERS_LIBS="${SUDOERS_LIBS} -lkrb5support"]) ]) AUTH_OBJS="$AUTH_OBJS kerb5.lo" - fi + ]) _LIBS="$LIBS" LIBS="${LIBS} ${SUDOERS_LIBS}" AC_CHECK_FUNCS([krb5_verify_user krb5_init_secure_context]) @@ -4114,9 +3709,9 @@ if test ${with_kerb5-'no'} != "no"; then ] ) ]) - if test X"$sudo_cv_krb5_get_init_creds_opt_free_two_args" = X"yes"; then + AS_IF([test X"$sudo_cv_krb5_get_init_creds_opt_free_two_args" = X"yes"], [ AC_DEFINE(HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS) - fi + ]) LIBS="$_LIBS" AC_ARG_ENABLE(kerb5-instance, [AS_HELP_STRING([--enable-kerb5-instance], [instance string to append to the username (separated by a slash)])], @@ -4127,94 +3722,93 @@ if test ${with_kerb5-'no'} != "no"; then *) SUDO_DEFINE_UNQUOTED(SUDO_KRB5_INSTANCE, "$enableval") ;; esac]) -fi +]) dnl dnl extra AFS libs and includes dnl -if test ${with_AFS-'no'} = "yes"; then - +AS_IF([test ${with_AFS-'no'} = "yes"], [ # looks like the "standard" place for AFS libs is /usr/afsws/lib AFSLIBDIRS="/usr/lib/afs /usr/afsws/lib /usr/afsws/lib/afs" for i in $AFSLIBDIRS; do - if test -d ${i}; then + AS_IF([test -d ${i}], [ SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [$i]) FOUND_AFSLIBDIR=true - fi + ]) done - if test -z "$FOUND_AFSLIBDIR"; then + AS_IF([test -z "$FOUND_AFSLIBDIR"], [ AC_MSG_WARN([unable to locate AFS libraries, you will have to edit the Makefile and add -L/path/to/afs/libs to SUDOERS_LDFLAGS or rerun configure with the --with-libpath options.]) - fi + ]) # Order is important here. Note that we build AFS_LIBS from right to left # since AFS_LIBS may be initialized with BSD compat libs that must go last AFS_LIBS="-laudit ${AFS_LIBS}" for i in $AFSLIBDIRS; do - if test -f ${i}/util.a; then + AS_IF([test -f ${i}/util.a], [ AFS_LIBS="${i}/util.a ${AFS_LIBS}" FOUND_UTIL_A=true break; - fi + ]) done - if test -z "$FOUND_UTIL_A"; then + AS_IF([test -z "$FOUND_UTIL_A"], [ AFS_LIBS="-lutil ${AFS_LIBS}" - fi + ]) AFS_LIBS="-lkauth -lprot -lubik -lauth -lrxkad -lsys -ldes -lrx -llwp -lcom_err ${AFS_LIBS}" # AFS includes may live in /usr/include on some machines... for i in /usr/afsws/include; do - if test -d ${i}; then + AS_IF([test -d ${i}], [ AX_APPEND_FLAG([-I${i}], [CPPFLAGS]) FOUND_AFSINCDIR=true - fi + ]) done - if test -z "$FOUND_AFSLIBDIR"; then + AS_IF([test -z "$FOUND_AFSLIBDIR"], [ AC_MSG_WARN([unable to locate AFS include dir, you may have to edit the Makefile and add -I/path/to/afs/includes to CPPFLAGS or rerun configure with the --with-incpath options.]) - fi + ]) AUTH_OBJS="$AUTH_OBJS afs.lo" -fi +]) dnl dnl extra DCE obj + lib dnl Order of libs in HP-UX 10.x is important, -ldce must be last. dnl -if test ${with_DCE-'no'} = "yes"; then +AS_IF([test ${with_DCE-'no'} = "yes"], [ DCE_OBJS="${DCE_OBJS} dce_pwent.o" SUDOERS_LIBS="${SUDOERS_LIBS} -ldce" AUTH_OBJS="$AUTH_OBJS dce.lo" -fi +]) dnl dnl extra S/Key lib and includes dnl -if test "${with_skey-'no'}" = "yes"; then +AS_IF([test "${with_skey-'no'}" = "yes"], [ O_LDFLAGS="$LDFLAGS" - if test "$with_skey" != "yes"; then + AS_IF([test "$with_skey" != "yes"], [ AX_APPEND_FLAG([-I${with_skey}/include], [CPPFLAGS]) LDFLAGS="$LDFLAGS -L${with_skey}/lib" SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_skey}/lib]) AC_CHECK_HEADER([skey.h], [found=yes], [found=no], [#include ]) - else + ], [ found=no O_CPPFLAGS="$CPPFLAGS" for dir in "" "/usr/local" "/usr/contrib"; do test -n "$dir" && CPPFLAGS="$O_CPPFLAGS -I${dir}/include" AC_CHECK_HEADER([skey.h], [found=yes; break], [], [#include ]) done - if test "$found" = "no" -o -z "$dir"; then + AS_IF([test "$found" = "no" -o -z "$dir"], [ CPPFLAGS="$O_CPPFLAGS" - else + ], [ LDFLAGS="$LDFLAGS -L${dir}/lib" SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${dir}/lib]) - fi - if test "$found" = "no"; then + ]) + AS_IF([test "$found" = "no"], [ AC_MSG_WARN([unable to locate skey.h, you will have to edit the Makefile and add -I/path/to/skey/includes to CPPFLAGS]) - fi - fi - AC_CHECK_LIB(skey, main, [found=yes], [AC_MSG_WARN([unable to locate libskey.a, you will have to edit the Makefile and add -L/path/to/skey/lib to SUDOERS_LDFLAGS])]) - AC_CHECK_LIB(skey, skeyaccess, AC_DEFINE(HAVE_SKEYACCESS)) + ]) + ]) + AC_CHECK_LIB([skey], [main], [found=yes], [AC_MSG_WARN([unable to locate libskey.a, you will have to edit the Makefile and add -L/path/to/skey/lib to SUDOERS_LDFLAGS])]) + AC_CHECK_LIB([skey], [skeyaccess], [AC_DEFINE(HAVE_SKEYACCESS)]) AC_MSG_CHECKING([for RFC1938-compliant skeychallenge]) AC_COMPILE_IFELSE( @@ -4233,47 +3827,47 @@ if test "${with_skey-'no'}" = "yes"; then LDFLAGS="$O_LDFLAGS" SUDOERS_LIBS="${SUDOERS_LIBS} -lskey" AUTH_OBJS="$AUTH_OBJS rfc1938.lo" -fi +]) dnl dnl extra OPIE lib and includes dnl -if test "${with_opie-'no'}" = "yes"; then +AS_IF([test "${with_opie-'no'}" = "yes"], [ O_LDFLAGS="$LDFLAGS" - if test "$with_opie" != "yes"; then + AS_IF([test "$with_opie" != "yes"], [ AX_APPEND_FLAG([-I${with_opie}/include], [CPPFLAGS]) LDFLAGS="$LDFLAGS -L${with_opie}/lib" SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_opie}/lib]) AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include ]])], [found=yes], [found=no]) - else + ], [ found=no O_CPPFLAGS="$CPPFLAGS" for dir in "" "/usr/local" "/usr/contrib"; do test -n "$dir" && CPPFLAGS="$O_CPPFLAGS -I${dir}/include" AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include ]])], [found=yes; break]) done - if test "$found" = "no" -o -z "$dir"; then + AS_IF([test "$found" = "no" -o -z "$dir"], [ CPPFLAGS="$O_CPPFLAGS" - else + ], [ LDFLAGS="$LDFLAGS -L${dir}/lib" SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${dir}/lib]) - fi - if test "$found" = "no"; then + ]) + AS_IF([test "$found" = "no"], [ AC_MSG_WARN([unable to locate opie.h, you will have to edit the Makefile and add -I/path/to/opie/includes to CPPFLAGS]) - fi - fi - AC_CHECK_LIB(opie, main, [found=yes], [AC_MSG_WARN([unable to locate libopie.a, you will have to edit the Makefile and add -L/path/to/opie/lib to SUDOERS_LDFLAGS])]) + ]) + ]) + AC_CHECK_LIB([opie], [main], [found=yes], [AC_MSG_WARN([unable to locate libopie.a, you will have to edit the Makefile and add -L/path/to/opie/lib to SUDOERS_LDFLAGS])]) LDFLAGS="$O_LDFLAGS" SUDOERS_LIBS="${SUDOERS_LIBS} -lopie" AUTH_OBJS="$AUTH_OBJS rfc1938.lo" -fi +]) dnl dnl Check for shadow password routines if we have not already done so. dnl If there is a specific list of functions to check we do that first. dnl Otherwise, we check for SVR4-style and then SecureWare-style. dnl -if test ${with_passwd-'no'} != "no"; then +AS_IF([test ${with_passwd-'no'} != "no"], [ dnl dnl if crypt(3) not in libc, look elsewhere dnl @@ -4281,12 +3875,12 @@ if test ${with_passwd-'no'} != "no"; then AC_SEARCH_LIBS([crypt], [crypt crypt_d ufc], [ test "${ac_cv_search_crypt}" != "none required" && shadow_libs="${shadow_libs} ${ac_cv_search_crypt}" ]) - if test "${ac_cv_search_crypt}" != "no"; then + AS_IF([test "${ac_cv_search_crypt}" != "no"], [ AC_DEFINE(HAVE_CRYPT) - fi + ]) LIBS="$_LIBS" - if test "$CHECKSHADOW" = "true" -a -n "$shadow_funcs"; then + AS_IF([test "$CHECKSHADOW" = "true" -a -n "$shadow_funcs"], [ _LIBS="$LIBS" LIBS="$LIBS $shadow_libs" found=no @@ -4319,32 +3913,32 @@ if test ${with_passwd-'no'} != "no"; then found=yes ]) done - if test "$found" = "no"; then + AS_IF([test "$found" = "no"], [ shadow_libs= - fi + ]) CHECKSHADOW=false LIBS="$_LIBS" - fi - if test "$CHECKSHADOW" = "true"; then + ]) + AS_IF([test "$CHECKSHADOW" = "true"], [ AC_SEARCH_LIBS([getspnam], [gen shadow], [ AC_DEFINE(HAVE_GETSPNAM) test "${ac_cv_search_getspnam}" != "none required" && shadow_libs="${shadow_libs} ${ac_cv_search_getspnam}" CHECKSHADOW=false ]) - fi - if test "$CHECKSHADOW" = "true"; then + ]) + AS_IF([test "$CHECKSHADOW" = "true"], [ AC_SEARCH_LIBS([getprpwnam], [sec security prot], [ AC_DEFINE(HAVE_GETPRPWNAM) test "${ac_cv_search_getprpwnam}" != "none required" && shadow_libs="${shadow_libs} ${ac_cv_search_getprpwnam}" SECUREWARE=1 CHECKSHADOW=false ]) - fi - if test -n "$shadow_libs"; then + ]) + AS_IF([test -n "$shadow_libs"], [ # sudoers needs to link with shadow libs for password auth SUDOERS_LIBS="$SUDOERS_LIBS $shadow_libs" - fi - if test -n "$SECUREWARE"; then + ]) + AS_IF([test -n "$SECUREWARE"], [ _LIBS="$LIBS" LIBS="$LIBS $shadow_libs" AC_CHECK_FUNCS([bigcrypt]) @@ -4352,152 +3946,36 @@ if test ${with_passwd-'no'} != "no"; then # set_auth_parameters() and initprivs() are called from sudo.c AC_CHECK_FUNCS([set_auth_parameters initprivs], [test -n "$shadow_libs" && SUDO_LIBS="$SUDO_LIBS $shadow_libs"]) LIBS="$_LIBS" - fi -fi + ]) +]) dnl dnl Solaris 11 added a 4th argument to the au_close() function dnl -if test X"$with_bsm_audit" = X"yes"; then +AS_IF([test X"$with_bsm_audit" = X"yes"], [ SUDO_FUNC_AU_CLOSE_SOLARIS11 -fi +]) dnl dnl Choose event subsystem backend: poll or select dnl -if test X"$enable_poll" = X""; then +AS_IF([test X"$enable_poll" = X""], [ AC_CHECK_FUNCS([ppoll poll], [enable_poll=yes; break], [enable_poll=no]) -elif test X"$enable_poll" = X"yes"; then +], [test X"$enable_poll" = X"yes"], [ AC_CHECK_FUNCS([ppoll], [], AC_DEFINE(HAVE_POLL)) -fi -if test "$enable_poll" = "yes"; then +]) +AS_IF([test "$enable_poll" = "yes"], [ COMMON_OBJS="${COMMON_OBJS} event_poll.lo" -else +], [ AC_CHECK_FUNCS([pselect]) COMMON_OBJS="${COMMON_OBJS} event_select.lo" -fi +]) dnl -dnl extra lib and .o file for LDAP support +dnl If LDAP support is enabled, add sudo ldap objects to SUDOERS_OBJS +dnl and add LDAP libraries to SUDOERS_LDFLAGS SUDOERS_LIBS. dnl -if test ${with_ldap-'no'} != "no"; then - O_LDFLAGS="$LDFLAGS" - if test "$with_ldap" != "yes"; then - SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_ldap}/lib]) - LDFLAGS="$LDFLAGS -L${with_ldap}/lib" - if test -d "${with_ldap}/lib64"; then - SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_ldap}/lib64]) - LDFLAGS="$LDFLAGS -L${with_ldap}/lib64" - fi - AX_APPEND_FLAG([-I${with_ldap}/include], [CPPFLAGS]) - with_ldap=yes - fi - SUDOERS_OBJS="${SUDOERS_OBJS} ldap.lo ldap_conf.lo" - case "$SUDOERS_OBJS" in - *ldap_util.lo*) ;; - *) SUDOERS_OBJS="${SUDOERS_OBJS} ldap_util.lo";; - esac - LDAP="" - - _LIBS="$LIBS" - LDAP_LIBS="" - IBMLDAP_EXTRA="" - found=no - # On HP-UX, libibmldap has a hidden dependency on libCsup - case "$host_os" in - hpux*|hiuxmpp*) AC_CHECK_LIB(Csup, main, [IBMLDAP_EXTRA=" -lCsup"]);; - esac - AC_SEARCH_LIBS([ldap_init], ["ibmldap${IBMLDAP_EXTRA}" "ibmldap -lidsldif${IBMLDAP_EXTRA}" "ldap" "ldap -llber" "ldap -llber -lssl -lcrypto" "ibmldap${IBMLDAP_EXTRA}]", [ - test "${ac_cv_search_ldap_init}" != "none required" && LDAP_LIBS="${ac_cv_search_ldap_init}" - found=yes - ]) - # If nothing linked, try -lldap and hope for the best - if test "$found" = "no"; then - LDAP_LIBS="-lldap" - fi - LIBS="${_LIBS} ${LDAP_LIBS}" - dnl check if we need to link with -llber for ber_set_option - OLIBS="$LIBS" - AC_MSG_CHECKING([whether lber.h defines LBER_OPT_DEBUG_LEVEL]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include -# include ]], [[int opt=LBER_OPT_DEBUG_LEVEL;]])], [ - AC_MSG_RESULT([yes]) - AC_SEARCH_LIBS([ber_set_option], [lber], [found=yes], [found=no]) - if test X"$found" = X"yes" -a X"$LIBS" != X"$OLIBS"; then - LDAP_LIBS="$LDAP_LIBS -llber" - fi - ], [ - AC_MSG_RESULT([no]) - ]) - dnl check if ldap.h includes lber.h for us - AC_MSG_CHECKING([whether lber.h is needed]) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include -# include ]], [[(void)ldap_init(0, 0)]])], [AC_MSG_RESULT([no])], [ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_LBER_H)]) - - if test ${enable_sasl-'yes'} = "yes"; then - found_sasl_h=no - AC_CHECK_HEADERS([sasl/sasl.h] [sasl.h], [ - found_sasl_h=yes - AC_CHECK_FUNCS([ldap_sasl_interactive_bind_s]) - break - ]) - if test X${enable_sasl} = X"yes"; then - if test X"$found_sasl_h" != X"yes"; then - AC_MSG_ERROR([--enable-sasl specified but unable to locate SASL development headers.]) - fi - if test X"$ac_cv_func_ldap_sasl_interactive_bind_s" != X"yes"; then : - AC_MSG_ERROR([--enable-sasl specified but SASL support is missing in your LDAP library]) - fi - fi - fi - AC_CHECK_HEADERS([ldapssl.h] [ldap_ssl.h] [mps/ldap_ssl.h], [break], [], [#include ]) - AC_CHECK_FUNCS([ldap_initialize ldap_start_tls_s ldapssl_init ldapssl_set_strength ldap_unbind_ext_s ldap_str2dn ldap_create ldap_sasl_bind_s ldap_ssl_init ldap_ssl_client_init ldap_start_tls_s_np]) - AC_CHECK_FUNCS([ldap_search_ext_s ldap_search_st], [break]) - - if test X"$check_gss_krb5_ccache_name" = X"yes"; then - AC_CHECK_LIB(gssapi, gss_krb5_ccache_name, - AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME) - [LDAP_LIBS="${LDAP_LIBS} -lgssapi"], - AC_CHECK_LIB(gssapi_krb5, gss_krb5_ccache_name, - AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME) - [LDAP_LIBS="${LDAP_LIBS} -lgssapi_krb5"]) - ) - - # gssapi headers may be separate or part of Kerberos V - found=no - O_CPPFLAGS="$CPPFLAGS" - for dir in "" "kerberosV" "krb5" "kerberos5" "kerberosv5"; do - test X"$dir" != X"" && CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}" - # Use AC_PREPROC_IFELSE to check existence to avoid caching - # since we test with multiple values of CPPFLAGS - AC_PREPROC_IFELSE([ - AC_LANG_PROGRAM([[#include ]]) - ], [ - AC_CHECK_HEADERS([gssapi/gssapi.h]) - break - ], [ - AC_PREPROC_IFELSE([ - AC_LANG_PROGRAM([[#include ]]) - ], [ - AC_CHECK_HEADERS([gssapi.h]) - break - ]) - ]) - done - if test X"$ac_cv_header_gssapi_gssapi_h" != X"no"; then - AC_CHECK_HEADERS([gssapi/gssapi_krb5.h]) - elif test X"$ac_cv_header_gssapi_h" = X"no"; then - CPPFLAGS="$O_CPPFLAGS" - AC_MSG_WARN([unable to locate gssapi.h, you will have to edit the Makefile and add -I/path/to/gssapi/includes to CPPFLAGS]) - fi - fi - - SUDOERS_LIBS="${SUDOERS_LIBS} ${LDAP_LIBS}" - LIBS="$_LIBS" - LDFLAGS="$O_LDFLAGS" -fi +SUDO_CHECK_LDAP # # How to do dynamic object loading. @@ -4506,36 +3984,36 @@ fi case "$lt_cv_dlopen" in dlopen) AC_DEFINE(HAVE_DLOPEN) - if test "$enable_static_sudoers" = "yes"; then + AS_IF([test "$enable_static_sudoers" = "yes"], [ AC_DEFINE(STATIC_SUDOERS_PLUGIN) SUDO_OBJS="${SUDO_OBJS} preload.o" STATIC_SUDOERS="\$(top_builddir)/plugins/sudoers/sudoers.la" AX_APPEND_FLAG([-no-install], [SUDOERS_LDFLAGS]) SUDOERS_LT_STATIC="--tag=disable-shared" LT_STATIC="" - else + ], [ SUDOERS_LT_STATIC="--tag=disable-static" LT_STATIC="--tag=disable-static" - fi + ]) ;; shl_load) AC_DEFINE(HAVE_SHL_LOAD) - if test "$enable_static_sudoers" = "yes"; then + AS_IF([test "$enable_static_sudoers" = "yes"], [ AC_DEFINE(STATIC_SUDOERS_PLUGIN) SUDO_OBJS="${SUDO_OBJS} preload.o" STATIC_SUDOERS="\$(top_builddir)/plugins/sudoers/sudoers.la" AX_APPEND_FLAG([-no-install], [SUDOERS_LDFLAGS]) SUDOERS_LT_STATIC="--tag=disable-shared" LT_STATIC="" - else + ], [ SUDOERS_LT_STATIC="--tag=disable-static" LT_STATIC="--tag=disable-static" - fi + ]) ;; *) - if test X"${ac_cv_func_dlopen}" = X"yes"; then + AS_IF([test X"${ac_cv_func_dlopen}" = X"yes"], [ AC_MSG_ERROR([dlopen present but libtool doesn't appear to support your platform.]) - fi + ]) # Preload sudoers module symbols AC_DEFINE(STATIC_SUDOERS_PLUGIN) SUDO_OBJS="${SUDO_OBJS} preload.o" @@ -4555,14 +4033,14 @@ fi # We can only disable linking with the shared libsudo_util if # sudoers is linked statically too. # -if test "$enable_shared_libutil" = "no"; then - if test X"$STATIC_SUDOERS" = X""; then +AS_IF([test "$enable_shared_libutil" = "no"], [ + AS_IF([test X"$STATIC_SUDOERS" = X""], [ AC_MSG_ERROR([--disable-shared-libutil may only be specified with --enable-static-sudoers or when dynamic linking is disabled.]) - else + ], [ # Do not install libsudo_util. AX_APPEND_FLAG([-no-install], [LIBUTIL_LDFLAGS]) - fi -fi + ]) +]) # On HP-UX, you cannot dlopen() a shared object that uses pthreads unless # the main program is linked against -lpthread. We have no knowledge of @@ -4570,8 +4048,8 @@ fi # so always link against -lpthread on HP-UX if it is available. # This check should go after all other libraries tests. case "$host_os" in - hpux*|hiuxmpp*) - AC_CHECK_LIB(pthread, main, [SUDO_LIBS="${SUDO_LIBS} -lpthread"]) + hpux*) + AC_CHECK_LIB([pthread], [main], [SUDO_LIBS="${SUDO_LIBS} -lpthread"]) AC_DEFINE(_REENTRANT) ;; esac @@ -4579,9 +4057,7 @@ esac dnl dnl Check for log file, timestamp and iolog locations dnl -if test "$utmp_style" = "LEGACY"; then - SUDO_PATH_UTMP -fi +AS_IF([test "$utmp_style" = "LEGACY"], [SUDO_PATH_UTMP]) SUDO_LOGDIR SUDO_LOGFILE SUDO_RELAY_DIR @@ -4590,35 +4066,6 @@ SUDO_VARDIR SUDO_IO_LOGDIR SUDO_TZDIR -dnl -dnl Attempt to use _FORTIFY_SOURCE with sprintf. If the headers support -dnl it but libc does not, __sprintf_chk should be an undefined symbol. -dnl -if test "$enable_hardening" != "no"; then - O_CPPFLAGS="$CPPFLAGS" - AX_APPEND_FLAG([-D_FORTIFY_SOURCE=2], [CPPFLAGS]) - AC_CACHE_CHECK([whether _FORTIFY_SOURCE may be specified], - [sudo_cv_use_fortify_source], - [AC_LINK_IFELSE([ - AC_LANG_PROGRAM( - [[]], [[char buf[4]; (void)sprintf(buf, "%s", "foo");]] - )], - [sudo_cv_use_fortify_source=yes], - [sudo_cv_use_fortify_source=no] - ) - ] - [AC_LINK_IFELSE( - [AC_LANG_PROGRAM([[]], [[]])], - [sudo_cv_use_fortify_source=yes], - [sudo_cv_use_fortify_source=no] - ) - ] - ) - if test "$sudo_cv_use_fortify_source" != yes; then - CPPFLAGS="$O_CPPFLAGS" - fi -fi - dnl dnl Turn warnings into errors. dnl All compiler/loader tests after this point will fail if @@ -4637,16 +4084,16 @@ dnl If compiler supports the -static-libgcc flag use it unless we have dnl GNU ld (which can avoid linking in libgcc when it is not needed). dnl This test relies on AC_LANG_WERROR dnl -if test -n "$GCC" -a "$lt_cv_prog_gnu_ld" != "yes" -a -n "$GCC"; then +AS_IF([test -n "$GCC" -a "$lt_cv_prog_gnu_ld" != "yes"], [ AX_CHECK_COMPILE_FLAG([-static-libgcc], [AX_APPEND_FLAG([-Wc,-static-libgcc], [LT_LDFLAGS])]) -fi +]) dnl dnl We want to use DT_RUNPATH in preference to DT_RPATH in ELF binaries. dnl Otherwise, LD_LIBRARY_PATH does not work when running the tests. dnl We don't do this on NetBSD where RPATH already supports LD_LIBRARY_PATH. dnl -case "$OS" in +case "$host_os" in netbsd*) ;; *) @@ -4654,340 +4101,10 @@ case "$OS" in ;; esac -dnl -dnl For fuzz_policy we redefine getaddrinfo() and freeaddrinfo(), but -dnl this can cause problems with ld.lld when sanitizers are enabled. -dnl -AX_CHECK_LINK_FLAG([-Wl,--allow-multiple-definition], [AX_APPEND_FLAG([-Wl,--allow-multiple-definition], [LDFLAGS])]) - -dnl -dnl Check for symbol visibility support. -dnl This test relies on AC_LANG_WERROR -dnl -if test -n "$GCC"; then - AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [ - AC_DEFINE(HAVE_DSO_VISIBILITY) - CFLAGS="${CFLAGS} -fvisibility=hidden" - LT_LDEXPORTS= - LT_LDDEP= - ]) -else - case "$host_os" in - hpux*|hiuxmpp*) - AX_CHECK_COMPILE_FLAG([-Bhidden_def], [ - # HP-UX cc may not allow __declspec(dllexport) to be - # used in conjunction with #pragma HP_DEFINED_EXTERNAL - # when redefining standard libc functions. - AC_CACHE_CHECK([whether __declspec(dllexport) can be used when overriding libc functions], - [sudo_cv_var_hpux_declspec_libc_function], - [ - _CFLAGS="$CFLAGS" - CFLAGS="${CFLAGS} -Bhidden_def" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include - __declspec(dllexport) char * getenv(const char *n) { return NULL; }]])], [ - sudo_cv_var_hpux_declspec_libc_function=yes - ], [ - sudo_cv_var_hpux_declspec_libc_function=no - ]) - CFLAGS="$_CFLAGS" - ] - ) - if test "$sudo_cv_var_hpux_declspec_libc_function" = "yes"; then - AC_DEFINE(HAVE_DSO_VISIBILITY) - CFLAGS="${CFLAGS} -Bhidden_def" - LT_LDEXPORTS= - LT_LDDEP= - fi - ]) - ;; - solaris2*) - AX_CHECK_COMPILE_FLAG([-xldscope=hidden], [ - AC_DEFINE(HAVE_DSO_VISIBILITY) - CFLAGS="${CFLAGS} -xldscope=hidden" - LT_LDEXPORTS= - LT_LDDEP= - ]) - ;; - esac -fi - -dnl -dnl Check whether ld supports version scripts (only GNU and Solaris ld). -dnl If possible, we use this even if the compiler has symbol visibility -dnl support so we will notice mismatches between the exports file and -dnl sudo_dso_public annotations in the source code. -dnl This test relies on AC_LANG_WERROR -dnl -if test "$lt_cv_prog_gnu_ld" = "yes"; then - AC_CACHE_CHECK([whether ld supports anonymous map files], - [sudo_cv_var_gnu_ld_anon_map], - [ - sudo_cv_var_gnu_ld_anon_map=no - cat > conftest.map <<-EOF - { - global: foo; - local: *; - }; -EOF - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -fpic -shared -Wl,--version-script,./conftest.map" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo;]], [[]])], - [sudo_cv_var_gnu_ld_anon_map=yes]) - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" - ] - ) - if test "$sudo_cv_var_gnu_ld_anon_map" = "yes"; then - LT_LDDEP="\$(shlib_map)"; LT_LDEXPORTS="-Wl,--version-script,\$(shlib_map)" - fi -else - case "$host_os" in - solaris2*) - AC_CACHE_CHECK([whether ld supports anonymous map files], - [sudo_cv_var_solaris_ld_anon_map], - [ - sudo_cv_var_solaris_ld_anon_map=no - cat > conftest.map <<-EOF - { - global: foo; - local: *; - }; -EOF - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map" - AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo;]], [[]])], - [sudo_cv_var_solaris_ld_anon_map=yes]) - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" - ] - ) - if test "$sudo_cv_var_solaris_ld_anon_map" = "yes"; then - LT_LDDEP="\$(shlib_map)"; LT_LDEXPORTS="-Wl,-M,\$(shlib_map)" - fi - ;; - hpux*|hiuxmpp*) - AC_CACHE_CHECK([whether ld supports controlling exported symbols], - [sudo_cv_var_hpux_ld_symbol_export], - [ - sudo_cv_var_hpux_ld_symbol_export=no - echo "+e foo" > conftest.opt - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $lt_prog_compiler_pic" - _LDFLAGS="$LDFLAGS" - if test -n "$GCC"; then - LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt" - else - LDFLAGS="$LDFLAGS -b -Wl,-c,./conftest.opt" - fi - AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo;]], [[]])], - [sudo_cv_var_hpux_ld_symbol_export=yes]) - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" - rm -f conftest.opt - ] - ) - if test "$sudo_cv_var_hpux_ld_symbol_export" = "yes"; then - LT_LDDEP="\$(shlib_opt)"; LT_LDEXPORTS="-Wl,-c,\$(shlib_opt)" - fi - ;; - esac -fi - -dnl -dnl Check for -fsanitize support -dnl This test relies on AC_LANG_WERROR -dnl -if test "$enable_sanitizer" != "no"; then - AX_CHECK_COMPILE_FLAG([$enable_sanitizer], [ - AX_APPEND_FLAG([$enable_sanitizer], [ASAN_CFLAGS]) - AX_APPEND_FLAG([-XCClinker], [ASAN_LDFLAGS]) - AX_APPEND_FLAG([$enable_sanitizer], [ASAN_LDFLAGS]) - AX_CHECK_COMPILE_FLAG([-fno-omit-frame-pointer], [ - AX_APPEND_FLAG([-fno-omit-frame-pointer], [CFLAGS]) - ]) - AC_DEFINE(NO_LEAKS) - dnl - dnl check for libasan.so so we can preload it before sudo_intercept.so - dnl gcc links asan dynamically, clang links it statically. - dnl - case `$CC --version 2>&1` in - *gcc*) - libasan=`$CC -print-file-name=libasan.so 2>/dev/null` - if test -n "$libasan" -a X"$libasan" != X"libasan.so"; then - # libasan.so may be a linker script - libasan="`awk 'BEGIN {lib=ARGV[[1]]} /^INPUT/ {lib=$3} END {print lib}' \"$libasan\"`" - SUDO_DEFINE_UNQUOTED(_PATH_ASAN_LIB, "$libasan", [Path to the libasan.so shared library]) - fi - ;; - esac - ], [ - AC_MSG_ERROR([$CC does not support the $enable_sanitizer flag]) - ]) -fi -if test "$enable_fuzzer" = "yes"; then - AX_CHECK_COMPILE_FLAG([-fsanitize=fuzzer-no-link], [ - AX_APPEND_FLAG([-fsanitize=fuzzer-no-link], [ASAN_CFLAGS]) - AX_APPEND_FLAG([-XCClinker], [ASAN_LDFLAGS]) - AX_APPEND_FLAG([-fsanitize=fuzzer-no-link], [ASAN_LDFLAGS]) - if test -z "$FUZZ_ENGINE"; then - FUZZ_ENGINE="-fsanitize=fuzzer" - fi - AX_CHECK_COMPILE_FLAG([-fno-omit-frame-pointer], [ - AX_APPEND_FLAG([-fno-omit-frame-pointer], [CFLAGS]) - ]) - # Use CFLAGS, not CPPFLAGS to match oss-fuzz behavior - AX_APPEND_FLAG([-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION], [CFLAGS]) - AC_DEFINE(NO_LEAKS) - ], [ - AC_MSG_ERROR([$CC does not support the -fsanitize=fuzzer-no-link flag]) - ]) -else - # Not using compiler fuzzing support, link with stub library. - FUZZ_ENGINE='$(top_builddir)/lib/fuzzstub/libsudo_fuzzstub.la' -fi - -dnl -dnl Check for PIE executable support if using gcc. -dnl This test relies on AC_LANG_WERROR -dnl -if test -n "$GCC"; then - if test -z "$enable_pie"; then - case "$host_os" in - linux*) - # Attempt to build with PIE support - enable_pie="maybe" - ;; - esac - fi - if test -n "$enable_pie"; then - if test "$enable_pie" = "no"; then - AX_CHECK_COMPILE_FLAG([-fno-pie], [ - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-pie" - AX_CHECK_LINK_FLAG([-nopie], [ - PIE_CFLAGS="-fno-pie" - PIE_LDFLAGS="-nopie" - ]) - CFLAGS="$_CFLAGS" - ]) - else - AX_CHECK_COMPILE_FLAG([-fPIE], [ - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fPIE" - AX_CHECK_LINK_FLAG([-pie], [ - if test "$enable_pie" = "maybe"; then - SUDO_WORKING_PIE([enable_pie=yes], []) - fi - if test "$enable_pie" = "yes"; then - PIE_CFLAGS="-fPIE" - PIE_LDFLAGS="-Wc,-fPIE -pie" - fi - ]) - CFLAGS="$_CFLAGS" - ]) - fi - fi -fi -if test "$enable_pie" != "yes"; then - # Solaris 11.1 and higher supports tagging binaries to use ASLR - case "$host_os" in - solaris2.1[[1-9]]|solaris2.[[2-9]][[0-9]]) - AX_CHECK_LINK_FLAG([-Wl,-z,aslr], [AX_APPEND_FLAG([-Wl,-z,aslr], [PIE_LDFLAGS])]) - ;; - esac -fi - -dnl -dnl Check for -fstack-protector and -z relro support -dnl This test relies on AC_LANG_WERROR -dnl -if test "$enable_hardening" != "no" && test "$enable_ssp" != "no"; then - AC_CACHE_CHECK([for compiler stack protector support], - [sudo_cv_var_stack_protector], - [ - # Avoid CFLAGS since the compiler might optimize away our test. - # We don't want CPPFLAGS or LIBS to interfere with the test but - # keep LDFLAGS as it may have an rpath needed to find the ssp lib. - _CPPFLAGS="$CPPFLAGS" - _CFLAGS="$CFLAGS" - _LDFLAGS="$LDFLAGS" - _LIBS="$LIBS" - CPPFLAGS= - LIBS= - - sudo_cv_var_stack_protector="-fstack-protector-strong" - CFLAGS="$sudo_cv_var_stack_protector" - LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], - [[char buf[1024]; buf[1023] = '\0';]]) - ], [], [ - sudo_cv_var_stack_protector="-fstack-protector-all" - CFLAGS="$sudo_cv_var_stack_protector" - LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], - [[char buf[1024]; buf[1023] = '\0';]]) - ], [], [ - sudo_cv_var_stack_protector="-fstack-protector" - CFLAGS="$sudo_cv_var_stack_protector" - LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], - [[char buf[1024]; buf[1023] = '\0';]]) - ], [], [ - sudo_cv_var_stack_protector=no - ]) - ]) - ]) - CPPFLAGS="$_CPPFLAGS" - CFLAGS="$_CFLAGS" - LDFLAGS="$_LDFLAGS" - LIBS="$_LIBS" - ] - ) - if test X"$sudo_cv_var_stack_protector" != X"no"; then - HARDENING_CFLAGS="$sudo_cv_var_stack_protector" - HARDENING_LDFLAGS="-Wc,$sudo_cv_var_stack_protector" - fi -fi -if test "$enable_hardening" != "no"; then - # The gcc front-end may accept -fstack-clash-protection even if the - # machine-specific code does not support it. We use a test program - # with a large stack allocation to try to cause the compiler to - # insert the stack clash protection code, or fail if not supported. - AC_CACHE_CHECK([whether C compiler supports -fstack-clash-protection], - [sudo_cv_check_cflags___fstack_clash_protection], - [ - _CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fstack-clash-protection" - AC_COMPILE_IFELSE([ - AC_LANG_SOURCE([[int main(int argc, char *argv[]) { char buf[16384], *src = argv[0], *dst = buf; while ((*dst++ = *src++) != '\0') { continue; } return buf[argc]; }]]) - ], [sudo_cv_check_cflags___fstack_clash_protection=yes], [sudo_cv_check_cflags___fstack_clash_protection=no]) - CFLAGS="$_CFLAGS" - ] - ) - if test X"$sudo_cv_check_cflags___fstack_clash_protection" = X"yes"; then - AX_CHECK_LINK_FLAG([-fstack-clash-protection], [ - AX_APPEND_FLAG([-fstack-clash-protection], [HARDENING_CFLAGS]) - AX_APPEND_FLAG([-Wc,-fstack-clash-protection], [HARDENING_LDFLAGS]) - ]) - fi - - AX_CHECK_COMPILE_FLAG([-fcf-protection], [ - AX_CHECK_LINK_FLAG([-fcf-protection], [ - AX_APPEND_FLAG([-fcf-protection], [HARDENING_CFLAGS]) - AX_APPEND_FLAG([-Wc,-fcf-protection], [HARDENING_LDFLAGS]) - ]) - ]) - AX_CHECK_LINK_FLAG([-Wl,-z,relro], [AX_APPEND_FLAG([-Wl,-z,relro], [LDFLAGS])]) - AX_CHECK_LINK_FLAG([-Wl,-z,now], [AX_APPEND_FLAG([-Wl,-z,now], [LDFLAGS])]) - AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [AX_APPEND_FLAG([-Wl,-z,noexecstack], [LDFLAGS])]) -fi +SUDO_CHECK_PIE_SUPPORT +SUDO_SYMBOL_VISIBILITY +SUDO_CHECK_SANITIZER +SUDO_CHECK_HARDENING dnl dnl Use passwd auth module? @@ -4995,15 +4112,15 @@ dnl case "$with_passwd" in yes|maybe) AUTH_OBJS="$AUTH_OBJS getspwuid.lo passwd.lo" - if test "${ac_cv_search_crypt}" = "no"; then + AS_IF([test "${ac_cv_search_crypt}" = "no"], [ AC_MSG_WARN([no crypt function found, assuming plaintext passwords]) - fi + ]) ;; *) AC_DEFINE(WITHOUT_PASSWD) - if test -z "$AUTH_OBJS"; then + AS_IF([test -z "$AUTH_OBJS"], [ AC_MSG_ERROR([no authentication methods defined.]) - fi + ]) ;; esac AUTH_OBJS=${AUTH_OBJS# } @@ -5011,7 +4128,7 @@ AUTH_OBJS=${AUTH_OBJS# } dnl dnl LIBS may contain duplicates from SUDO_LIBS, SUDOERS_LIBS, or NET_LIBS dnl -if test -n "$LIBS"; then +AS_IF([test -n "$LIBS"], [ L="$LIBS" LIBS= for l in ${L}; do @@ -5021,63 +4138,73 @@ if test -n "$LIBS"; then done test $dupe = 0 && LIBS="${LIBS} $l" done -fi +]) dnl dnl OS-specific initialization dnl -AC_DEFINE_UNQUOTED(os_init, $OS_INIT, [Define to an OS-specific initialization function or `os_init_common'.]) +AC_DEFINE_UNQUOTED(os_init, $OS_INIT, [Define to an OS-specific initialization function or 'os_init_common'.]) dnl dnl We add -Wall and -Werror after all tests so they don't cause failures dnl -if test -n "$GCC"; then - if test X"$enable_warnings" = X"yes" -o X"$with_devel" = X"yes"; then +AS_IF([test -n "$GCC"], [ + # + # The fallthrough attribute is supported by gcc 7.0 and clang 10. + # This test relies on AC_LANG_WERROR. + # + AC_CACHE_CHECK([whether $CC supports the fallthrough attribute], + [sudo_cv_var_fallthrough_attribute], + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + int main(int argc, char *argv[]) + { + int num = argc + 1; + switch (num) { + case 1: + num = 0; + __attribute__((__fallthrough__)); + case 0: + num++; + } + return num; + } + ]])], + [ + sudo_cv_var_fallthrough_attribute=yes + ], + [ + sudo_cv_var_fallthrough_attribute=no] + )] + ) + AS_IF([test X"$sudo_cv_var_fallthrough_attribute" = X"yes"], [ + AC_DEFINE(HAVE_FALLTHROUGH_ATTRIBUTE) + ]) + AS_IF([test X"$enable_warnings" = X"yes" -o X"$with_devel" = X"yes"], [ dnl dnl Default warnings for development use. dnl - CFLAGS="${CFLAGS} -Wall -Wsign-compare -Wpointer-arith -Wno-unknown-pragmas -Wmissing-prototypes -Wwrite-strings" - AX_CHECK_COMPILE_FLAG([-Wshadow], [CFLAGS="$CFLAGS -Wshadow"]) - dnl - dnl The fallthrough attribute is supported by gcc 7.0 and clang 10. - dnl This test relies on AC_LANG_WERROR. - dnl - AC_CACHE_CHECK([whether $CC supports the fallthrough attribute], - [sudo_cv_var_fallthrough_attribute], - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - int main(int argc, char *argv[]) - { - int num = argc + 1; - switch (num) { - case 1: - num = 0; - __attribute__((__fallthrough__)); - case 0: - num++; - } - return num; - } - ]])], - [ - sudo_cv_var_fallthrough_attribute=yes - ], - [ - sudo_cv_var_fallthrough_attribute=no] - )] - ) - if test X"$sudo_cv_var_fallthrough_attribute" = X"yes"; then - AC_DEFINE(HAVE_FALLTHROUGH_ATTRIBUTE) - CFLAGS="$CFLAGS -Wimplicit-fallthrough" - fi - fi - if test X"$enable_werror" = X"yes"; then - CFLAGS="${CFLAGS} -Werror" - fi + AX_APPEND_FLAG([-Wall], [CFLAGS]) + AX_APPEND_FLAG([-Wmissing-prototypes], [CFLAGS]) + AX_APPEND_FLAG([-Wno-unknown-pragmas], [CFLAGS]) + AX_APPEND_FLAG([-Wpointer-arith], [CFLAGS]) + AX_APPEND_FLAG([-Wshadow], [CFLAGS]) + AX_APPEND_FLAG([-Wsign-compare], [CFLAGS]) + AX_APPEND_FLAG([-Wwrite-strings], [CFLAGS]) + AX_CHECK_COMPILE_FLAG([-Wvla], [AX_APPEND_FLAG([-Wvla], [CFLAGS])]) + AX_CHECK_COMPILE_FLAG([-Walloca], [AX_APPEND_FLAG([-Walloca], [CFLAGS])]) + AX_CHECK_COMPILE_FLAG([-Wtrampolines], [AX_APPEND_FLAG([-Wtrampolines], [CFLAGS])]) + AS_IF([test X"$sudo_cv_var_fallthrough_attribute" = X"yes"], [ + AX_APPEND_FLAG([-Wimplicit-fallthrough], [CFLAGS]) + ]) + ]) + AS_IF([test X"$enable_werror" = X"yes"], [ + AX_APPEND_FLAG([-Werror], [CFLAGS]) + ]) case "$host_os" in # Avoid unwanted warnings on macOS - darwin*) CFLAGS="${CFLAGS} -Wno-deprecated-declarations";; + darwin*) AX_APPEND_FLAG([-Wno-deprecated-declarations], [CFLAGS]);; esac -fi +]) dnl dnl Skip regress tests and sudoers validation checks if cross compiling. @@ -5105,28 +4232,28 @@ fi _intercept_file= while test X"$intercept_file" != X"$_intercept_file"; do _intercept_file="$intercept_file" - eval intercept_file="$_intercept_file" + eval "intercept_file=\"$_intercept_file\"" done # Update exec_prefix in noexec_file _noexec_file= while test X"$noexec_file" != X"$_noexec_file"; do _noexec_file="$noexec_file" - eval noexec_file="$_noexec_file" + eval "noexec_file=\"$_noexec_file\"" done # Update exec_prefix in sesh_file _sesh_file= while test X"$sesh_file" != X"$_sesh_file"; do _sesh_file="$sesh_file" - eval sesh_file="$_sesh_file" + eval "sesh_file=\"$_sesh_file\"" done # Update exec_prefix in plugindir _plugindir= while test X"$plugindir" != X"$_plugindir"; do _plugindir="$plugindir" - eval plugindir="$_plugindir" + eval "plugindir=\"$_plugindir\"" done exec_prefix="$oexec_prefix" @@ -5153,30 +4280,30 @@ esac dnl dnl Defer setting _PATH_SUDO_NOEXEC, etc until after exec_prefix is set dnl -if test X"$enable_intercept" != X"no"; then +AS_IF([test X"$enable_intercept" != X"no"], [ SUDO_OBJS="${SUDO_OBJS} intercept.pb-c.o" PROGS="${PROGS} sudo_intercept.la" INSTALL_INTERCEPT="install-intercept" SUDO_DEFINE_UNQUOTED(_PATH_SUDO_INTERCEPT, "$intercept_file", [The fully qualified pathname of sudo_intercept.so]) -fi -if test X"$with_noexec" != X"no"; then +]) +AS_IF([test X"$with_noexec" != X"no"], [ PROGS="${PROGS} sudo_noexec.la" INSTALL_NOEXEC="install-noexec" SUDO_DEFINE_UNQUOTED(_PATH_SUDO_NOEXEC, "$noexec_file", [The fully qualified pathname of sudo_noexec.so]) -fi -if test X"$with_selinux" != X"no"; then +]) +AS_IF([test X"$with_selinux" != X"no"], [ SUDO_DEFINE_UNQUOTED(_PATH_SUDO_SESH, "$sesh_file") -else +], [ SUDO_DEFINE_UNQUOTED(_PATH_SUDO_SESH, NULL) -fi -if test X"$enable_shared" != X"no"; then +]) +AS_IF([test X"$enable_shared" != X"no"], [ SUDO_DEFINE_UNQUOTED(_PATH_SUDO_PLUGIN_DIR, "$plugindir/") AC_DEFINE(ENABLE_SUDO_PLUGIN_API, 1, [Define to 1 to enable sudo's plugin interface.]) -else +], [ SUDO_DEFINE_UNQUOTED(_PATH_SUDO_PLUGIN_DIR, NULL) -fi +]) dnl dnl Add -R options to LDFLAGS, etc. @@ -5231,11 +4358,11 @@ test "$sysconfdir" = '${prefix}/etc' && sysconfdir='/etc' dnl dnl Substitute into the Makefile and man pages dnl -if test X"$INIT_SCRIPT" != X""; then +AS_IF([test X"$INIT_SCRIPT" != X""], [ AC_CONFIG_FILES([etc/init.d/$INIT_SCRIPT]) -elif test X"$TMPFILES_D" != X""; then +], [test X"$TMPFILES_D" != X""], [ AC_CONFIG_FILES([etc/init.d/sudo.conf]) -fi +]) AC_CONFIG_FILES([Makefile docs/Makefile examples/Makefile examples/sudoers examples/sudo.conf examples/sudo_logsrvd.conf examples/syslog.conf include/Makefile lib/eventlog/Makefile lib/fuzzstub/Makefile lib/iolog/Makefile lib/logsrv/Makefile lib/protobuf-c/Makefile lib/util/Makefile lib/util/regress/harness lib/util/util.exp logsrvd/Makefile src/intercept.exp src/sudo_usage.h src/Makefile plugins/audit_json/Makefile plugins/sample/Makefile plugins/group_file/Makefile plugins/sample_approval/Makefile plugins/system_group/Makefile plugins/sudoers/Makefile plugins/sudoers/regress/harness plugins/sudoers/sudoers]) AC_CONFIG_COMMANDS([harness], [chmod +x lib/util/regress/harness plugins/sudoers/regress/harness]) @@ -5255,10 +4382,13 @@ echo " prefix : $prefix" >&AS_MESSAGE_FD echo " compiler : $CC" >&AS_MESSAGE_FD echo " compiler options : $CFLAGS" >&AS_MESSAGE_FD echo " preprocessor options : $CPPFLAGS" >&AS_MESSAGE_FD -echo " linker options : $LDFLAGS" >&AS_MESSAGE_FD echo " front-end libraries : $SUDO_LIBS" >&AS_MESSAGE_FD -echo " sudoers libraries : $SUDOERS_LIBS" >&AS_MESSAGE_FD +echo " front-end linker options : $SUDO_LDFLAGS" >&AS_MESSAGE_FD +echo " network libraries : $NET_LIBS" >&AS_MESSAGE_FD echo " extra libraries : $LIBS" >&AS_MESSAGE_FD +echo " extra linker options : $LDFLAGS" >&AS_MESSAGE_FD +echo " sudoers libraries : $SUDOERS_LIBS" >&AS_MESSAGE_FD +echo " sudoers linker options : $SUDOERS_LDFLAGS" >&AS_MESSAGE_FD if test "${enable_sanitizer-no}" != "no"; then echo " sanitizer options : ${enable_sanitizer}" >&AS_MESSAGE_FD fi @@ -5356,6 +4486,10 @@ echo " mail if command not allowed : ${mail_no_perms}" >&AS_MESSAGE_FD echo " Pathnames:" >&AS_MESSAGE_FD echo " log directory : ${log_dir}" >&AS_MESSAGE_FD echo " plugin directory : ${plugindir}" >&AS_MESSAGE_FD +echo " sudoers plugin : ${sudoers_plugin}" >&AS_MESSAGE_FD +if test "${enable_python-no}" != "no"; then + echo " python plugin : ${python_plugin}" >&AS_MESSAGE_FD +fi echo " run directory : ${rundir}" >&AS_MESSAGE_FD echo " var directory : ${vardir}" >&AS_MESSAGE_FD echo " I/O log directory : ${iolog_dir}" >&AS_MESSAGE_FD @@ -5370,6 +4504,7 @@ if test ${with_netsvc-"no"} != "no"; then elif test ${with_nsswitch-"yes"} != "no"; then echo " nsswitch file : ${nsswitch_conf}" >&AS_MESSAGE_FD fi +echo " intercept file : ${intercept_file}" >&AS_MESSAGE_FD echo " noexec file : ${noexec_file}" >&AS_MESSAGE_FD echo " secure path : ${with_secure_path-no}" >&AS_MESSAGE_FD echo " askpass helper file : ${with_askpass-no}" >&AS_MESSAGE_FD @@ -5406,22 +4541,22 @@ echo "" >&AS_MESSAGE_FD dnl dnl Display any warnings/info the user needs to know about at the end. dnl -if test "$openssl_missing" = "yes"; then +AS_IF([test "$openssl_missing" = "yes"], [ AC_MSG_WARN([OpenSSL dev libraries not found, Sudo logsrv connections will not be encrypted.]) -fi -if test "$with_pam" = "yes"; then +]) +AS_IF([test "$with_pam" = "yes"], [ case $host_os in - hpux*|hiuxmpp*) - if test -f /usr/lib/security/libpam_hpsec.so.1; then + hpux*) + AS_IF([test -f /usr/lib/security/libpam_hpsec.so.1], [ AC_MSG_NOTICE([you may wish to add the following line to /etc/pam.conf]) AC_MSG_NOTICE([sudo session required libpam_hpsec.so.1 bypass_umask bypass_last_login]) - fi + ]) ;; linux*) AC_MSG_NOTICE([you will need to customize examples/pam.conf and install it as /etc/pam.d/sudo]) ;; esac -fi +]) dnl dnl Warn user if they may need to clear rundir manually. dnl @@ -5433,10 +4568,10 @@ case "$rundir" in clear_rundir=1 ;; esac -if test $clear_rundir -eq 1; then +AS_IF([test $clear_rundir -eq 1], [ AC_MSG_NOTICE([warning: the $rundir/ts directory must be cleared at boot time.]) AC_MSG_NOTICE([ You may need to create a startup item to do this.]) -fi +]) dnl dnl Autoheader templates @@ -5455,43 +4590,43 @@ AH_TEMPLATE(HAVE_AFS, [Define to 1 if you use AFS.]) AH_TEMPLATE(HAVE_AIXAUTH, [Define to 1 if you use AIX general authentication.]) AH_TEMPLATE(HAVE_BSD_AUTH_H, [Define to 1 if you use BSD authentication.]) AH_TEMPLATE(HAVE_BSM_AUDIT, [Define to 1 to enable BSM audit support.]) -AH_TEMPLATE(HAVE_CRYPT, [Define to 1 if you have the `crypt' function.]) +AH_TEMPLATE(HAVE_CRYPT, [Define to 1 if you have the 'crypt' function.]) AH_TEMPLATE(HAVE_DCE, [Define to 1 if you use OSF DCE.]) -AH_TEMPLATE(HAVE_DD_FD, [Define to 1 if your `DIR' contains dd_fd.]) -AH_TEMPLATE(HAVE_DIRFD, [Define to 1 if you have the `dirfd' function or macro.]) -AH_TEMPLATE(HAVE_DISPCRYPT, [Define to 1 if you have the `dispcrypt' function.]) -AH_TEMPLATE(HAVE_DLOPEN, [Define to 1 if you have the `dlopen' function.]) +AH_TEMPLATE(HAVE_DD_FD, [Define to 1 if your 'DIR' contains dd_fd.]) +AH_TEMPLATE(HAVE_DIRFD, [Define to 1 if you have the 'dirfd' function or macro.]) +AH_TEMPLATE(HAVE_DISPCRYPT, [Define to 1 if you have the 'dispcrypt' function.]) +AH_TEMPLATE(HAVE_DLOPEN, [Define to 1 if you have the 'dlopen' function.]) AH_TEMPLATE(HAVE_FCNTL_CLOSEM, [Define to 1 if your system has the F_CLOSEM fcntl.]) -AH_TEMPLATE(HAVE_FNMATCH, [Define to 1 if you have the `fnmatch' function.]) +AH_TEMPLATE(HAVE_FNMATCH, [Define to 1 if you have the 'fnmatch' function.]) AH_TEMPLATE(HAVE_FWTK, [Define to 1 if you use the FWTK authsrv daemon.]) -AH_TEMPLATE(HAVE_GETPRPWNAM, [Define to 1 if you have the `getprpwnam' function. (SecureWare-style shadow passwords).]) -AH_TEMPLATE(HAVE_GETPWNAM_SHADOW, [Define to 1 if you have the `getpwnam_shadow' function.]) -AH_TEMPLATE(HAVE_GETSPNAM, [Define to 1 if you have the `getspnam' function (SVR4-style shadow passwords).]) -AH_TEMPLATE(HAVE_GSS_KRB5_CCACHE_NAME, [Define to 1 if you have the `gss_krb5_ccache_name' function.]) +AH_TEMPLATE(HAVE_GETPRPWNAM, [Define to 1 if you have the 'getprpwnam' function. (SecureWare-style shadow passwords).]) +AH_TEMPLATE(HAVE_GETPWNAM_SHADOW, [Define to 1 if you have the 'getpwnam_shadow' function.]) +AH_TEMPLATE(HAVE_GETSPNAM, [Define to 1 if you have the 'getspnam' function (SVR4-style shadow passwords).]) +AH_TEMPLATE(HAVE_GSS_KRB5_CCACHE_NAME, [Define to 1 if you have the 'gss_krb5_ccache_name' function.]) AH_TEMPLATE(HAVE_HEIMDAL, [Define to 1 if your Kerberos is Heimdal.]) -AH_TEMPLATE(HAVE_INET_NTOP, [Define to 1 if you have the `inet_ntop' function.]) -AH_TEMPLATE(HAVE_INET_PTON, [Define to 1 if you have the `inet_pton' function.]) -AH_TEMPLATE(HAVE_ISCOMSEC, [Define to 1 if you have the `iscomsec' function. (HP-UX >= 10.x check for shadow enabled).]) +AH_TEMPLATE(HAVE_INET_NTOP, [Define to 1 if you have the 'inet_ntop' function.]) +AH_TEMPLATE(HAVE_INET_PTON, [Define to 1 if you have the 'inet_pton' function.]) +AH_TEMPLATE(HAVE_ISCOMSEC, [Define to 1 if you have the 'iscomsec' function. (HP-UX >= 10.x check for shadow enabled).]) AH_TEMPLATE(HAVE_KERB5, [Define to 1 if you use Kerberos V.]) -AH_TEMPLATE(HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC, [Define to 1 if you have the `krb5_get_init_creds_opt_alloc' function.]) -AH_TEMPLATE(HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS, [Define to 1 if your `krb5_get_init_creds_opt_free' function takes two arguments.]) -AH_TEMPLATE(HAVE_KRB5_INIT_SECURE_CONTEXT, [Define to 1 if you have the `krb5_init_secure_context' function.]) -AH_TEMPLATE(HAVE_KRB5_VERIFY_USER, [Define to 1 if you have the `krb5_verify_user' function.]) +AH_TEMPLATE(HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC, [Define to 1 if you have the 'krb5_get_init_creds_opt_alloc' function.]) +AH_TEMPLATE(HAVE_KRB5_GET_INIT_CREDS_OPT_FREE_TWO_ARGS, [Define to 1 if your 'krb5_get_init_creds_opt_free' function takes two arguments.]) +AH_TEMPLATE(HAVE_KRB5_INIT_SECURE_CONTEXT, [Define to 1 if you have the 'krb5_init_secure_context' function.]) +AH_TEMPLATE(HAVE_KRB5_VERIFY_USER, [Define to 1 if you have the 'krb5_verify_user' function.]) AH_TEMPLATE(HAVE_LBER_H, [Define to 1 if your LDAP needs . (OpenLDAP does not).]) AH_TEMPLATE(HAVE_LDAP, [Define to 1 if you use LDAP for sudoers.]) AH_TEMPLATE(HAVE_LIBINTL_H, [Define to 1 if you have the header file.]) AH_TEMPLATE(HAVE_LINUX_AUDIT, [Define to 1 to enable Linux audit support.]) AH_TEMPLATE(HAVE_SSSD, [Define to 1 to enable SSSD support.]) AH_TEMPLATE(HAVE_OPIE, [Define to 1 if you use NRL OPIE.]) -AH_TEMPLATE(HAVE_OPTRESET, [Define to 1 if you have the `optreset' symbol.]) +AH_TEMPLATE(HAVE_OPTRESET, [Define to 1 if you have the 'optreset' symbol.]) AH_TEMPLATE(HAVE_PAM, [Define to 1 if you use PAM authentication.]) AH_TEMPLATE(HAVE_PAM_LOGIN, [Define to 1 if you use a specific PAM session for sudo -i.]) AH_TEMPLATE(HAVE_PROJECT_H, [Define to 1 if you have the header file.]) AH_TEMPLATE(HAVE_SECURID, [Define to 1 if you use SecurID for authentication.]) AH_TEMPLATE(HAVE_SELINUX, [Define to 1 to enable SELinux RBAC support.]) -AH_TEMPLATE(HAVE_SETKEYCREATECON, [Define to 1 if you have the `setkeycreatecon' function.]) +AH_TEMPLATE(HAVE_SETKEYCREATECON, [Define to 1 if you have the 'setkeycreatecon' function.]) AH_TEMPLATE(HAVE_APPARMOR, [Define to 1 to enable AppArmor support.]) -AH_TEMPLATE(HAVE_SHL_LOAD, [Define to 1 if you have the `shl_load' function.]) +AH_TEMPLATE(HAVE_SHL_LOAD, [Define to 1 if you have the 'shl_load' function.]) AH_TEMPLATE(HAVE_SKEY, [Define to 1 if you use S/Key.]) AH_TEMPLATE(HAVE_SKEYACCESS, [Define to 1 if your S/Key library has skeyaccess().]) AH_TEMPLATE(HAVE_RFC1938_SKEYCHALLENGE, [Define to 1 if the skeychallenge() function is RFC1938-compliant and takes 4 arguments.]) @@ -5526,9 +4661,6 @@ AH_TEMPLATE(UMASK_OVERRIDE, [Define to 1 to use the umask specified in sudoers e AH_TEMPLATE(USE_INSULTS, [Define to 1 if you want to insult the user for entering an incorrect password.]) AH_TEMPLATE(USE_STOW, [Define to 1 if you use GNU stow packaging.]) AH_TEMPLATE(WITHOUT_PASSWD, [Define to avoid using the passwd/shadow file for authentication.]) -AH_TEMPLATE(clockid_t, [Define to `int' if does not define.]) -AH_TEMPLATE(sig_atomic_t, [Define to `int' if does not define.]) -AH_TEMPLATE(socklen_t, [Define to `unsigned int' if doesn't define.]) AH_TEMPLATE(HAVE___FUNC__, [Define to 1 if the compiler supports the C99 __func__ variable.]) AH_TEMPLATE(HAVE___INTERPOSE, [Define to 1 if you have dyld with __interpose attribute support.]) AH_TEMPLATE(SUDO_KRB5_INSTANCE, [An instance string to append to the username (separated by a slash) for Kerberos V authentication.]) @@ -5537,28 +4669,29 @@ AH_TEMPLATE(RTLD_PRELOAD_ENABLE_VAR, [An extra environment variable that is requ AH_TEMPLATE(RTLD_PRELOAD_DELIM, [The delimiter to use when defining multiple preloaded objects.]) AH_TEMPLATE(RTLD_PRELOAD_DEFAULT, [The default value of preloaded objects (if any).]) AH_TEMPLATE(HAVE_DSO_VISIBILITY, [Define to 1 if the compiler supports the __visibility__ attribute.]) -AH_TEMPLATE(HAVE_SYS_SIGABBREV, [Define to 1 if your libc has the `sys_sigabbrev' symbol.]) -AH_TEMPLATE(HAVE_NSS_SEARCH, [Define to 1 if you have the `nss_search' function.]) -AH_TEMPLATE(HAVE__NSS_INITF_GROUP, [Define to 1 if you have the `_nss_initf_group' function.]) -AH_TEMPLATE(HAVE___NSS_INITF_GROUP, [Define to 1 if you have the `__nss_initf_group' function.]) -AH_TEMPLATE(HAVE__NSS_XBYY_BUF_ALLOC, [Define to 1 if you have the `_nss_XbyY_buf_alloc' function.]) -AH_TEMPLATE(HAVE___NSS_XBYY_BUF_ALLOC, [Define to 1 if you have the `__nss_XbyY_buf_alloc' function.]) -AH_TEMPLATE(NEED_RESOLV_H, [Define to 1 if resolv.h must be included to get the `inet_ntop' or `inet_pton' function prototypes.]) -AH_TEMPLATE(HAVE_STRNLEN, [Define to 1 if you have the `strnlen' function.]) +AH_TEMPLATE(HAVE_SYS_SIGABBREV, [Define to 1 if your libc has the 'sys_sigabbrev' symbol.]) +AH_TEMPLATE(HAVE_NSS_SEARCH, [Define to 1 if you have the 'nss_search' function.]) +AH_TEMPLATE(HAVE__NSS_INITF_GROUP, [Define to 1 if you have the '_nss_initf_group' function.]) +AH_TEMPLATE(HAVE___NSS_INITF_GROUP, [Define to 1 if you have the '__nss_initf_group' function.]) +AH_TEMPLATE(HAVE__NSS_XBYY_BUF_ALLOC, [Define to 1 if you have the '_nss_XbyY_buf_alloc' function.]) +AH_TEMPLATE(HAVE___NSS_XBYY_BUF_ALLOC, [Define to 1 if you have the '__nss_XbyY_buf_alloc' function.]) +AH_TEMPLATE(NEED_RESOLV_H, [Define to 1 if resolv.h must be included to get the 'inet_ntop' or 'inet_pton' function prototypes.]) +AH_TEMPLATE(HAVE_STRNLEN, [Define to 1 if you have the 'strnlen' function.]) AH_TEMPLATE(PAM_SUN_CODEBASE, [Define to 1 if your system uses a Solaris-derived PAM and not Linux-PAM or OpenPAM.]) AH_TEMPLATE(HAVE_KINFO_PROC_44BSD, [Define to 1 if your system has a 4.4BSD-style kinfo_proc struct.]) AH_TEMPLATE(HAVE_KINFO_PROC_FREEBSD, [Define to 1 if your system has a FreeBSD-style kinfo_proc struct.]) +AH_TEMPLATE(HAVE_KINFO_PROC_DFLY, [Define to 1 if your system has a Dragonfly-style kinfo_proc struct.]) AH_TEMPLATE(HAVE_KINFO_PROC2_NETBSD, [Define to 1 if your system has a NetBSD-style kinfo_proc2 struct.]) AH_TEMPLATE(HAVE_KINFO_PROC_OPENBSD, [Define to 1 if your system has an OpenBSD-style kinfo_proc struct.]) AH_TEMPLATE(HAVE_OPENSSL, [Define to 1 if you are using OpenSSL's TLS and sha2 functions.]) AH_TEMPLATE(HAVE_WOLFSSL, [Define to 1 if you are using wolfSSL's TLS and sha2 functions.]) AH_TEMPLATE(HAVE_GCRYPT, [Define to 1 if you are using gcrypt's sha2 functions.]) -AH_TEMPLATE(HAVE_SSL_CTX_SET_MIN_PROTO_VERSION, [Define to 1 if you have the `SSL_CTX_set_min_proto_version' function or macro.]) -AH_TEMPLATE(HAVE_SSL_CTX_SET_CIPHERSUITES, [Define to 1 if you have the `SSL_CTX_set_ciphersuites' function or macro.]) +AH_TEMPLATE(HAVE_SSL_CTX_SET_MIN_PROTO_VERSION, [Define to 1 if you have the 'SSL_CTX_set_min_proto_version' function or macro.]) +AH_TEMPLATE(HAVE_SSL_CTX_SET_CIPHERSUITES, [Define to 1 if you have the 'SSL_CTX_set_ciphersuites' function or macro.]) AH_TEMPLATE(SUDOERS_LOG_CLIENT, [Define to 1 to compile support for sudo_logsrvd in the sudoers plugin.]) AH_TEMPLATE(HAVE_FALLTHROUGH_ATTRIBUTE, [Define to 1 if the compiler supports the fallthrough attribute.]) -AH_TEMPLATE(HAVE_VA_COPY, [Define to 1 if you have the `va_copy' function.]) -AH_TEMPLATE(HAVE___VA_COPY, [Define to 1 if you have the `__va_copy' function.]) +AH_TEMPLATE(HAVE_VA_COPY, [Define to 1 if you have the 'va_copy' function.]) +AH_TEMPLATE(HAVE___VA_COPY, [Define to 1 if you have the '__va_copy' function.]) dnl dnl Bits to copy verbatim into config.h.in @@ -5566,7 +4699,49 @@ dnl AH_TOP([#ifndef SUDO_CONFIG_H #define SUDO_CONFIG_H]) -AH_BOTTOM([#ifndef __GNUC_PREREQ__ +AH_BOTTOM([/* Define C99 types if stdint.h and inttypes.h are missing. */ +#if !defined(HAVE_STDINT_H) && !defined(HAVE_INTTYPES_H) +# ifndef HAVE_INT8_T +typedef char int8_t; +# endif +# ifndef HAVE_UINT8_T +typedef unsigned char uint8_t; +# endif +# ifndef HAVE_INT16_T +typedef short int16_t; +# endif +# ifndef HAVE_UINT16_T +typedef unsigned short uint16_t; +# endif +# ifndef HAVE_INT32_T +typedef int int32_t; +# endif +# ifndef HAVE_UINT32_T +typedef unsigned int uint32_t; +# endif +# ifndef HAVE_INT64_T +typedef long long int64_t; +# endif +# ifndef HAVE_UINT64_T +typedef unsigned long long uint64_t; +# endif +# ifndef HAVE_INTMAX_T +typedef long long intmax_t; +# endif +# ifndef HAVE_UINTMAX_T +typedef unsigned long long uintmax_t; +# endif +#endif /* !HAVE_STDINT_H && !HAVE_INTTYPES_H */ + +#ifndef HAVE_SIG_ATOMIC_T +typedef int sig_atomic_t; +#endif + +#ifndef HAVE_SOCKLEN_T +typedef unsigned int socklen_t; +#endif + +#ifndef __GNUC_PREREQ__ # ifdef __GNUC__ # define __GNUC_PREREQ__(ma, mi) \ ((__GNUC__ > (ma)) || (__GNUC__ == (ma) && __GNUC_MINOR__ >= (mi))) @@ -5581,10 +4756,17 @@ AH_BOTTOM([#ifndef __GNUC_PREREQ__ #endif /* For functions that call exit() directly. */ -#if __GNUC_PREREQ__(2, 5) -# define sudo_noreturn __attribute__((__noreturn__)) -#else -# define sudo_noreturn +#ifdef __has_c_attribute +# if __has_c_attribute(__noreturn__) +# define sudo_noreturn [[__noreturn__]] +# endif +#endif +#ifndef sudo_noreturn +# if __GNUC_PREREQ__(2, 5) +# define sudo_noreturn __attribute__((__noreturn__)) +# else +# define sudo_noreturn +# endif #endif /* For malloc-like functions that return uninitialized or zeroed memory. */ @@ -5612,6 +4794,20 @@ AH_BOTTOM([#ifndef __GNUC_PREREQ__ # define sudo_attr_fmt_arg(_f) #endif +/* C23 defines a fallthrough attribute, gcc 7.0 and clang 10 have their own. */ +#ifdef __has_c_attribute +# if __has_c_attribute(__fallthrough__) +# define FALLTHROUGH [[__fallthrough__]] +# endif +#endif +#ifndef FALLTHROUGH +# if defined(HAVE_FALLTHROUGH_ATTRIBUTE) +# define FALLTHROUGH __attribute__((__fallthrough__)) +# else +# define FALLTHROUGH do { } while (0) +# endif +#endif + /* Symbol visibility controls. */ #ifdef HAVE_DSO_VISIBILITY # if defined(__GNUC__) diff --git a/docs/CODEOWNERS b/docs/CODEOWNERS new file mode 100644 index 0000000000..bfb5eb29b7 --- /dev/null +++ b/docs/CODEOWNERS @@ -0,0 +1 @@ +@millert diff --git a/docs/CONTRIBUTORS.md b/docs/CONTRIBUTORS.md index 02414d5cf0..7146f1473a 100644 --- a/docs/CONTRIBUTORS.md +++ b/docs/CONTRIBUTORS.md @@ -231,6 +231,7 @@ https://translationproject.org for more details. Rasmussen, Sebastian Regueiro, Leandro Sarıer, Özgür + Selimaj, Agron Sendón, Abel Șerbănescu, Daniel Shahedany, Eshagh diff --git a/docs/Makefile.in b/docs/Makefile.in index 6828d54263..20797af8a2 100644 --- a/docs/Makefile.in +++ b/docs/Makefile.in @@ -32,7 +32,7 @@ scriptdir = $(top_srcdir)/scripts # Tools to use SED = @SED@ IGOR = igor -MANDOC = @MANDOCPROG@ +MANDOC = mandoc MANCOMPRESS = @MANCOMPRESS@ MANCOMPRESSEXT = @MANCOMPRESSEXT@ TR = @TRPROG@ diff --git a/docs/SECURITY.md b/docs/SECURITY.md index 40a586bc0c..1bb2680f7e 100644 --- a/docs/SECURITY.md +++ b/docs/SECURITY.md @@ -35,3 +35,9 @@ We prefer all communications to be in English. ## Disclosure Policy The Sudo Project follows the principle of [Coordinated Vulnerability Disclosure](https://vuls.cert.org/confluence/display/CVD/Executive+Summary). Disclosure is usually coordinated using the [distros mailing list](https://oss-security.openwall.org/wiki/mailing-lists/distros). + +## Security Advisories + +The Sudo web site contains an archive of [sudo security advisories](https://www.sudo.ws/security/advisories/). +Additionally, information about vulnerabilities in sudo is sent to the +[oss-security mailing list](https://oss-security.openwall.org/wiki/mailing-lists/oss-security) once the information becomes public. diff --git a/docs/UPGRADE.md b/docs/UPGRADE.md index 5b2271cecf..43a315a582 100644 --- a/docs/UPGRADE.md +++ b/docs/UPGRADE.md @@ -1,6 +1,25 @@ Notes on upgrading from an older release ======================================== + * Upgrading from a version prior to 1.9.13: + + Sudo now builds AIX-style shared libraries and dynamic shared + objects by default instead of svr4-style. This means that the + default sudo plugins are now .a (archive) files that contain a + .so shared object file instead of bare .so files. This was done + to improve compatibility with the AIX Freeware ecosystem, + specifically, the AIX Freeware build of OpenSSL. When loading + a .a file as a plugin the name of the included .so file must + also be specified, for example /usr/libexec/sudo/sudoers.a(sudoers.so). + + Sudo is still capable of loading svr4-style .so plugins and if + a .so file is requested, either via sudo.conf or the sudoers + file, and only the .a file is present, sudo will convert the + path from plugin.so to plugin.a(plugin.so). This ensures + compatibility with existing configurations. To restore the old, + pre-1.9.13 behavior, run configure using the --with-aix-soname=svr4 + option. + * Upgrading from a version prior to 1.9.10: Sudo now interprets a command line argument in sudoers that diff --git a/docs/cvtsudoers.man.in b/docs/cvtsudoers.man.in index 2b5ac6b788..401996e1dc 100644 --- a/docs/cvtsudoers.man.in +++ b/docs/cvtsudoers.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2018, 2021-2022 Todd C. Miller +.\" Copyright (c) 2018, 2021-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.TH "CVTSUDOERS" "1" "September 29, 2022" "Sudo @PACKAGE_VERSION@" "General Commands Manual" +.TH "CVTSUDOERS" "1" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "General Commands Manual" .nh .if n .ad l .SH "NAME" @@ -62,7 +62,7 @@ to make the policy rules specific to a host when merging multiple files. By default, the result is written to the standard output. .PP The options are as follows: -.TP 12n +.TP 8n \fB\-b\fR \fIdn\fR, \fB\--base\fR=\fIdn\fR The base DN (distinguished name) that will be used when performing LDAP queries. @@ -73,12 +73,12 @@ If this option is not specified, the value of the \fRSUDOERS_BASE\fR environment variable will be used instead. Only necessary when converting to LDIF format. -.TP 12n +.TP 8n \fB\-c\fR \fIconf_file\fR, \fB\--config\fR=\fIconf_file\fR Specify the path to the configuration file. Defaults to \fI@sysconfdir@/cvtsudoers.conf\fR. -.TP 12n +.TP 8n \fB\-d\fR \fIdeftypes\fR, \fB\--defaults\fR=\fIdeftypes\fR Only convert \fIDefaults\fR @@ -89,26 +89,26 @@ types may be specified, separated by a comma (\(oq\&,\(cq). The supported types are: .PP -.RS 12n +.RS 8n .PD 0 -.TP 10n +.TP 9n all All Defaults entries. .PD -.TP 10n +.TP 9n global Global Defaults entries that are applied regardless of user, runas, host, or command. -.TP 10n +.TP 9n user Per-user Defaults entries. -.TP 10n +.TP 9n runas Per-runas user Defaults entries. -.TP 10n +.TP 9n host Per-host Defaults entries. -.TP 10n +.TP 9n command Per-command Defaults entries. .PP @@ -124,21 +124,21 @@ option is not specified, all \fIDefaults\fR entries will be converted. .RE -.TP 12n +.TP 8n \fB\-e\fR, \fB\--expand-aliases\fR Expand aliases in \fIinput_file\fR. Aliases are preserved by default when the output \fIformat\fR is JSON or sudoers. -.TP 12n +.TP 8n \fB\-f\fR \fIoutput_format\fR, \fB\--output-format\fR=\fIoutput_format\fR Specify the output format (case-insensitive). The following formats are supported: .PP -.RS 12n +.RS 8n .PD 0 -.TP 10n +.TP 9n CSV CSV (comma-separated value) files are often used by spreadsheets and report generators. @@ -146,7 +146,7 @@ See \fICSV output format\fR for more details. .PD -.TP 10n +.TP 9n JSON JSON (JavaScript Object Notation) files are usually easier for third-party applications to consume than the traditional @@ -159,7 +159,7 @@ format. See \fIJSON output format\fR for more details. -.TP 10n +.TP 9n LDIF LDIF (LDAP Data Interchange Format) files can be imported into an LDAP server for use with @@ -167,7 +167,7 @@ sudoers.ldap(@mansectform@). .sp Conversion to LDIF has the following limitations: .PP -.RS 10n +.RS 9n .PD 0 .TP 3n \fB\(bu\fR @@ -182,7 +182,7 @@ sudoers LDAP schema so they are expanded during the conversion. .PP .RE .PD -.TP 10n +.TP 9n sudoers Traditional sudoers format. A new sudoers file will be reconstructed from the parsed input file. @@ -192,24 +192,24 @@ output inline. .PP .RE .PD -.TP 12n +.TP 8n \fB\--group-file\fR=\fIfile\fR When the \fB\-M\fR option is also specified, perform group queries using \fIfile\fR instead of the system group database. -.TP 12n +.TP 8n \fB\-h\fR, \fB\--help\fR Display a short help message to the standard output and exit. -.TP 12n +.TP 8n \fB\-i\fR \fIinput_format\fR, \fB\--input-format\fR=\fIinput_format\fR Specify the input format. The following formats are supported: .PP -.RS 12n +.RS 8n .PD 0 -.TP 10n +.TP 9n LDIF LDIF (LDAP Data Interchange Format) files can be exported from an LDAP server to convert security policies used by @@ -219,7 +219,7 @@ that match the base DN will be processed. Not all sudoOptions specified in a sudoRole can be translated from LDIF to sudoers format. .PD -.TP 10n +.TP 9n sudoers Traditional sudoers format. This is the default input format. @@ -227,12 +227,12 @@ This is the default input format. .PP .RE .PD -.TP 12n +.TP 8n \fB\-I\fR \fIincrement\fR, \fB\--increment\fR=\fIincrement\fR When generating LDIF output, increment each sudoOrder attribute by the specified number. Defaults to an increment of 1. -.TP 12n +.TP 8n \fB\-l\fR \fIlog_file\fR, \fB\--logfile\fR=\fIlog_file\fR Log conversion warnings to \fIlog_file\fR @@ -240,7 +240,7 @@ instead of to the standard error. This is particularly useful when merging multiple \fIsudoers\fR files, which can generate a large number of warnings. -.TP 12n +.TP 8n \fB\-m\fR \fIfilter\fR, \fB\--match\fR=\fIfilter\fR Only output rules that match the specified \fIfilter\fR. @@ -290,7 +290,7 @@ on the local system (see the option). Only aliases that are referenced by the filtered policy rules will be displayed. -.TP 12n +.TP 8n \fB\-M\fR, \fB\--match-local\fR When the \fB\-m\fR @@ -305,7 +305,7 @@ is specified, users and groups in the filter do not need to exist on the local system, but all groups used for matching must be explicitly listed in the filter. -.TP 12n +.TP 8n \fB\-o\fR \fIoutput_file\fR, \fB\--output\fR=\fIoutput_file\fR Write the converted output to \fIoutput_file\fR. @@ -316,7 +316,7 @@ is specified, or if it is the converted \fIsudoers\fR policy will be written to the standard output. -.TP 12n +.TP 8n \fB\-O\fR \fIstart_point\fR, \fB\--order-start\fR=\fIstart_point\fR When generating LDIF output, use the number specified by \fIstart_point\fR @@ -329,14 +329,14 @@ option for details. Defaults to a starting point of 1. A starting point of 0 will disable the generation of sudoOrder attributes in the resulting LDIF file. -.TP 12n +.TP 8n \fB\--passwd-file\fR=\fIfile\fR When the \fB\-M\fR option is also specified, perform passwd queries using \fIfile\fR instead of the system passwd database. -.TP 12n +.TP 8n \fB\-p\fR, \fB\--prune-matches\fR When the \fB\-m\fR @@ -344,7 +344,7 @@ option is also specified, \fBcvtsudoers\fR will prune out non-matching users, groups, and hosts from matching entries. -.TP 12n +.TP 8n \fB\-P\fR \fIpadding\fR, \fB\--padding\fR=\fIpadding\fR When generating LDIF output, construct the initial sudoOrder value by concatenating @@ -368,7 +368,7 @@ If the number of sudoRole entries is larger than the padding would allow, \fBcvtsudoers\fR will exit with an error. By default, no padding is performed. -.TP 12n +.TP 8n \fB\-s\fR \fIsections\fR, \fB\--suppress\fR=\fIsections\fR Suppress the output of specific \fIsections\fR @@ -382,7 +382,7 @@ and \fBprivileges\fR (which may be shortened to \fBprivs\fR). -.TP 12n +.TP 8n \fB\-V\fR, \fB\--version\fR Print the \fBcvtsudoers\fR @@ -899,30 +899,30 @@ The following names and values are supported: .PP .RS 6n .PD 0 -.TP 10n +.TP 9n command A string containing the command to run. The special value \fBALL\fR it will match any command. .PD -.TP 10n +.TP 9n negated A boolean value that, if true, will negate any comparison performed with the object. -.TP 10n +.TP 9n sha224 A string containing the SHA224 digest of the \fIcommand\fR. -.TP 10n +.TP 9n sha256 A string containing the SHA256 digest of the \fIcommand\fR. -.TP 10n +.TP 9n sha384 A string containing the SHA384 digest of the \fIcommand\fR. -.TP 10n +.TP 9n sha512 A string containing the SHA512 digest of the \fIcommand\fR. @@ -1072,7 +1072,7 @@ defaults_type,binding,name,operator,value .RS 6n .sp The fields are as follows: -.TP 10n +.TP 6n defaults_type The type of \fIDefaults\fR @@ -1083,7 +1083,7 @@ setting; one of \fIdefaults_runas\fR, or \fIdefaults_user\fR. -.TP 10n +.TP 6n binding For \fIdefaults_command\fR, @@ -1092,12 +1092,12 @@ For and \fIdefaults_user\fR this is the value that must match for the setting to be applied. -.TP 10n +.TP 6n name The name of the \fIDefaults\fR setting. -.TP 10n +.TP 6n operator The operator determines how the value is applied to the setting. It may be either @@ -1108,8 +1108,9 @@ It may be either or \(oq-=\(cq (remove). -.TP 10n +.TP 6n value +.br The setting's value, usually a string or, for settings used in a boolean context, \fItrue\fR @@ -1141,7 +1142,7 @@ alias_type,alias_name,members .RS 6n .sp The fields are as follows: -.TP 10n +.TP 6n alias_type The type of alias; one of \fICmnd_Alias\fR, @@ -1149,11 +1150,11 @@ The type of alias; one of \fIRunas_Alias\fR, or \fIUser_Alias\fR. -.TP 10n +.TP 6n alias_name The name of the alias; a string starting with an upper-case letter that consists of upper-case letters, digits, or underscores. -.TP 10n +.TP 6n members A comma-separated list of members belonging to the alias. Due to the use of commas, @@ -1181,13 +1182,13 @@ rule,user,host,runusers,rungroups,options,command .RS 6n .sp The fields are as follows: -.TP 10n +.TP 6n rule This field indicates a \fIsudoers\fR \fIrule\fR entry. -.TP 10n +.TP 6n user The user the rule applies to. This may also be a Unix group (preceded by a @@ -1202,7 +1203,7 @@ or a If set to the special value \fBALL\fR, it will match any user. -.TP 10n +.TP 6n host The host the rule applies to. This may also be a netgroup (preceded by a @@ -1213,7 +1214,7 @@ or a If set to the special value \fBALL\fR, it will match any host. -.TP 10n +.TP 6n runusers An optional comma-separated list of users (or \fIRunas_Alias\fRes) @@ -1224,9 +1225,8 @@ If set to the special value \fBALL\fR, it will match any user. If empty, the root user is assumed. -.TP 10n +.TP 6n rungroups -.br An optional comma-separated list of groups (or \fIRunas_Alias\fRes) the command may be run as. @@ -1238,7 +1238,7 @@ it will match any group. If empty, the \fIrunuser\fR's group is used. -.TP 10n +.TP 6n options An optional list of \fIDefaults\fR @@ -1249,7 +1249,7 @@ entries in \fIsudoers\fR are converted to \fIoptions\fR. -.TP 10n +.TP 6n commands A list of commands, with optional arguments, that the user is allowed to run. If set to the special value diff --git a/docs/cvtsudoers.mdoc.in b/docs/cvtsudoers.mdoc.in index 6d73a0987b..5618376415 100644 --- a/docs/cvtsudoers.mdoc.in +++ b/docs/cvtsudoers.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2018, 2021-2022 Todd C. Miller +.\" Copyright (c) 2018, 2021-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd September 29, 2022 +.Dd January 16, 2023 .Dt CVTSUDOERS 1 .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -60,7 +60,7 @@ to make the policy rules specific to a host when merging multiple files. By default, the result is written to the standard output. .Pp The options are as follows: -.Bl -tag -width Fl +.Bl -tag -width Ds .It Fl b Ar dn , Fl -base Ns = Ns Ar dn The base DN (distinguished name) that will be used when performing LDAP queries. @@ -84,7 +84,7 @@ One or more types may be specified, separated by a comma .Pq Ql \&, . The supported types are: -.Bl -tag -width 8n +.Bl -tag -width "command" .It all All Defaults entries. .It global @@ -120,7 +120,7 @@ is JSON or sudoers. .It Fl f Ar output_format , Fl -output-format Ns = Ns Ar output_format Specify the output format (case-insensitive). The following formats are supported: -.Bl -tag -width 8n +.Bl -tag -width "sudoers" .It CSV CSV (comma-separated value) files are often used by spreadsheets and report generators. @@ -170,7 +170,7 @@ Display a short help message to the standard output and exit. .It Fl i Ar input_format , Fl -input-format Ns = Ns Ar input_format Specify the input format. The following formats are supported: -.Bl -tag -width 8n +.Bl -tag -width "sudoers" .It LDIF LDIF (LDAP Data Interchange Format) files can be exported from an LDAP server to convert security policies used by @@ -783,7 +783,7 @@ array consists of one or more objects containing .Dq name:value pair elements. The following names and values are supported: -.Bl -tag -width 8n +.Bl -tag -width "command" .It command A string containing the command to run. The special value @@ -941,7 +941,7 @@ defaults_type,binding,name,operator,value .Ed .Pp The fields are as follows: -.Bl -tag -width 8n +.Bl -tag -width 4n .It defaults_type The type of .Em Defaults @@ -998,7 +998,7 @@ alias_type,alias_name,members .Ed .Pp The fields are as follows: -.Bl -tag -width 8n +.Bl -tag -width 4n .It alias_type The type of alias; one of .Em Cmnd_Alias , @@ -1027,7 +1027,7 @@ rule,user,host,runusers,rungroups,options,command .Ed .Pp The fields are as follows: -.Bl -tag -width 8n +.Bl -tag -width 4n .It rule This field indicates a .Em sudoers diff --git a/docs/sudo.conf.man.in b/docs/sudo.conf.man.in index 485c1fd024..2494b26af7 100644 --- a/docs/sudo.conf.man.in +++ b/docs/sudo.conf.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2010-2022 Todd C. Miller +.\" Copyright (c) 2010-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -17,7 +17,7 @@ .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .nr SL @SEMAN@ -.TH "SUDO.CONF" "@mansectform@" "May 31, 2022" "Sudo @PACKAGE_VERSION@" "File Formats Manual" +.TH "SUDO.CONF" "@mansectform@" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "File Formats Manual" .nh .if n .ad l .SH "NAME" @@ -35,19 +35,19 @@ debug flags, and other settings. The \fBsudo.conf\fR file supports the following directives, described in detail below. -.TP 10n +.TP 8n Plugin an approval, audit, I/O logging, or security policy plugin -.TP 10n +.TP 8n Path a plugin-agnostic path -.TP 10n +.TP 8n Set a front-end setting, such as \fIdisable_coredump\fR or \fIgroup_source\fR -.TP 10n +.TP 8n Debug debug flags to aid in debugging \fBsudo\fR, @@ -127,7 +127,7 @@ In other words: .nf .sp .RS 4n -Plugin sudoers_policy sudoers.so +Plugin sudoers_policy @sudoers_plugin@ .RE .fi .PP @@ -135,7 +135,7 @@ is equivalent to: .nf .sp .RS 4n -Plugin sudoers_policy @plugindir@/sudoers.so +Plugin sudoers_policy @plugindir@/@sudoers_plugin@ .RE .fi .PP @@ -149,7 +149,7 @@ For example: .nf .sp .RS 4n -Plugin sudoers_policy sudoers.so +Plugin sudoers_policy @sudoers_plugin@ .RE .fi .PP @@ -164,7 +164,7 @@ For example, to override the compile-time default sudoers file mode: .nf .sp .RS 4n -Plugin sudoers_policy sudoers.so sudoers_mode=0440 +Plugin sudoers_policy @sudoers_plugin@ sudoers_mode=0440 .RE .fi .PP @@ -191,9 +191,9 @@ This is equivalent to the following: .nf .sp .RS 4n -Plugin sudoers_policy sudoers.so -Plugin sudoers_io sudoers.so -Plugin sudoers_audit sudoers.so +Plugin sudoers_policy @sudoers_plugin@ +Plugin sudoers_io @sudoers_plugin@ +Plugin sudoers_audit @sudoers_plugin@ .RE .fi .PP @@ -246,7 +246,7 @@ version 1.8.16 and higher. The following plugin-agnostic paths may be set in the \fI@sysconfdir@/sudo.conf\fR file: -.TP 10n +.TP 6n askpass The fully qualified path to a helper program used to read the user's password when no terminal is available. @@ -262,9 +262,8 @@ The value of may be overridden by the \fRSUDO_ASKPASS\fR environment variable. -.TP 10n +.TP 6n devsearch -.br An ordered, colon-separated search path of directories to look in for device nodes. This is used when mapping the process's tty device number to a device name @@ -286,9 +285,8 @@ or functions, for example BSD, macOS and Solaris. -.TP 10n +.TP 6n intercept -.br The fully-qualified path to a shared library containing a wrappers for the execve(2), execl(3), @@ -308,7 +306,7 @@ functionality on systems that support or its equivalent. The default value is \fI@intercept_file@\fR. -.TP 10n +.TP 6n noexec The fully-qualified path to a shared library containing wrappers for the @@ -337,14 +335,13 @@ functionality on systems that support or its equivalent. The default value is \fI@noexec_file@\fR. -.TP 10n +.TP 6n plugin_dir The default directory to use when searching for plugins that are specified without a fully qualified path name. The default value is \fI@plugindir@\fR. -.if \n(SL \{\ -.TP 10n +.TP 6n sesh The fully-qualified path to the \fBsesh\fR @@ -359,7 +356,7 @@ The default value is The \fBsudo.conf\fR file also supports the following front-end settings: -.TP 10n +.TP 6n disable_coredump Core dumps of \fBsudo\fR @@ -374,11 +371,11 @@ to false in as follows: .nf .sp -.RS 14n +.RS 10n Set disable_coredump false .RE .fi -.RS 10n +.RS 6n .sp All modern operating systems place restrictions on core dumps from set-user-ID processes like @@ -400,38 +397,7 @@ This setting is only available in \fBsudo\fR version 1.8.4 and higher. .RE -.TP 10n -developer_mode -By default -\fBsudo\fR -refuses to load plugins which can be modified by other than the root user. -The plugin should be owned by root and write access permissions should be -disabled for -\(lqgroup\(rq -and -\(lqother\(rq\&. -To make development of a plugin easier, you can disable that by setting -\(lqdeveloper_mode\(rq -option to true in -\fBsudo.conf\fR -as follows: -.nf -.sp -.RS 14n -Set developer_mode true -.RE -.fi -.RS 10n -.sp -This creates a security risk and is not recommended for production systems, -it is intended to be used in a development environment (VM, container, etc). -Before enabling developer mode, be sure that you understand the implications. -.sp -This setting is only available in -\fBsudo\fR -version 1.9.0 and higher. -.RE -.TP 10n +.TP 6n group_source \fBsudo\fR passes the invoking user's group list to the policy and I/O plugins. @@ -441,10 +407,10 @@ with NFS). On systems with the getconf(1) utility, running: -.RS 16n +.RS 12n getconf NGROUPS_MAX .RE -.RS 10n +.RS 6n will return the maximum number of groups. .sp However, it is still possible to be a member of a larger number of @@ -465,7 +431,7 @@ setting allows the administrator to change this default behavior. Supported values for \fIgroup_source\fR are: -.TP 10n +.TP 6n static Use the static group list that the kernel returns. Retrieving the group list this way is very fast but it is subject @@ -477,7 +443,7 @@ after the user logs in. This was the default behavior prior to \fBsudo\fR 1.8.7. -.TP 10n +.TP 6n dynamic Always query the group database directly. It is @@ -497,7 +463,7 @@ HP-UX, Linux, macOS, and Solaris. This is the default behavior on macOS in \fBsudo\fR 1.9.6 and higher. -.TP 10n +.TP 6n adaptive Only query the group database if the static group list returned by the kernel has the maximum number of entries. @@ -510,7 +476,7 @@ For example, to cause to only use the kernel's static list of groups for the user: .nf .sp -.RS 14n +.RS 10n Set group_source static .RE .fi @@ -519,7 +485,7 @@ This setting is only available in \fBsudo\fR version 1.8.7 and higher. .RE -.TP 10n +.TP 6n max_groups The maximum number of user groups to retrieve from the group database. Values less than one or larger than 1024 will be ignored. @@ -537,7 +503,7 @@ version 1.8.7 and higher. It should not be required in \fBsudo\fR versions 1.8.24 and higher and may be removed in a later release. -.TP 10n +.TP 6n probe_interfaces By default, \fBsudo\fR @@ -551,11 +517,11 @@ If IP-based matching is not required, network interface probing can be disabled as follows: .nf .sp -.RS 14n +.RS 10n Set probe_interfaces false .RE .fi -.RS 10n +.RS 6n .sp This setting is only available in \fBsudo\fR @@ -626,7 +592,7 @@ entries are also supported starting with \fBsudo\fR 1.8.12 and are matched by either the base name of the plugin that was loaded (for example -\fIsudoers.so\fR) +\fI@sudoers_plugin@\fR) or by the plugin's fully-qualified path name. Previously, the \fBsudoers\fR @@ -745,9 +711,9 @@ front-end configuration # The plugin_options are optional. # # The sudoers plugin is used by default if no Plugin lines are present. -#Plugin sudoers_policy sudoers.so -#Plugin sudoers_io sudoers.so -#Plugin sudoers_audit sudoers.so +#Plugin sudoers_policy @sudoers_plugin@ +#Plugin sudoers_io @sudoers_plugin@ +#Plugin sudoers_audit @sudoers_plugin@ # # Sudo askpass: @@ -785,7 +751,7 @@ front-end configuration # The compiled-in value is usually sufficient and should only be changed # if you rename or move the sudo_intercept.so file. # -#Path intercept @plugindir@/sudo_intercept.so +#Path intercept @intercept_file@ # # Sudo noexec: @@ -799,7 +765,7 @@ front-end configuration # The compiled-in value is usually sufficient and should only be changed # if you rename or move the sudo_noexec.so file. # -#Path noexec @plugindir@/sudo_noexec.so +#Path noexec @noexec_file@ # # Sudo plugin directory: @@ -810,14 +776,6 @@ front-end configuration # #Path plugin_dir @plugindir@ -# -# Sudo developer mode: -# Set developer_mode true|false -# -# Allow loading of plugins that are owned by non-root or are writable -# by "group" or "other". Should only be used during plugin development. -#Set developer_mode true - # # Core dumps: # Set disable_coredump true|false @@ -870,7 +828,7 @@ front-end configuration # Multiple subsystem@priority may be specified, separated by a comma. # #Debug sudo @log_dir@/sudo_debug all@debug -#Debug sudoers.so @log_dir@/sudoers_debug all@debug +#Debug @sudoers_plugin@ @log_dir@/sudoers_debug all@debug .RE .fi .SH "SEE ALSO" diff --git a/docs/sudo.conf.mdoc.in b/docs/sudo.conf.mdoc.in index 20c898edbf..05155e9110 100644 --- a/docs/sudo.conf.mdoc.in +++ b/docs/sudo.conf.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2010-2022 Todd C. Miller +.\" Copyright (c) 2010-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .nr SL @SEMAN@ -.Dd May 31, 2022 +.Dd January 16, 2023 .Dt SUDO.CONF @mansectform@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -34,7 +34,7 @@ debug flags, and other settings. The .Nm file supports the following directives, described in detail below. -.Bl -tag -width 8n +.Bl -tag -width "Plugin" .It Plugin an approval, audit, I/O logging, or security policy plugin .It Path @@ -122,12 +122,12 @@ setting, which defaults to .Pa @plugindir@ . In other words: .Bd -literal -offset 4n -Plugin sudoers_policy sudoers.so +Plugin sudoers_policy @sudoers_plugin@ .Ed .Pp is equivalent to: .Bd -literal -offset 4n -Plugin sudoers_policy @plugindir@/sudoers.so +Plugin sudoers_policy @plugindir@/@sudoers_plugin@ .Ed .Pp If the plugin was compiled statically into the @@ -138,7 +138,7 @@ should be specified without a leading directory, as it does not actually exist in the file system. For example: .Bd -literal -offset 4n -Plugin sudoers_policy sudoers.so +Plugin sudoers_policy @sudoers_plugin@ .Ed .Pp Starting with @@ -150,7 +150,7 @@ are passed as arguments to the plugin's function. For example, to override the compile-time default sudoers file mode: .Bd -literal -offset 4n -Plugin sudoers_policy sudoers.so sudoers_mode=0440 +Plugin sudoers_policy @sudoers_plugin@ sudoers_mode=0440 .Ed .Pp See the @@ -174,9 +174,9 @@ plugin will be used as the default security policy, for I/O logging (if enabled by the policy), and for auditing. This is equivalent to the following: .Bd -literal -offset 4n -Plugin sudoers_policy sudoers.so -Plugin sudoers_io sudoers.so -Plugin sudoers_audit sudoers.so +Plugin sudoers_policy @sudoers_plugin@ +Plugin sudoers_io @sudoers_plugin@ +Plugin sudoers_audit @sudoers_plugin@ .Ed .Pp Starting with @@ -225,7 +225,7 @@ version 1.8.16 and higher. The following plugin-agnostic paths may be set in the .Pa @sysconfdir@/sudo.conf file: -.Bl -tag -width 8n +.Bl -tag -width 4n .It askpass The fully qualified path to a helper program used to read the user's password when no terminal is available. @@ -332,7 +332,7 @@ The default value is The .Nm file also supports the following front-end settings: -.Bl -tag -width 8n +.Bl -tag -width 4n .It disable_coredump Core dumps of .Nm sudo @@ -368,34 +368,6 @@ command is used to configure core dump behavior. This setting is only available in .Nm sudo version 1.8.4 and higher. -.It developer_mode -By default -.Nm sudo -refuses to load plugins which can be modified by other than the root user. -The plugin should be owned by root and write access permissions should be -disabled for -.Dq group -and -.Sm off -.Dq other -\&. -.Sm on -To make development of a plugin easier, you can disable that by setting -.Dq developer_mode -option to true in -.Nm sudo.conf -as follows: -.Bd -literal -offset 4n -Set developer_mode true -.Ed -.Pp -This creates a security risk and is not recommended for production systems, -it is intended to be used in a development environment (VM, container, etc). -Before enabling developer mode, be sure that you understand the implications. -.Pp -This setting is only available in -.Nm sudo -version 1.9.0 and higher. .It group_source .Nm sudo passes the invoking user's group list to the policy and I/O plugins. @@ -426,7 +398,7 @@ setting allows the administrator to change this default behavior. Supported values for .Em group_source are: -.Bl -tag -width 8n +.Bl -tag -width 4n .It static Use the static group list that the kernel returns. Retrieving the group list this way is very fast but it is subject @@ -570,7 +542,7 @@ entries are also supported starting with .Nm sudo 1.8.12 and are matched by either the base name of the plugin that was loaded (for example -.Pa sudoers.so ) +.Pa @sudoers_plugin@ ) or by the plugin's fully-qualified path name. Previously, the .Nm sudoers @@ -674,9 +646,9 @@ front-end configuration # The plugin_options are optional. # # The sudoers plugin is used by default if no Plugin lines are present. -#Plugin sudoers_policy sudoers.so -#Plugin sudoers_io sudoers.so -#Plugin sudoers_audit sudoers.so +#Plugin sudoers_policy @sudoers_plugin@ +#Plugin sudoers_io @sudoers_plugin@ +#Plugin sudoers_audit @sudoers_plugin@ # # Sudo askpass: @@ -714,7 +686,7 @@ front-end configuration # The compiled-in value is usually sufficient and should only be changed # if you rename or move the sudo_intercept.so file. # -#Path intercept @plugindir@/sudo_intercept.so +#Path intercept @intercept_file@ # # Sudo noexec: @@ -728,7 +700,7 @@ front-end configuration # The compiled-in value is usually sufficient and should only be changed # if you rename or move the sudo_noexec.so file. # -#Path noexec @plugindir@/sudo_noexec.so +#Path noexec @noexec_file@ # # Sudo plugin directory: @@ -739,14 +711,6 @@ front-end configuration # #Path plugin_dir @plugindir@ -# -# Sudo developer mode: -# Set developer_mode true|false -# -# Allow loading of plugins that are owned by non-root or are writable -# by "group" or "other". Should only be used during plugin development. -#Set developer_mode true - # # Core dumps: # Set disable_coredump true|false @@ -799,7 +763,7 @@ front-end configuration # Multiple subsystem@priority may be specified, separated by a comma. # #Debug sudo @log_dir@/sudo_debug all@debug -#Debug sudoers.so @log_dir@/sudoers_debug all@debug +#Debug @sudoers_plugin@ @log_dir@/sudoers_debug all@debug .Ed .Sh SEE ALSO .Xr sudo_plugin @mansectform@ , diff --git a/docs/sudo.man.in b/docs/sudo.man.in index 8b95deefed..453de08bc6 100644 --- a/docs/sudo.man.in +++ b/docs/sudo.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 1994-1996, 1998-2005, 2007-2022 +.\" Copyright (c) 1994-1996, 1998-2005, 2007-2023 .\" Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -25,7 +25,7 @@ .nr BA @BAMAN@ .nr LC @LCMAN@ .nr PS @PSMAN@ -.TH "SUDO" "@mansectsu@" "September 13, 2022" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" +.TH "SUDO" "@mansectsu@" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" .nh .if n .ad l .SH "NAME" @@ -58,7 +58,7 @@ [\fB\-p\fR\ \fIprompt\fR] [\fB\-U\fR\ \fIuser\fR] [\fB\-u\fR\ \fIuser\fR] -[\fIcommand\fR] +[\fIcommand\fR\ [\fIarg\ ...\fR]] .br .HP 5n \fBsudo\fR @@ -77,7 +77,7 @@ [\fB\-u\fR\ \fIuser\fR] [\fIVAR\fR=\fIvalue\fR] [\fB\-i\fR\ |\ \fB\-s\fR] -[\fIcommand\fR] +[\fIcommand\fR\ [\fIarg\ ...\fR]] .br .HP 9n \fBsudoedit\fR @@ -177,11 +177,12 @@ option (described below), is implied. Security policies and audit plugins may log successful and failed attempts to run \fBsudo\fR. -If an I/O plugin is configured, the running command's input and -output may be logged as well. +If an I/O plugin is configured, the running +\fIcommand\fR's +input and output may be logged as well. .PP The options are as follows: -.TP 12n +.TP 8n \fB\-A\fR, \fB\--askpass\fR Normally, if \fBsudo\fR @@ -202,19 +203,18 @@ used. For example: .nf .sp -.RS 16n +.RS 12n # Path to askpass helper program Path askpass /usr/X11R6/bin/ssh-askpass .RE .fi -.RS 12n +.RS 8n .sp If no askpass program is available, \fBsudo\fR will exit with an error. .RE -.if \n(BA \{\ -.TP 12n +.TP 8n \fB\-a\fR \fItype\fR, \fB\--auth-type\fR=\fItype\fR Use the specified BSD @@ -230,29 +230,33 @@ entry in This option is only available on systems that support BSD authentication. -.\} -.TP 12n +.TP 8n \fB\-B\fR, \fB\--bell\fR Ring the bell as part of the password prompt when a terminal is present. This option has no effect if an askpass program is used. -.TP 12n +.TP 8n \fB\-b\fR, \fB\--background\fR -Run the given command in the background. +Run the given +\fIcommand\fR +in the background. It is not possible to use shell job control to manipulate background processes started by \fBsudo\fR. -Most interactive commands will fail to work properly in background -mode. -.TP 12n +Most interactive +\fIcommand\fRs +will fail to work properly in background mode. +.TP 8n \fB\-C\fR \fInum\fR, \fB\--close-from\fR=\fInum\fR Close all file descriptors greater than or equal to \fInum\fR -before executing a command. +before executing a +\fIcommand\fR. Values less than three are not permitted. By default, \fBsudo\fR will close all open file descriptors other than standard input, -standard output, and standard error when executing a command. +standard output, and standard error when executing a +\fIcommand\fR. The security policy may restrict the user's ability to use this option. The \fIsudoers\fR @@ -261,11 +265,11 @@ policy only permits use of the option when the administrator has enabled the \fIclosefrom_override\fR option. -.if \n(LC \{\ -.TP 12n +.TP 8n \fB\-c\fR \fIclass\fR, \fB\--login-class\fR=\fIclass\fR -Run the command with resource limits and scheduling priority of -the specified login +Run the +\fIcommand\fR +with resource limits and scheduling priority of the specified login \fIclass\fR. The \fIclass\fR @@ -279,31 +283,36 @@ If is \fB-\fR, the default login class of the target user will be used. -Otherwise, the command must be run as the superuser (user-ID 0), or +Otherwise, the +\fIcommand\fR +must be run as the superuser (user-ID 0), or \fBsudo\fR must be run from a shell that is already running as the superuser. -If the command is being run as a login shell, additional +If the +\fIcommand\fR +is being run as a login shell, additional \fI/etc/login.conf\fR settings, such as the umask and environment variables, will be applied, if present. This option is only available on systems with BSD login classes. -.\} -.TP 12n +.TP 8n \fB\-D\fR \fIdirectory\fR, \fB\--chdir\fR=\fIdirectory\fR -Run the command in the specified +Run the +\fIcommand\fR +in the specified \fIdirectory\fR instead of the current working directory. The security policy may return an error if the user does not have permission to specify the working directory. -.TP 12n +.TP 8n \fB\-E\fR, \fB\--preserve-env\fR Indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the user does not have permission to preserve the environment. -.TP 12n +.TP 8n \fB\--preserve-env=list\fR Indicates to the security policy that the user wishes to add the comma-separated list of environment variables to those preserved @@ -311,14 +320,17 @@ from the user's environment. The security policy may return an error if the user does not have permission to preserve the environment. This option may be specified multiple times. -.TP 12n +.TP 8n \fB\-e\fR, \fB\--edit\fR -Edit one or more files instead of running a command. +Edit one or more +\fIfile\fRs +instead of running a +\fIcommand\fR. In lieu of a path name, the string "sudoedit" is used when consulting the security policy. If the user is authorized by the policy, the following steps are taken: -.RS 16n +.RS 12n .TP 5n 1.\& Temporary copies are made of the files to be edited with the owner @@ -349,11 +361,11 @@ option is used. If they have been modified, the temporary files are copied back to their original location and the temporary versions are removed. .RE -.RS 12n +.RS 8n .sp To help prevent the editing of unauthorized files, the following restrictions are enforced unless explicitly allowed by the security policy: -.RS 16n +.RS 9n .TP 3n \fB\(bu\fR Symbolic links may not be edited (version 1.8.15 and higher). @@ -371,7 +383,9 @@ not be edited unless that user is root (version 1.8.16 and higher). Users are never allowed to edit device special files. .sp If the specified file does not exist, it will be created. -Unlike most commands run by +Unlike most +\fIcommand\fRs +run by \fIsudo\fR, the editor is run with the invoking user's environment unmodified. If the temporary file becomes empty after editing, the user will @@ -382,9 +396,11 @@ is unable to update a file with its edited version, the user will receive a warning and the edited copy will remain in a temporary file. .RE -.TP 12n +.TP 8n \fB\-g\fR \fIgroup\fR, \fB\--group\fR=\fIgroup\fR -Run the command with the primary group set to +Run the +\fIcommand\fR +with the primary group set to \fIgroup\fR instead of the primary group specified by the target user's password database entry. @@ -397,13 +413,17 @@ prefixed with the character (e.g., \(oq#0\(cq for GID 0). -When running a command as a GID, many shells require that the +When running a +\fIcommand\fR +as a GID, many shells require that the \(oq#\(cq be escaped with a backslash (\(oq\e\(cq). If no \fB\-u\fR -option is specified, the command will be run as the invoking user. +option is specified, the +\fIcommand\fR +will be run as the invoking user. In either case, the primary group will be set to \fIgroup\fR. The @@ -414,28 +434,32 @@ the option as long as the \fB\-P\fR option is not in use. -.TP 12n +.TP 8n \fB\-H\fR, \fB\--set-home\fR Request that the security policy set the \fRHOME\fR environment variable to the home directory specified by the target user's password database entry. Depending on the policy, this may be the default behavior. -.TP 12n +.TP 8n \fB\-h\fR, \fB\--help\fR Display a short help message to the standard output and exit. -.TP 12n +.TP 8n \fB\-h\fR \fIhost\fR, \fB\--host\fR=\fIhost\fR -Run the command on the specified +Run the +\fIcommand\fR +on the specified \fIhost\fR -if the security policy plugin supports remote commands. +if the security policy plugin supports remote +\fIcommand\fRs. The \fIsudoers\fR -plugin does not currently support running remote commands. +plugin does not currently support running remote +\fIcommand\fRs. This may also be used in conjunction with the \fB\-l\fR option to list a user's privileges for the remote host. -.TP 12n +.TP 8n \fB\-i\fR, \fB\--login\fR Run the shell specified by the target user's password database entry as a login shell. @@ -445,25 +469,35 @@ This means that login-specific resource files such as or \fI.login\fR will be read by the shell. -If a command is specified, it is passed to the shell as a simple -command using the +If a +\fIcommand\fR +is specified, it is passed to the shell as a simple +\fIcommand\fR +using the \fB\-c\fR option. -The command and any arguments are concatenated, separated by spaces, -after escaping each character +The +\fIcommand\fR +and any +\fIarg\fRs +are concatenated, separated by spaces, after escaping each character (including white space) with a backslash (\(oq\e\(cq) except for alphanumerics, underscores, hyphens, and dollar signs. -If no command is specified, an interactive shell is executed. +If no +\fIcommand\fR +is specified, an interactive shell is executed. \fBsudo\fR attempts to change to that user's home directory before running the shell. -The command is run with an environment similar to the one -a user would receive at log in. -Most shells behave differently when a command is specified -as compared to an interactive session; consult the shell's manual +The +\fIcommand\fR +is run with an environment similar to the one a user would receive at log in. +Most shells behave differently when a +\fIcommand\fR +is specified as compared to an interactive session; consult the shell's manual for details. The \fICommand environment\fR @@ -471,23 +505,51 @@ section in the sudoers(@mansectform@) manual documents how the \fB\-i\fR -option affects the environment in which a command is run when the +option affects the environment in which a +\fIcommand\fR +is run when the \fIsudoers\fR policy is in use. -.TP 12n +.TP 8n \fB\-K\fR, \fB\--remove-timestamp\fR Similar to the \fB\-k\fR -option, except that it removes the user's cached credentials entirely -and may not be used in conjunction with a command or other option. +option, except that it removes every cached credential for the user, +regardless of the terminal or parent process ID. +The next time +\fBsudo\fR +is run, a password must be entered if the +security policy requires authentication. +It is not possible to use the +\fB\-K\fR +option in conjunction with a +\fIcommand\fR +or other option. This option does not require a password. Not all security policies support credential caching. -.TP 12n +.TP 8n \fB\-k\fR, \fB\--reset-timestamp\fR -When used without a command, invalidates the user's cached credentials. -In other words, the next time +When used without a +\fIcommand\fR, +invalidates the user's cached credentials for the current session. +The next time \fBsudo\fR -is run a password will be required. +is run in the session, a password must be entered if the +security policy requires authentication. +By default, the +\fBsudoers\fR +policy uses a separate record in the credential cache for each +terminal (or parent process ID if no terminal is present). +This prevents the +\fB\-k\fR +option from interfering with +\fBsudo\fR +commands run in a different terminal session. +See the +\fItimestamp_type\fR +option in +sudoers(@mansectform@) +for more information. This option does not require a password, and was added to allow a user to revoke \fBsudo\fR @@ -495,8 +557,9 @@ permissions from a \fI.logout\fR file. .sp -When used in conjunction with a command or an option that may require -a password, this option will cause +When used in conjunction with a +\fIcommand\fR +or an option that may require a password, this option will cause \fBsudo\fR to ignore the user's cached credentials. As a result, @@ -505,13 +568,13 @@ will prompt for a password (if one is required by the security policy) and will not update the user's cached credentials. .sp Not all security policies support credential caching. -.TP 12n +.TP 8n \fB\-l\fR, \fB\--list\fR If no \fIcommand\fR -is specified, -list the allowed (and forbidden) commands for the -invoking user (or the user specified by the +is specified, list the privileges for the invoking user (or the +\fIuser\fR +specified by the \fB\-U\fR option) on the current host. A longer list format is used if this option is specified multiple times @@ -520,14 +583,16 @@ and the security policy supports a verbose output format. If a \fIcommand\fR is specified and is permitted by the security policy, the fully-qualified -path to the command is displayed along with any command line -arguments. +path to the +\fIcommand\fR +is displayed along with any +\fIarg\fRs. If a \fIcommand\fR is specified but not allowed by the policy, \fBsudo\fR will exit with a status value of 1. -.TP 12n +.TP 8n \fB\-N\fR, \fB\--no-update\fR Do not update the user's cached credentials, even if the user successfully authenticates. @@ -535,21 +600,23 @@ Unlike the \fB\-k\fR flag, existing cached credentials are used if they are valid. To detect when the user's cached credentials are valid (or when no -authentication is required), the following command can be used: -.RS 18n +authentication is required), the following can be used: +.RS 14n sudo -Nnv .RE -.RS 12n +.RS 8n .sp Not all security policies support credential caching. .RE -.TP 12n +.TP 8n \fB\-n\fR, \fB\--non-interactive\fR Avoid prompting the user for input of any kind. -If a password is required for the command to run, +If a password is required for the +\fIcommand\fR +to run, \fBsudo\fR will display an error message and exit. -.TP 12n +.TP 8n \fB\-P\fR, \fB\--preserve-groups\fR Preserve the invoking user's group vector unaltered. By default, the @@ -558,7 +625,7 @@ policy will initialize the group vector to the list of groups the target user is a member of. The real and effective group-IDs, however, are still set to match the target user. -.TP 12n +.TP 8n \fB\-p\fR \fIprompt\fR, \fB\--prompt\fR=\fIprompt\fR Use a custom password prompt with optional escape sequences. The following percent @@ -567,7 +634,7 @@ escape sequences are supported by the \fIsudoers\fR policy: .PP -.RS 12n +.RS 8n .PD 0 .TP 4n %H @@ -592,8 +659,9 @@ flags in sudoers(@mansectform@)) .TP 4n \&%U -expanded to the login name of the user the command will be run as -(defaults to root unless the +expanded to the login name of the user the +\fIcommand\fR +will be run as (defaults to root unless the \fB\-u\fR option is also specified) .TP 4n @@ -617,58 +685,64 @@ specified by a PAM module unless the flag is disabled in \fIsudoers\fR. .RE -.TP 12n +.TP 8n \fB\-R\fR \fIdirectory\fR, \fB\--chroot\fR=\fIdirectory\fR Change to the specified root \fIdirectory\fR (see chroot(@mansectsu@)) -before running the command. +before running the +\fIcommand\fR. The security policy may return an error if the user does not have permission to specify the root directory. -.if \n(SL \{\ -.TP 12n +.TP 8n \fB\-r\fR \fIrole\fR, \fB\--role\fR=\fIrole\fR -Run the command with an SELinux security context that includes -the specified +Run the +\fIcommand\fR +with an SELinux security context that includes the specified \fIrole\fR. -.\} -.TP 12n +.TP 8n \fB\-S\fR, \fB\--stdin\fR Write the prompt to the standard error and read the password from the standard input instead of using the terminal device. -.TP 12n +.TP 8n \fB\-s\fR, \fB\--shell\fR Run the shell specified by the \fRSHELL\fR environment variable if it is set or the shell specified by the invoking user's password database entry. -If a command is specified, it is passed to the shell as a simple -command using the +If a +\fIcommand\fR +is specified, it is passed to the shell as a simple command using the \fB\-c\fR option. -The command and any arguments are concatenated, separated by spaces, -after escaping each character +The +\fIcommand\fR +and any +\fIarg\fRs +are concatenated, separated by spaces, after escaping each character (including white space) with a backslash (\(oq\e\(cq) except for alphanumerics, underscores, hyphens, and dollar signs. -If no command is specified, an interactive shell is executed. -Most shells behave differently when a command is specified -as compared to an interactive session; consult the shell's manual +If no +\fIcommand\fR +is specified, an interactive shell is executed. +Most shells behave differently when a +\fIcommand\fR +is specified as compared to an interactive session; consult the shell's manual for details. -.if \n(SL \{\ -.TP 12n +.TP 8n \fB\-t\fR \fItype\fR, \fB\--type\fR=\fItype\fR -Run the command with an SELinux security context that includes -the specified +Run the +\fIcommand\fR +with an SELinux security context that includes the specified \fItype\fR. If no \fItype\fR is specified, the default type is derived from the role. -.\} -.TP 12n +.TP 8n \fB\-U\fR \fIuser\fR, \fB\--other-user\fR=\fIuser\fR Used in conjunction with the \fB\-l\fR @@ -678,24 +752,36 @@ instead of for the invoking user. The security policy may restrict listing other users' privileges. When using the \fIsudoers\fR -policy, only root or a user with the ability to run any command as -either root or the specified +policy, the +\fB\-U\fR +option is restricted to the root user and users with either the +\(lqlist\(rq +priviege for the specified +\fIuser\fR +or the ability to run any +\fIcommand\fR +as root or \fIuser\fR -on the current host may use this option. -.TP 12n +on the current host. +.TP 8n \fB\-T\fR \fItimeout\fR, \fB\--command-timeout\fR=\fItimeout\fR -Used to set a timeout for the command. -If the timeout expires before the command has exited, the -command will be terminated. -The security policy may restrict the ability to set command timeouts. +Used to set a timeout for the +\fIcommand\fR. +If the timeout expires before the +\fIcommand\fR +has exited, the +\fIcommand\fR +will be terminated. +The security policy may restrict the user's ability to set timeouts. The \fIsudoers\fR policy requires that user-specified timeouts be explicitly enabled. -.TP 12n +.TP 8n \fB\-u\fR \fIuser\fR, \fB\--user\fR=\fIuser\fR -Run the command as a user other than the default target user -(usually -\fIroot\fR). +Run the +\fIcommand\fR +as a user other than the default target user (usually +\fBroot\fR). The \fIuser\fR may be either a user name or a numeric user-ID @@ -705,7 +791,9 @@ prefixed with the character (e.g., \(oq#0\(cq for UID 0). -When running commands as a UID, many shells require that the +When running +\fIcommand\fRs as +a UID, many shells require that the \(oq#\(cq be escaped with a backslash (\(oq\e\(cq). @@ -717,18 +805,18 @@ policy allows UIDs that are not in the password database as long as the \fItargetpw\fR option is not set. Other security policies may not support this. -.TP 12n +.TP 8n \fB\-V\fR, \fB\--version\fR Print the \fBsudo\fR version string as well as the version string of any configured plugins. If the invoking user is already root, the \fB\-V\fR -option will display the arguments passed to configure when +option will display the options passed to configure when \fBsudo\fR was built; plugins may display additional information such as default options. -.TP 12n +.TP 8n \fB\-v\fR, \fB\--validate\fR Update the user's cached credentials, authenticating the user if necessary. @@ -736,15 +824,18 @@ For the \fIsudoers\fR plugin, this extends the \fBsudo\fR -timeout for another @timeout@ minutes by default, but does not run a command. +timeout for another @timeout@ minutes by default, but does not run a +\fIcommand\fR. Not all security policies support cached credentials. -.TP 12n +.TP 8n \fB\--\fR The \fB\--\fR -option indicates that +is used to delimit the end of the \fBsudo\fR -should stop processing command line arguments. +options. +Subsequent options are passed to the +\fIcommand\fR. .PP Options that take a value may only be specified once unless otherwise indicated in the description. @@ -753,25 +844,32 @@ scripts that invoke \fBsudo\fR with user-controlled input. .PP -Environment variables to be set for the command may also be passed -on the command line in the form of +Environment variables to be set for the +\fIcommand\fR +may also be passed as options to +\fBsudo\fR +in the form \fIVAR\fR=\fIvalue\fR, -e.g., +for example \fRLD_LIBRARY_PATH\fR=\fI/usr/local/pkg/lib\fR. -Variables passed on the command line are subject to restrictions +Environment variables may be subject to restrictions imposed by the security policy plugin. The \fIsudoers\fR -policy subjects variables passed on the command line to the same -restrictions as normal environment variables with one important -exception. +policy subjects environment variables passed as options to the same +restrictions as existing environment variables with one important +difference. If the \fIsetenv\fR option is set in \fIsudoers\fR, -the command to be run has the +the +\fIcommand\fR +to be run has the \fRSETENV\fR -tag set or the command matched is +tag set or the +\fIcommand\fR +matched is \fBALL\fR, the user may set variables that would otherwise be forbidden. See @@ -780,8 +878,10 @@ for more information. .SH "COMMAND EXECUTION" When \fBsudo\fR -executes a command, the security policy specifies the execution -environment for the command. +executes a +\fIcommand\fR, +the security policy specifies the execution environment for the +\fIcommand\fR. Typically, the real and effective user and group and IDs are set to match those of the target user, as specified in the password database, and the group vector is initialized based on the group database @@ -835,10 +935,11 @@ scheduling priority (aka nice value) .SS "Process model" There are two distinct ways \fBsudo\fR -can run a command. +can run a +\fIcommand\fR. .PP -If an I/O logging plugin is configured or if the security policy -explicitly requests it, a new pseudo-terminal +If an I/O logging plugin is configured to log terminal I/O, or if +the security policy explicitly requests it, a new pseudo-terminal (\(lqpty\(rq) is allocated and fork(2) @@ -850,27 +951,45 @@ The \fImonitor\fR creates a new terminal session with itself as the leader and the pty as its controlling terminal, calls -fork(2), -sets up the execution environment as described above, and then uses the +fork(2) +again, sets up the execution environment as described above, and then uses the execve(2) -system call to run the command in the child process. +system call to run the +\fIcommand\fR +in the child process. The \fImonitor\fR exists to relay job control signals between the user's -existing terminal and the pty the command is being run in. -This makes it possible to suspend and resume the command. -Without the monitor, the command would be in what POSIX terms an +terminal and the pty the +\fIcommand\fR +is being run in. +This makes it possible to suspend and resume the +\fIcommand\fR +normally. +Without the +\fImonitor\fR, +the +\fIcommand\fR +would be in what POSIX terms an \(lqorphaned process group\(rq and it would not receive any job control signals from the kernel. -When the command exits or is terminated by a signal, the +When the +\fIcommand\fR +exits or is terminated by a signal, the \fImonitor\fR -passes the command's exit status to the main +passes the +\fIcommand\fR's +exit status to the main \fBsudo\fR process and exits. -After receiving the command's exit status, the main -\fBsudo\fR -passes the command's exit status to the security policy's close function -and exits. +After receiving the +\fIcommand\fR's +exit status, the main +\fBsudo\fR +process passes the +\fIcommand\fR's +exit status to the security policy's close function, as well as the +close function of any configured audit plugin, and exits. .PP If no pty is used, \fBsudo\fR @@ -878,22 +997,31 @@ calls fork(2), sets up the execution environment as described above, and uses the execve(2) -system call to run the command in the child process. +system call to run the +\fIcommand\fR +in the child process. The main \fBsudo\fR -process waits until the command has completed, then passes the -command's exit status to the security policy's close function and exits. +process waits until the +\fIcommand\fR +has completed, then passes the +\fIcommand\fR's +exit status to the security policy's close function, as well as the +close function of any configured audit plugins, and exits. As a special case, if the policy plugin does not define a close function, \fBsudo\fR -will execute the command directly instead of calling +will execute the +\fIcommand\fR +directly instead of calling fork(2) first. The \fIsudoers\fR policy plugin will only define a close function when I/O logging is enabled, a pty is required, an SELinux role is specified, the -command has an associated timeout, or the +\fIcommand\fR +has an associated timeout, or the \fIpam_session\fR or \fIpam_setcred\fR @@ -906,41 +1034,57 @@ are enabled by default on systems using PAM. .PP On systems that use PAM, the security policy's close function is responsible for closing the PAM session. -It may also log the command's exit status. +It may also log the +\fIcommand\fR's +exit status. .SS "Signal handling" -When the command is run as a child of the +When the +\fIcommand\fR +is run as a child of the \fBsudo\fR process, \fBsudo\fR -will relay signals it receives to the command. +will relay signals it receives to the +\fIcommand\fR. The \fRSIGINT\fR and \fRSIGQUIT\fR -signals are only relayed when the command is being run in a new pty -or when the signal was sent by a user process, not the kernel. -This prevents the command from receiving +signals are only relayed when the +\fIcommand\fR +is being run in a new pty or when the signal was sent by a user +process, not the kernel. +This prevents the +\fIcommand\fR +from receiving \fRSIGINT\fR twice each time the user enters control-C. Some signals, such as \fRSIGSTOP\fR and \fRSIGKILL\fR, -cannot be caught and thus will not be relayed to the command. +cannot be caught and thus will not be relayed to the +\fIcommand\fR. As a general rule, \fRSIGTSTP\fR should be used instead of \fRSIGSTOP\fR -when you wish to suspend a command being run by +when you wish to suspend a +\fIcommand\fR +being run by \fBsudo\fR. .PP As a special case, \fBsudo\fR -will not relay signals that were sent by the command it is running. -This prevents the command from accidentally killing itself. +will not relay signals that were sent by the +\fIcommand\fR +it is running. +This prevents the +\fIcommand\fR +from accidentally killing itself. On some systems, the reboot(@mansectsu@) -command sends +utility sends \fRSIGTERM\fR to all non-system processes other than itself before rebooting the system. @@ -952,9 +1096,13 @@ signal it received back to reboot(@mansectsu@), which might then exit before the system was actually rebooted, leaving it in a half-dead state similar to single user mode. -Note, however, that this check only applies to the command run by +Note, however, that this check only applies to the +\fIcommand\fR +run by \fBsudo\fR -and not any other processes that the command may create. +and not any other processes that the +\fIcommand\fR +may create. As a result, running a script that calls reboot(@mansectsu@) or @@ -969,15 +1117,9 @@ are run using the \fBexec\fR() family of functions instead of \fBsystem\fR() -(which interposes a shell between the command and the calling process). -.PP -If no I/O logging plugins are loaded and the policy plugin has not -defined a -\fBclose\fR() -function, set a command timeout, or required that the command be -run in a new pty, -\fBsudo\fR -may execute the command directly instead of running it as a child process. +(which interposes a shell between the +\fIcommand\fR +and the calling process). .SS "Plugins" Plugins may be specified via \fIPlugin\fR @@ -1007,27 +1149,38 @@ manual for more information about the \fBsudo\fR plugin architecture. .SH "EXIT VALUE" -Upon successful execution of a command, the exit status from +Upon successful execution of a +\fIcommand\fR, +the exit status from \fBsudo\fR will be the exit status of the program that was executed. -If the command terminated due to receipt of a signal, +If the +\fIcommand\fR +terminated due to receipt of a signal, \fBsudo\fR -will send itself the same signal that terminated the command. +will send itself the same signal that terminated the +\fIcommand\fR. .PP If the \fB\-l\fR -option was specified without a command, +option was specified without a +\fIcommand\fR, \fBsudo\fR will exit with a value of 0 if the user is allowed to run \fBsudo\fR and they authenticated successfully (as required by the security policy). -If a command is specified with the +If a +\fIcommand\fR +is specified with the \fB\-l\fR -option, the exit value will only be 0 if the command is permitted by the -security policy, otherwise it will be 1. +option, the exit value will only be 0 if the +\fIcommand\fR +is permitted by the security policy, otherwise it will be 1. .PP If there is an authentication failure, a configuration/permission -problem, or if the given command cannot be executed, +problem, or if the given +\fIcommand\fR +cannot be executed, \fBsudo\fR exits with a value of 1. In the latter case, the error string is printed to the standard error. @@ -1051,12 +1204,15 @@ your is on a machine that is currently unreachable. .SH "SECURITY NOTES" \fBsudo\fR -tries to be safe when executing external commands. +tries to be safe when executing external +\fIcommand\fRs. .PP To prevent command spoofing, \fBsudo\fR checks "." and "" (both denoting current directory) last when -searching for a command in the user's +searching for a +\fIcommand\fR +in the user's \fRPATH\fR (if one or both are in the \fRPATH\fR). @@ -1073,27 +1229,43 @@ be granted \fBsudo\fR privileges to execute files that are writable by the user or that reside in a directory that is writable by the user. -If the user can modify or replace the command there is no way -to limit what additional commands they can run. +If the user can modify or replace the +\fIcommand\fR +there is no way to limit what additional +\fIcommand\fRs +they can run. .PP By default, \fBsudo\fR -will only log the command it explicitly runs. -If a user runs a command such as +will only log the +\fIcommand\fR +it explicitly runs. +If a user runs a +\fIcommand\fR +such as \(oqsudo su\(cq or \(oqsudo sh\(cq, -subsequent commands run from that shell are not subject to +subsequent +\fIcommand\fRs +run from that shell are not subject to \fBsudo\fR's security policy. -The same is true for commands that offer shell escapes (including -most editors). -If I/O logging is enabled, subsequent commands will have their input and/or -output logged, but there will not be traditional logs for those commands. -Because of this, care must be taken when giving users access to commands via -\fBsudo\fR -to verify that the command does not inadvertently give the user an -effective root shell. +The same is true for +\fIcommand\fRs +that offer shell escapes (including most editors). +If I/O logging is enabled, subsequent +\fIcommand\fRs +will have their input and/or output logged, but there will not be +traditional logs for those +\fIcommand\fRs. +Because of this, care must be taken when giving users access to +\fIcommand\fRs +via +\fBsudo\fR +to verify that the +\fIcommand\fR +does not inadvertently give the user an effective root shell. For information on ways to address this, see the \fIPreventing shell escapes\fR section in @@ -1102,7 +1274,9 @@ sudoers(@mansectform@). To prevent the disclosure of potentially sensitive information, \fBsudo\fR disables core dumps by default while it is executing (they are -re-enabled for the command that is run). +re-enabled for the +\fIcommand\fR +that is run). This historical practice dates from a time when most operating systems allowed set-user-ID processes to dump core by default. To aid in debugging @@ -1125,7 +1299,8 @@ manual for more information. .SH "ENVIRONMENT" \fBsudo\fR utilizes the following environment variables. -The security policy has control over the actual content of the command's +The security policy has control over the actual content of the +\fIcommand\fR's environment. .TP 17n \fREDITOR\fR @@ -1207,9 +1382,13 @@ if no terminal is available or if the option is specified. .TP 17n \fRSUDO_COMMAND\fR -Set to the command run by sudo, including command line arguments. -The command line arguments are truncated at 4096 characters to -prevent a potential execution error. +Set to the +\fIcommand\fR +run by sudo, including any +\fIarg\fRs. +The +\fIarg\fRs +are truncated at 4096 characters to prevent a potential execution error. .TP 17n \fRSUDO_EDITOR\fR Default editor to use in @@ -1307,7 +1486,9 @@ $ sudo shutdown -r +15 "quick reboot" .fi .PP To make a usage listing of the directories in the /home partition. -The commands are run in a sub-shell to allow the +The +\fIcommands\fR +are run in a sub-shell to allow the \(oqcd\(cq command and file redirection to work. .nf @@ -1445,8 +1626,8 @@ The user did not enter a password before the password timeout Your user-ID does not appear in the system passwd database. .TP 6n \fRyou may not specify environment variables in edit mode\fR -It is only possible to specify environment variables when running -a command. +It is only possible to specify environment variables when running a +\fIcommand\fR. When editing a file, the editor is run with the user's environment unmodified. .SH "SEE ALSO" su(1), @@ -1480,9 +1661,12 @@ exhaustive list of people who have contributed to \fBsudo\fR. .SH "CAVEATS" There is no easy way to prevent a user from gaining a root shell -if that user is allowed to run arbitrary commands via +if that user is allowed to run arbitrary +\fIcommands\fR +via \fBsudo\fR. -Also, many programs (such as editors) allow the user to run commands +Also, many programs (such as editors) allow the user to run +\fIcommand\fRs via shell escapes, thus avoiding \fBsudo\fR's checks. @@ -1494,7 +1678,8 @@ functionality. .PP It is not meaningful to run the \(oqcd\(cq -command directly via sudo, e.g., +\fIcommand\fR +directly via sudo, e.g., .nf .sp .RS 4n @@ -1502,11 +1687,15 @@ $ sudo cd /usr/local/protected .RE .fi .PP -since when the command exits the parent process (your shell) will -still be the same. -See the -\fIEXAMPLES\fR -section for more information. +since when the +\fIcommand\fR +exits the parent process (your shell) will still be the same. +The +\fB\-D\fR +option can be used to run a +\fIcommand\fR +in a specific +\fIdirectory\fR. .PP Running shell scripts via \fBsudo\fR diff --git a/docs/sudo.mdoc.in b/docs/sudo.mdoc.in index 82985f2dab..61d43df3c7 100644 --- a/docs/sudo.mdoc.in +++ b/docs/sudo.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 1994-1996, 1998-2005, 2007-2022 +.\" Copyright (c) 1994-1996, 1998-2005, 2007-2023 .\" Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -24,7 +24,7 @@ .nr BA @BAMAN@ .nr LC @LCMAN@ .nr PS @PSMAN@ -.Dd September 13, 2022 +.Dd January 16, 2023 .Dt SUDO @mansectsu@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -55,7 +55,7 @@ .Op Fl p Ar prompt .Op Fl U Ar user .Op Fl u Ar user -.Op Ar command +.Op Ar command Op Ar arg ... .Nm sudo .Op Fl ABbEHnPS .if \n(BA \{\ @@ -78,7 +78,7 @@ .Op Fl u Ar user .Op Ar VAR Ns = Ns Ar value .Op Fl i | s -.Op Ar command +.Op Ar command Op Ar arg ... .Nm sudoedit .Op Fl ABkNnS .if \n(BA \{\ @@ -181,11 +181,12 @@ option (described below), is implied. Security policies and audit plugins may log successful and failed attempts to run .Nm . -If an I/O plugin is configured, the running command's input and -output may be logged as well. +If an I/O plugin is configured, the running +.Ar command Ns 's +input and output may be logged as well. .Pp The options are as follows: -.Bl -tag -width Fl +.Bl -tag -width Ds .It Fl A , -askpass Normally, if .Nm @@ -233,21 +234,26 @@ authentication. Ring the bell as part of the password prompt when a terminal is present. This option has no effect if an askpass program is used. .It Fl b , -background -Run the given command in the background. +Run the given +.Ar command +in the background. It is not possible to use shell job control to manipulate background processes started by .Nm . -Most interactive commands will fail to work properly in background -mode. +Most interactive +.Ar command Ns s +will fail to work properly in background mode. .It Fl C Ar num , Fl -close-from Ns = Ns Ar num Close all file descriptors greater than or equal to .Ar num -before executing a command. +before executing a +.Ar command . Values less than three are not permitted. By default, .Nm will close all open file descriptors other than standard input, -standard output, and standard error when executing a command. +standard output, and standard error when executing a +.Ar command . The security policy may restrict the user's ability to use this option. The .Em sudoers @@ -258,8 +264,9 @@ option when the administrator has enabled the option. .if \n(LC \{\ .It Fl c Ar class , Fl -login-class Ns = Ns Ar class -Run the command with resource limits and scheduling priority of -the specified login +Run the +.Ar command +with resource limits and scheduling priority of the specified login .Ar class . The .Ar class @@ -273,10 +280,14 @@ If is .Cm - , the default login class of the target user will be used. -Otherwise, the command must be run as the superuser (user-ID 0), or +Otherwise, the +.Ar command +must be run as the superuser (user-ID 0), or .Nm must be run from a shell that is already running as the superuser. -If the command is being run as a login shell, additional +If the +.Ar command +is being run as a login shell, additional .Pa /etc/login.conf settings, such as the umask and environment variables, will be applied, if present. @@ -285,7 +296,9 @@ This option is only available on systems with login classes. .\} .It Fl D Ar directory , Fl -chdir Ns = Ns Ar directory -Run the command in the specified +Run the +.Ar command +in the specified .Ar directory instead of the current working directory. The security policy may return an error if the user does not have @@ -303,7 +316,10 @@ The security policy may return an error if the user does not have permission to preserve the environment. This option may be specified multiple times. .It Fl e , -edit -Edit one or more files instead of running a command. +Edit one or more +.Ar file Ns s +instead of running a +.Ar command . In lieu of a path name, the string "sudoedit" is used when consulting the security policy. If the user is authorized by the policy, the following steps are @@ -339,7 +355,7 @@ their original location and the temporary versions are removed. .Pp To help prevent the editing of unauthorized files, the following restrictions are enforced unless explicitly allowed by the security policy: -.Bl -bullet -offset 4 -width 1n +.Bl -bullet -offset 1n -width 1n .It Symbolic links may not be edited (version 1.8.15 and higher). .It @@ -354,7 +370,9 @@ not be edited unless that user is root (version 1.8.16 and higher). Users are never allowed to edit device special files. .Pp If the specified file does not exist, it will be created. -Unlike most commands run by +Unlike most +.Ar command Ns s +run by .Em sudo , the editor is run with the invoking user's environment unmodified. If the temporary file becomes empty after editing, the user will @@ -365,7 +383,9 @@ is unable to update a file with its edited version, the user will receive a warning and the edited copy will remain in a temporary file. .It Fl g Ar group , Fl -group Ns = Ns Ar group -Run the command with the primary group set to +Run the +.Ar command +with the primary group set to .Ar group instead of the primary group specified by the target user's password database entry. @@ -378,13 +398,17 @@ prefixed with the character (e.g., .Ql #0 for GID 0). -When running a command as a GID, many shells require that the +When running a +.Ar command +as a GID, many shells require that the .Ql # be escaped with a backslash .Pq Ql \e . If no .Fl u -option is specified, the command will be run as the invoking user. +option is specified, the +.Ar command +will be run as the invoking user. In either case, the primary group will be set to .Ar group . The @@ -404,12 +428,16 @@ Depending on the policy, this may be the default behavior. .It Fl h , -help Display a short help message to the standard output and exit. .It Fl h Ar host , Fl -host Ns = Ns Ar host -Run the command on the specified +Run the +.Ar command +on the specified .Ar host -if the security policy plugin supports remote commands. +if the security policy plugin supports remote +.Ar command Ns s. The .Em sudoers -plugin does not currently support running remote commands. +plugin does not currently support running remote +.Ar command Ns s. This may also be used in conjunction with the .Fl l option to list a user's privileges for the remote host. @@ -422,25 +450,35 @@ This means that login-specific resource files such as or .Pa .login will be read by the shell. -If a command is specified, it is passed to the shell as a simple -command using the +If a +.Ar command +is specified, it is passed to the shell as a simple +.Ar command +using the .Fl c option. -The command and any arguments are concatenated, separated by spaces, -after escaping each character +The +.Ar command +and any +.Ar arg Ns s +are concatenated, separated by spaces, after escaping each character .Pq including white space with a backslash .Pq Ql \e except for alphanumerics, underscores, hyphens, and dollar signs. -If no command is specified, an interactive shell is executed. +If no +.Ar command +is specified, an interactive shell is executed. .Nm attempts to change to that user's home directory before running the shell. -The command is run with an environment similar to the one -a user would receive at log in. -Most shells behave differently when a command is specified -as compared to an interactive session; consult the shell's manual +The +.Ar command +is run with an environment similar to the one a user would receive at log in. +Most shells behave differently when a +.Ar command +is specified as compared to an interactive session; consult the shell's manual for details. The .Em Command environment @@ -448,21 +486,49 @@ section in the .Xr sudoers @mansectform@ manual documents how the .Fl i -option affects the environment in which a command is run when the +option affects the environment in which a +.Ar command +is run when the .Em sudoers policy is in use. .It Fl K , -remove-timestamp Similar to the .Fl k -option, except that it removes the user's cached credentials entirely -and may not be used in conjunction with a command or other option. +option, except that it removes every cached credential for the user, +regardless of the terminal or parent process ID. +The next time +.Nm +is run, a password must be entered if the +security policy requires authentication. +It is not possible to use the +.Fl K +option in conjunction with a +.Ar command +or other option. This option does not require a password. Not all security policies support credential caching. .It Fl k , -reset-timestamp -When used without a command, invalidates the user's cached credentials. -In other words, the next time +When used without a +.Ar command , +invalidates the user's cached credentials for the current session. +The next time .Nm -is run a password will be required. +is run in the session, a password must be entered if the +security policy requires authentication. +By default, the +.Nm sudoers +policy uses a separate record in the credential cache for each +terminal (or parent process ID if no terminal is present). +This prevents the +.Fl k +option from interfering with +.Nm +commands run in a different terminal session. +See the +.Em timestamp_type +option in +.Xr sudoers @mansectform@ +for more information. This option does not require a password, and was added to allow a user to revoke .Nm @@ -470,8 +536,9 @@ permissions from a .Pa .logout file. .Pp -When used in conjunction with a command or an option that may require -a password, this option will cause +When used in conjunction with a +.Ar command +or an option that may require a password, this option will cause .Nm to ignore the user's cached credentials. As a result, @@ -483,9 +550,9 @@ Not all security policies support credential caching. .It Fl l , Fl -list If no .Ar command -is specified, -list the allowed (and forbidden) commands for the -invoking user (or the user specified by the +is specified, list the privileges for the invoking user (or the +.Ar user +specified by the .Fl U option) on the current host. A longer list format is used if this option is specified multiple times @@ -494,8 +561,10 @@ and the security policy supports a verbose output format. If a .Ar command is specified and is permitted by the security policy, the fully-qualified -path to the command is displayed along with any command line -arguments. +path to the +.Ar command +is displayed along with any +.Ar arg Ns s. If a .Ar command is specified but not allowed by the policy, @@ -508,13 +577,15 @@ Unlike the .Fl k flag, existing cached credentials are used if they are valid. To detect when the user's cached credentials are valid (or when no -authentication is required), the following command can be used: +authentication is required), the following can be used: .Dl sudo -Nnv .Pp Not all security policies support credential caching. .It Fl n , -non-interactive Avoid prompting the user for input of any kind. -If a password is required for the command to run, +If a password is required for the +.Ar command +to run, .Nm will display an error message and exit. .It Fl P , -preserve-groups @@ -551,8 +622,9 @@ and flags in .Xr sudoers @mansectform@ ) .It \&%U -expanded to the login name of the user the command will be run as -(defaults to root unless the +expanded to the login name of the user the +.Ar command +will be run as (defaults to root unless the .Fl u option is also specified) .It %u @@ -579,13 +651,15 @@ Change to the specified root .Ar directory (see .Xr chroot @mansectsu@ ) -before running the command. +before running the +.Ar command . The security policy may return an error if the user does not have permission to specify the root directory. .if \n(SL \{\ .It Fl r Ar role , Fl -role Ns = Ns Ar role -Run the command with an SELinux security context that includes -the specified +Run the +.Ar command +with an SELinux security context that includes the specified .Ar role . .\} .It Fl S , -stdin @@ -596,25 +670,33 @@ Run the shell specified by the .Ev SHELL environment variable if it is set or the shell specified by the invoking user's password database entry. -If a command is specified, it is passed to the shell as a simple -command using the +If a +.Ar command +is specified, it is passed to the shell as a simple command using the .Fl c option. -The command and any arguments are concatenated, separated by spaces, -after escaping each character +The +.Ar command +and any +.Ar arg Ns s +are concatenated, separated by spaces, after escaping each character .Pq including white space with a backslash .Pq Ql \e except for alphanumerics, underscores, hyphens, and dollar signs. -If no command is specified, an interactive shell is executed. -Most shells behave differently when a command is specified -as compared to an interactive session; consult the shell's manual +If no +.Ar command +is specified, an interactive shell is executed. +Most shells behave differently when a +.Ar command +is specified as compared to an interactive session; consult the shell's manual for details. .if \n(SL \{\ .It Fl t Ar type , Fl -type Ns = Ns Ar type -Run the command with an SELinux security context that includes -the specified +Run the +.Ar command +with an SELinux security context that includes the specified .Ar type . If no .Ar type @@ -629,22 +711,34 @@ instead of for the invoking user. The security policy may restrict listing other users' privileges. When using the .Em sudoers -policy, only root or a user with the ability to run any command as -either root or the specified +policy, the +.Fl U +option is restricted to the root user and users with either the +.Dq list +priviege for the specified +.Ar user +or the ability to run any +.Ar command +as root or .Ar user -on the current host may use this option. +on the current host. .It Fl T Ar timeout , Fl -command-timeout Ns = Ns Ar timeout -Used to set a timeout for the command. -If the timeout expires before the command has exited, the -command will be terminated. -The security policy may restrict the ability to set command timeouts. +Used to set a timeout for the +.Ar command . +If the timeout expires before the +.Ar command +has exited, the +.Ar command +will be terminated. +The security policy may restrict the user's ability to set timeouts. The .Em sudoers policy requires that user-specified timeouts be explicitly enabled. .It Fl u Ar user , Fl -user Ns = Ns Ar user -Run the command as a user other than the default target user -(usually -.Em root ) . +Run the +.Ar command +as a user other than the default target user (usually +.Sy root ) . The .Ar user may be either a user name or a numeric user-ID @@ -654,7 +748,9 @@ prefixed with the character (e.g., .Ql #0 for UID 0). -When running commands as a UID, many shells require that the +When running +.Ar command Ns s as +a UID, many shells require that the .Ql # be escaped with a backslash .Pq Ql \e . @@ -672,7 +768,7 @@ Print the version string as well as the version string of any configured plugins. If the invoking user is already root, the .Fl V -option will display the arguments passed to configure when +option will display the options passed to configure when .Nm was built; plugins may display additional information such as default options. @@ -683,14 +779,17 @@ For the .Em sudoers plugin, this extends the .Nm -timeout for another @timeout@ minutes by default, but does not run a command. +timeout for another @timeout@ minutes by default, but does not run a +.Ar command . Not all security policies support cached credentials. .It Fl - The .Fl - -option indicates that +is used to delimit the end of the .Nm -should stop processing command line arguments. +options. +Subsequent options are passed to the +.Ar command . .El .Pp Options that take a value may only be specified once unless @@ -700,25 +799,32 @@ scripts that invoke .Nm sudo with user-controlled input. .Pp -Environment variables to be set for the command may also be passed -on the command line in the form of +Environment variables to be set for the +.Ar command +may also be passed as options to +.Nm +in the form .Ar VAR Ns = Ns Ar value , -e.g., +for example .Ev LD_LIBRARY_PATH Ns = Ns Pa /usr/local/pkg/lib . -Variables passed on the command line are subject to restrictions +Environment variables may be subject to restrictions imposed by the security policy plugin. The .Em sudoers -policy subjects variables passed on the command line to the same -restrictions as normal environment variables with one important -exception. +policy subjects environment variables passed as options to the same +restrictions as existing environment variables with one important +difference. If the .Em setenv option is set in .Em sudoers , -the command to be run has the +the +.Ar command +to be run has the .Dv SETENV -tag set or the command matched is +tag set or the +.Ar command +matched is .Sy ALL , the user may set variables that would otherwise be forbidden. See @@ -727,8 +833,10 @@ for more information. .Sh COMMAND EXECUTION When .Nm -executes a command, the security policy specifies the execution -environment for the command. +executes a +.Ar command , +the security policy specifies the execution environment for the +.Ar command . Typically, the real and effective user and group and IDs are set to match those of the target user, as specified in the password database, and the group vector is initialized based on the group database @@ -771,10 +879,11 @@ scheduling priority (aka nice value) .Ss Process model There are two distinct ways .Nm -can run a command. +can run a +.Ar command . .Pp -If an I/O logging plugin is configured or if the security policy -explicitly requests it, a new pseudo-terminal +If an I/O logging plugin is configured to log terminal I/O, or if +the security policy explicitly requests it, a new pseudo-terminal .Pq Dq pty is allocated and .Xr fork 2 @@ -786,27 +895,45 @@ The .Em monitor creates a new terminal session with itself as the leader and the pty as its controlling terminal, calls -.Xr fork 2 , -sets up the execution environment as described above, and then uses the +.Xr fork 2 +again, sets up the execution environment as described above, and then uses the .Xr execve 2 -system call to run the command in the child process. +system call to run the +.Ar command +in the child process. The .Em monitor exists to relay job control signals between the user's -existing terminal and the pty the command is being run in. -This makes it possible to suspend and resume the command. -Without the monitor, the command would be in what POSIX terms an +terminal and the pty the +.Ar command +is being run in. +This makes it possible to suspend and resume the +.Ar command +normally. +Without the +.Em monitor , +the +.Ar command +would be in what POSIX terms an .Dq orphaned process group and it would not receive any job control signals from the kernel. -When the command exits or is terminated by a signal, the +When the +.Ar command +exits or is terminated by a signal, the .Em monitor -passes the command's exit status to the main +passes the +.Ar command Ns 's +exit status to the main .Nm process and exits. -After receiving the command's exit status, the main -.Nm -passes the command's exit status to the security policy's close function -and exits. +After receiving the +.Ar command Ns 's +exit status, the main +.Nm +process passes the +.Ar command Ns 's +exit status to the security policy's close function, as well as the +close function of any configured audit plugin, and exits. .Pp If no pty is used, .Nm @@ -814,22 +941,31 @@ calls .Xr fork 2 , sets up the execution environment as described above, and uses the .Xr execve 2 -system call to run the command in the child process. +system call to run the +.Ar command +in the child process. The main .Nm -process waits until the command has completed, then passes the -command's exit status to the security policy's close function and exits. +process waits until the +.Ar command +has completed, then passes the +.Ar command Ns 's +exit status to the security policy's close function, as well as the +close function of any configured audit plugins, and exits. As a special case, if the policy plugin does not define a close function, .Nm -will execute the command directly instead of calling +will execute the +.Ar command +directly instead of calling .Xr fork 2 first. The .Em sudoers policy plugin will only define a close function when I/O logging is enabled, a pty is required, an SELinux role is specified, the -command has an associated timeout, or the +.Ar command +has an associated timeout, or the .Em pam_session or .Em pam_setcred @@ -842,41 +978,57 @@ are enabled by default on systems using PAM. .Pp On systems that use PAM, the security policy's close function is responsible for closing the PAM session. -It may also log the command's exit status. +It may also log the +.Ar command Ns 's +exit status. .Ss Signal handling -When the command is run as a child of the +When the +.Ar command +is run as a child of the .Nm process, .Nm -will relay signals it receives to the command. +will relay signals it receives to the +.Ar command . The .Dv SIGINT and .Dv SIGQUIT -signals are only relayed when the command is being run in a new pty -or when the signal was sent by a user process, not the kernel. -This prevents the command from receiving +signals are only relayed when the +.Ar command +is being run in a new pty or when the signal was sent by a user +process, not the kernel. +This prevents the +.Ar command +from receiving .Dv SIGINT twice each time the user enters control-C. Some signals, such as .Dv SIGSTOP and .Dv SIGKILL , -cannot be caught and thus will not be relayed to the command. +cannot be caught and thus will not be relayed to the +.Ar command . As a general rule, .Dv SIGTSTP should be used instead of .Dv SIGSTOP -when you wish to suspend a command being run by +when you wish to suspend a +.Ar command +being run by .Nm . .Pp As a special case, .Nm -will not relay signals that were sent by the command it is running. -This prevents the command from accidentally killing itself. +will not relay signals that were sent by the +.Ar command +it is running. +This prevents the +.Ar command +from accidentally killing itself. On some systems, the .Xr reboot @mansectsu@ -command sends +utility sends .Dv SIGTERM to all non-system processes other than itself before rebooting the system. @@ -888,9 +1040,13 @@ signal it received back to .Xr reboot @mansectsu@ , which might then exit before the system was actually rebooted, leaving it in a half-dead state similar to single user mode. -Note, however, that this check only applies to the command run by +Note, however, that this check only applies to the +.Ar command +run by .Nm -and not any other processes that the command may create. +and not any other processes that the +.Ar command +may create. As a result, running a script that calls .Xr reboot @mansectsu@ or @@ -905,15 +1061,9 @@ are run using the .Fn exec family of functions instead of .Fn system -(which interposes a shell between the command and the calling process). -.Pp -If no I/O logging plugins are loaded and the policy plugin has not -defined a -.Fn close -function, set a command timeout, or required that the command be -run in a new pty, -.Nm -may execute the command directly instead of running it as a child process. +(which interposes a shell between the +.Ar command +and the calling process). .Ss Plugins Plugins may be specified via .Em Plugin @@ -943,27 +1093,38 @@ manual for more information about the .Nm plugin architecture. .Sh EXIT VALUE -Upon successful execution of a command, the exit status from +Upon successful execution of a +.Ar command , +the exit status from .Nm will be the exit status of the program that was executed. -If the command terminated due to receipt of a signal, +If the +.Ar command +terminated due to receipt of a signal, .Nm -will send itself the same signal that terminated the command. +will send itself the same signal that terminated the +.Ar command . .Pp If the .Fl l -option was specified without a command, +option was specified without a +.Ar command , .Nm will exit with a value of 0 if the user is allowed to run .Nm and they authenticated successfully (as required by the security policy). -If a command is specified with the +If a +.Ar command +is specified with the .Fl l -option, the exit value will only be 0 if the command is permitted by the -security policy, otherwise it will be 1. +option, the exit value will only be 0 if the +.Ar command +is permitted by the security policy, otherwise it will be 1. .Pp If there is an authentication failure, a configuration/permission -problem, or if the given command cannot be executed, +problem, or if the given +.Ar command +cannot be executed, .Nm exits with a value of 1. In the latter case, the error string is printed to the standard error. @@ -987,12 +1148,15 @@ your is on a machine that is currently unreachable. .Sh SECURITY NOTES .Nm -tries to be safe when executing external commands. +tries to be safe when executing external +.Ar command Ns s. .Pp To prevent command spoofing, .Nm checks "." and "" (both denoting current directory) last when -searching for a command in the user's +searching for a +.Ar command +in the user's .Ev PATH (if one or both are in the .Ev PATH ) . @@ -1009,27 +1173,43 @@ be granted .Nm privileges to execute files that are writable by the user or that reside in a directory that is writable by the user. -If the user can modify or replace the command there is no way -to limit what additional commands they can run. +If the user can modify or replace the +.Ar command +there is no way to limit what additional +.Ar command Ns s +they can run. .Pp By default, .Nm -will only log the command it explicitly runs. -If a user runs a command such as +will only log the +.Ar command +it explicitly runs. +If a user runs a +.Ar command +such as .Ql sudo su or .Ql sudo sh , -subsequent commands run from that shell are not subject to +subsequent +.Ar command Ns s +run from that shell are not subject to .Nm sudo Ns 's security policy. -The same is true for commands that offer shell escapes (including -most editors). -If I/O logging is enabled, subsequent commands will have their input and/or -output logged, but there will not be traditional logs for those commands. -Because of this, care must be taken when giving users access to commands via -.Nm -to verify that the command does not inadvertently give the user an -effective root shell. +The same is true for +.Ar command Ns s +that offer shell escapes (including most editors). +If I/O logging is enabled, subsequent +.Ar command Ns s +will have their input and/or output logged, but there will not be +traditional logs for those +.Ar command Ns s. +Because of this, care must be taken when giving users access to +.Ar command Ns s +via +.Nm +to verify that the +.Ar command +does not inadvertently give the user an effective root shell. For information on ways to address this, see the .Em Preventing shell escapes section in @@ -1038,7 +1218,9 @@ section in To prevent the disclosure of potentially sensitive information, .Nm disables core dumps by default while it is executing (they are -re-enabled for the command that is run). +re-enabled for the +.Ar command +that is run). This historical practice dates from a time when most operating systems allowed set-user-ID processes to dump core by default. To aid in debugging @@ -1058,7 +1240,8 @@ manual for more information. .Sh ENVIRONMENT .Nm utilizes the following environment variables. -The security policy has control over the actual content of the command's +The security policy has control over the actual content of the +.Ar command Ns 's environment. .Bl -tag -width 15n .It Ev EDITOR @@ -1133,9 +1316,13 @@ if no terminal is available or if the .Fl A option is specified. .It Ev SUDO_COMMAND -Set to the command run by sudo, including command line arguments. -The command line arguments are truncated at 4096 characters to -prevent a potential execution error. +Set to the +.Ar command +run by sudo, including any +.Ar arg Ns s. +The +.Ar arg Ns s +are truncated at 4096 characters to prevent a potential execution error. .It Ev SUDO_EDITOR Default editor to use in .Fl e @@ -1209,7 +1396,9 @@ $ sudo shutdown -r +15 "quick reboot" .Ed .Pp To make a usage listing of the directories in the /home partition. -The commands are run in a sub-shell to allow the +The +.Ar commands +are run in a sub-shell to allow the .Ql cd command and file redirection to work. .Bd -literal -offset 4n @@ -1330,8 +1519,8 @@ The user did not enter a password before the password timeout .It Li you do not exist in the passwd database Your user-ID does not appear in the system passwd database. .It Li you may not specify environment variables in edit mode -It is only possible to specify environment variables when running -a command. +It is only possible to specify environment variables when running a +.Ar command . When editing a file, the editor is run with the user's environment unmodified. .El .Sh SEE ALSO @@ -1365,9 +1554,12 @@ exhaustive list of people who have contributed to .Nm . .Sh CAVEATS There is no easy way to prevent a user from gaining a root shell -if that user is allowed to run arbitrary commands via +if that user is allowed to run arbitrary +.Ar commands +via .Nm . -Also, many programs (such as editors) allow the user to run commands +Also, many programs (such as editors) allow the user to run +.Ar command Ns s via shell escapes, thus avoiding .Nm sudo Ns 's checks. @@ -1379,16 +1571,21 @@ functionality. .Pp It is not meaningful to run the .Ql cd -command directly via sudo, e.g., +.Ar command +directly via sudo, e.g., .Bd -literal -offset 4n $ sudo cd /usr/local/protected .Ed .Pp -since when the command exits the parent process (your shell) will -still be the same. -See the -.Sx EXAMPLES -section for more information. +since when the +.Ar command +exits the parent process (your shell) will still be the same. +The +.Fl D +option can be used to run a +.Ar command +in a specific +.Ar directory . .Pp Running shell scripts via .Nm diff --git a/docs/sudo_logsrvd.conf.man.in b/docs/sudo_logsrvd.conf.man.in index ccdcca4813..2b5826adf8 100644 --- a/docs/sudo_logsrvd.conf.man.in +++ b/docs/sudo_logsrvd.conf.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2019-2022 Todd C. Miller +.\" Copyright (c) 2019-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.TH "SUDO_LOGSRVD.CONF" "@mansectform@" "September 13, 2022" "Sudo @PACKAGE_VERSION@" "File Formats Manual" +.TH "SUDO_LOGSRVD.CONF" "@mansectform@" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "File Formats Manual" .nh .if n .ad l .SH "NAME" @@ -57,24 +57,24 @@ file. .PP The following configuration sections are recognized: .PP -.RS 6n +.RS 1n .PD 0 -.TP 4n +.TP 3n \fB\(bu\fR server -.TP 4n +.TP 3n \fB\(bu\fR relay -.TP 4n +.TP 3n \fB\(bu\fR iolog -.TP 4n +.TP 3n \fB\(bu\fR eventlog -.TP 4n +.TP 3n \fB\(bu\fR syslog -.TP 4n +.TP 3n \fB\(bu\fR logfile .RE @@ -86,7 +86,7 @@ The \fIserver\fR section configures the address and port the server will listen on. The following keys are recognized: -.TP 10n +.TP 6n listen_address = host[:port][(tls)] The host name or IP address, optional port to listen on and an optional Transport Layer Security (TLS) flag in parentheses. @@ -115,19 +115,19 @@ connections and port 30344 will be used for TLS connections. .sp The default value is: .nf -.RS 16n +.RS 12n listen_address = *:30343 listen_address = *:30344(tls) .RE .fi -.RS 10n +.RS 6n which will listen on all configured network interfaces for both plaintext and TLS connections. Multiple \fIlisten_address\fR lines may be specified to listen on more than one port or interface. .RE -.TP 10n +.TP 6n server_log = string Where to log server warning and error messages. Supported values are @@ -144,7 +144,7 @@ is only effective when used in conjunction with the option. The default value is \fIsyslog\fR. -.TP 10n +.TP 6n pid_file = path The path to the file containing the process ID of the running \fBsudo_logsrvd\fR. @@ -160,7 +160,7 @@ If refers to a symbolic link, it will be ignored. The default value is \fI@rundir@/sudo_logsrvd.pid\fR. -.TP 10n +.TP 6n tcp_keepalive = boolean If true, \fBsudo_logsrvd\fR @@ -170,7 +170,7 @@ If the client does not respond to a message in time, the connection will be closed. Defaults to \fItrue\fR. -.TP 10n +.TP 6n timeout = number The amount of time, in seconds, \fBsudo_logsrvd\fR @@ -178,7 +178,7 @@ will wait for the client to respond. A value of 0 will disable the timeout. The default value is \fI30\fR. -.TP 10n +.TP 6n tls_cacert = path The path to a certificate authority bundle file, in PEM format, to use instead of the system's default certificate authority database @@ -187,12 +187,12 @@ The default is to use \fI/etc/ssl/sudo/cacert.pem\fR if it exists, otherwise the system's default certificate authority database is used. -.TP 10n +.TP 6n tls_cert = path The path to the server's certificate file, in PEM format. The default value is \fI/etc/ssl/sudo/certs/logsrvd_cert.pem\fR. -.TP 10n +.TP 6n tls_checkpeer = bool If true, client certificates will be validated by \fBsudo_logsrvd\fR; @@ -205,7 +205,7 @@ setting must be set to a CA bundle that contains the CA certificate used to generate the client certificate. The default value is \fIfalse\fR. -.TP 10n +.TP 6n tls_ciphers_v12 = string A list of ciphers to use for connections secured by TLS version 1.2 only, separated by a colon @@ -220,7 +220,7 @@ The default value is which consists of encryption cipher suites with key lengths larger than 128 bits, and some cipher suites with 128-bit keys. Cipher suites that offer no authentication are excluded. -.TP 10n +.TP 6n tls_ciphers_v13 = string A list of ciphers to use for connections secured by TLS version 1.3 only, separated by a colon @@ -228,47 +228,47 @@ separated by a colon Supported cipher suites depend on the version of OpenSSL used, but should include the following: .sp -.RS 16n +.RS 12n .PD 0 -.TP 10n +.TP 6n TLS_AES_128_GCM_SHA256 -.TP 10n +.TP 6n TLS_AES_256_GCM_SHA384 -.TP 10n +.TP 6n TLS_CHACHA20_POLY1305_SHA256 -.TP 10n +.TP 6n TLS_AES_128_CCM_SHA256 -.TP 10n +.TP 6n TLS_AES_128_CCM_8_SHA256 .RE -.RS 10n +.RS 6n .sp The default cipher suite is \(lqTLS_AES_256_GCM_SHA384\(rq. .RE .PD -.TP 10n +.TP 6n tls_dhparams = path The path to a file containing custom Diffie-Hellman parameters in PEM format. This file can be created with the following command: .nf .sp -.RS 10n +.RS 6n openssl dhparam -out /etc/sudo_logsrvd_dhparams.pem 2048 .RE .fi -.RS 10n +.RS 6n .sp By default, \fBsudo_logsrvd\fR will use the OpenSSL defaults for Diffie-Hellman key generation. .RE -.TP 10n +.TP 6n tls_key = path The path to the server's private key file, in PEM format. The default value is \fI/etc/ssl/sudo/private/logsrvd_key.pem\fR. -.TP 10n +.TP 6n tls_verify = bool If true, \fBsudo_logsrvd\fR @@ -292,7 +292,7 @@ They are only present in this section to make it possible for the relay connection to use a different set of TLS parameters from the client-facing server. The following keys are recognized: -.TP 10n +.TP 6n connect_timeout = number The amount of time, in seconds, \fBsudo_logsrvd\fR @@ -307,7 +307,7 @@ will wait for the relay to respond. A value of 0 will disable the timeout. The default value is \fI30\fR. -.TP 10n +.TP 6n relay_dir = path The directory in which log messages are temporarily stored before they are sent to the relay host. @@ -315,7 +315,7 @@ Messages are stored in the wire format specified by sudo_logsrv.proto(@mansectform@) The default value is \fI@relay_dir@\fR. -.TP 10n +.TP 6n relay_host = host[:port][(tls)] The relay host name or IP address, optional port to connect to and an optional Transport Layer Security (TLS) flag in parentheses. @@ -340,13 +340,13 @@ protocol. If multiple \fIrelay_host\fR lines are specified, the first available relay host will be used. -.TP 10n +.TP 6n retry_interval = number The number of seconds to wait after a connection error before making a new attempt to forward a message to a relay host. The default value is \fI30\fR. -.TP 10n +.TP 6n store_first = boolean If true, \fBsudo_logsrvd\fR @@ -356,7 +356,7 @@ and the log is relayed. If the network connection is interrupted before the log can be fully transferred, it will be retransmitted later. The default is to relay logs in real-time. -.TP 10n +.TP 6n tcp_keepalive = boolean If true, \fBsudo_logsrvd\fR @@ -365,7 +365,7 @@ This enables the periodic transmission of keepalive messages to the relay server. If the relay does not respond to a message in time, the connection will be closed. -.TP 10n +.TP 6n timeout = number The amount of time, in seconds, \fBsudo_logsrvd\fR @@ -373,7 +373,7 @@ will wait for the relay server to respond after a connection has succeeded. A value of 0 will disable the timeout. The default value is \fI30\fR. -.TP 10n +.TP 6n tls_cacert = path The path to a certificate authority bundle file, in PEM format, to use instead of the system's default certificate authority database @@ -382,13 +382,13 @@ The default is to use the value specified in the \fIserver\fR section, or the system's default certificate authority database if no value is set. -.TP 10n +.TP 6n tls_cert = path The path to the server's certificate file, in PEM format. The default is to use the value specified in the \fIserver\fR section. -.TP 10n +.TP 6n tls_checkpeer = bool If true, the relay host's certificate will be validated by \fBsudo_logsrvd\fR; @@ -402,7 +402,7 @@ used to generate the relay certificate. The default is to use the value specified in the \fIserver\fR section. -.TP 10n +.TP 6n tls_ciphers_v12 = string A list of ciphers to use for connections secured by TLS version 1.2 only, separated by a colon @@ -415,7 +415,7 @@ for full details. The default is to use the value specified in the \fIserver\fR section. -.TP 10n +.TP 6n tls_ciphers_v13 = string A list of ciphers to use for connections secured by TLS version 1.3 only, separated by a colon @@ -427,19 +427,19 @@ section for more information. The default is to use the value specified in the \fIserver\fR section. -.TP 10n +.TP 6n tls_dhparams = path The path to a file containing custom Diffie-Hellman parameters in PEM format. The default is to use the value specified in the \fIserver\fR section. -.TP 10n +.TP 6n tls_key = path The path to the server's private key file, in PEM format. The default is to use the value specified in the \fIserver\fR section. -.TP 10n +.TP 6n tls_verify = bool If true, the server's certificate used for relaying will be verified at startup. If false, no verification is performed of the server certificate. @@ -455,7 +455,7 @@ section configures I/O log parameters. These settings are identical to the I/O configuration in sudoers(@mansectform@). The following keys are recognized: -.TP 10n +.TP 6n iolog_compress = boolean If set, I/O logs will be compressed using \fBzlib\fR. @@ -463,7 +463,7 @@ Enabling compression can make it harder to view the logs in real-time as the program is executing due to buffering. The default value is \fIfalse\fR. -.TP 10n +.TP 6n iolog_dir = path The top-level directory to use when constructing the path name for the I/O log directory. @@ -475,7 +475,7 @@ The following percent (\(oq%\(cq) escape sequences are supported: .PP -.RS 10n +.RS 6n .PD 0 .TP 6n %{seq} @@ -514,7 +514,7 @@ character, the string \(oq%%\(cq should be used. .RE -.TP 10n +.TP 6n iolog_file = path The path name, relative to \fIiolog_dir\fR, @@ -550,7 +550,7 @@ overwritten unless ends in six or more \fIX\fRs. -.TP 10n +.TP 6n iolog_flush = boolean If set, I/O log data is flushed to disk after each write instead of buffering it. @@ -561,7 +561,7 @@ I/O logs are always flushed before sending a commit point to the client regardless of this setting. The default value is \fItrue\fR. -.TP 10n +.TP 6n iolog_group = name The group name to look up when setting the group-ID on new I/O log files and directories. @@ -575,7 +575,7 @@ If neither nor \fIiolog_user\fR are set, I/O log files and directories are created with group-ID 0. -.TP 10n +.TP 6n iolog_mode = mode The file mode to use when creating I/O log files. Mode bits for read and write permissions for owner, group, or other @@ -587,7 +587,7 @@ to match the read and write bits specified by \fIiolog_mode\fR. The default value is \fI0600\fR. -.TP 10n +.TP 6n iolog_user = name The user name to look up when setting the owner of new I/O log files and directories. @@ -596,7 +596,7 @@ If is set, it will be used instead of the user's primary group-ID. By default, I/O log files and directories are created with user and group-ID 0. -.TP 10n +.TP 6n log_passwords = bool Most programs that require a user's password will disable echo before reading the password to avoid displaying the plaintext password on @@ -625,7 +625,7 @@ option is set), only the first character of the password will be replaced in the I/O log. The default value is \fItrue\fR. -.TP 10n +.TP 6n maxseq = number The maximum sequence number that will be substituted for the \(lq%{seq}\(rq @@ -643,7 +643,7 @@ base 36 sequence number will be silently truncated to 2176782336. The default value is \fI2176782336\fR. -.TP 10n +.TP 6n passprompt_regex = string One or more POSIX extended regular expressions used to match password prompts in the terminal output when diff --git a/docs/sudo_logsrvd.conf.mdoc.in b/docs/sudo_logsrvd.conf.mdoc.in index d3a388d990..8fee88c34d 100644 --- a/docs/sudo_logsrvd.conf.mdoc.in +++ b/docs/sudo_logsrvd.conf.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2019-2022 Todd C. Miller +.\" Copyright (c) 2019-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd September 13, 2022 +.Dd January 16, 2023 .Dt SUDO_LOGSRVD.CONF @mansectform@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -56,7 +56,7 @@ file. .Pp The following configuration sections are recognized: .Pp -.Bl -bullet -compact -offset indent +.Bl -bullet -compact -offset 1n -width 1n .It server .It @@ -77,7 +77,7 @@ The .Em server section configures the address and port the server will listen on. The following keys are recognized: -.Bl -tag -width 8n +.Bl -tag -width 4n .It listen_address = host Ns Oo : Ns port Oc Ns Op (tls) The host name or IP address, optional port to listen on and an optional Transport Layer Security (TLS) flag in parentheses. @@ -206,7 +206,7 @@ separated by a colon Supported cipher suites depend on the version of OpenSSL used, but should include the following: .Pp -.Bl -tag -compact -width 8n -offset indent +.Bl -tag -compact -width 4n -offset indent .It TLS_AES_128_GCM_SHA256 .It TLS_AES_256_GCM_SHA384 .It TLS_CHACHA20_POLY1305_SHA256 @@ -254,7 +254,7 @@ They are only present in this section to make it possible for the relay connection to use a different set of TLS parameters from the client-facing server. The following keys are recognized: -.Bl -tag -width 8n +.Bl -tag -width 4n .It connect_timeout = number The amount of time, in seconds, .Nm sudo_logsrvd @@ -404,7 +404,7 @@ section configures I/O log parameters. These settings are identical to the I/O configuration in .Xr sudoers @mansectform@ . The following keys are recognized: -.Bl -tag -width 8n +.Bl -tag -width 4n .It iolog_compress = boolean If set, I/O logs will be compressed using .Sy zlib . diff --git a/docs/sudo_logsrvd.man.in b/docs/sudo_logsrvd.man.in index bffa4ecb6a..eb93636990 100644 --- a/docs/sudo_logsrvd.man.in +++ b/docs/sudo_logsrvd.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2019-2022 Todd C. Miller +.\" Copyright (c) 2019-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.TH "SUDO_LOGSRVD" "@mansectsu@" "May 17, 2022" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" +.TH "SUDO_LOGSRVD" "@mansectsu@" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" .nh .if n .ad l .SH "NAME" @@ -71,29 +71,29 @@ rereads its configuration file when it receives SIGHUP and writes server state to the debug file (if one is configured) when it receives SIGUSR1. .PP The options are as follows: -.TP 12n +.TP 8n \fB\-f\fR \fIfile\fR, \fB\--file\fR=\fIfile\fR Read configuration from \fIfile\fR instead of the default, \fI@sysconfdir@/sudo_logsrvd.conf\fR. -.TP 12n +.TP 8n \fB\-h\fR, \fB\--help\fR Display a short help message to the standard output and exit. -.TP 12n +.TP 8n \fB\-n\fR, \fB\--no-fork\fR Run \fBsudo_logsrvd\fR in the foreground instead of detaching from the terminal and becoming a daemon. -.TP 12n +.TP 8n \fB\-R\fR \fIpercentage\fR, \fB\--random-drop\fR=\fIpercentage\fR For each message, there is a \fIpercentage\fR chance that the server will drop the connection. This is only intended for debugging the ability of a client to restart a connection. -.TP 12n +.TP 8n \fB\-V\fR, \fB\--version\fR Print the \fBsudo_logsrvd\fR diff --git a/docs/sudo_logsrvd.mdoc.in b/docs/sudo_logsrvd.mdoc.in index d2d809d7b3..bde5ff672d 100644 --- a/docs/sudo_logsrvd.mdoc.in +++ b/docs/sudo_logsrvd.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2019-2022 Todd C. Miller +.\" Copyright (c) 2019-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd May 17, 2022 +.Dd January 16, 2023 .Dt SUDO_LOGSRVD @mansectsu@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -69,7 +69,7 @@ rereads its configuration file when it receives SIGHUP and writes server state to the debug file (if one is configured) when it receives SIGUSR1. .Pp The options are as follows: -.Bl -tag -width Fl +.Bl -tag -width Ds .It Fl f Ar file , Fl -file Ns = Ns Ar file Read configuration from .Ar file diff --git a/docs/sudo_plugin.man.in b/docs/sudo_plugin.man.in index d4e003628a..bd30403e79 100644 --- a/docs/sudo_plugin.man.in +++ b/docs/sudo_plugin.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2009-2022 Todd C. Miller +.\" Copyright (c) 2009-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.TH "SUDO_PLUGIN" "5" "October 7, 2022" "Sudo @PACKAGE_VERSION@" "File Formats Manual" +.TH "SUDO_PLUGIN" "5" "January 18, 2023" "Sudo @PACKAGE_VERSION@" "File Formats Manual" .nh .if n .ad l .SH "NAME" @@ -909,15 +909,20 @@ temporary copies of the files to be edited and then overwriting the originals with the temporary copies after editing is complete. If the plugin supports \fIsudoedit\fR, -it should choose the editor to be used, potentially from a variable -in the user's environment, such as +it must set +\fIsudoedit=true\fR +in the +\fIcommand_info\fR +list. +The plugin is responsible for choosing the editor to be used, +potentially from a variable in the user's environment, such as \fREDITOR\fR, -and include it in +and should be stored in \fIargv_out\fR (environment variables may include command line options). The files to be edited should be copied from \fIargv\fR -into +to \fIargv_out\fR, separated from the editor and its arguments by a @@ -928,11 +933,13 @@ The will be removed by \fBsudo\fR before the editor is executed. -The plugin should also set -\fIsudoedit=true\fR -in the +The plugin may also set +\fIsudoedit_nfiles\fR +to the number of files to be edited in the \fIcommand_info\fR -list. +list; this will only be used by the +\fBsudo\fR +front-end starting with API version 1.21. .sp The \fBcheck_policy\fR() @@ -1536,6 +1543,25 @@ option can be used to restore the older behavior and allow to open symbolic links. Only available starting with API version 1.8. .TP 6n +sudoedit_nfiles=number +The number of files to be edited by the user. +If present, this is will be used by the +\fBsudo\fR +front-end to determine which elements of the +\fIargv_out\fR +vector are files to be edited. +The +\(oq--\(cq +element must immediately precede the first file to be editied. +If +\fIsudoedit_nfiles\fR +is not specified, the +\fBsudo\fR +front-end will use the position of the +\(oq--\(cq +element to determine where the file list begins. +Only available starting with API version 1.21. +.TP 6n timeout=int Command timeout. If non-zero then when the timeout expires the command will be killed. @@ -5441,6 +5467,13 @@ The entry was added to the \fIcommand_info\fR list. +.TP 6n +Version 1.21 (sudo 1.9.13) +The +\fIsudoedit_nfiles\fR +entry was added to the +\fIcommand_info\fR +list. .SH "SEE ALSO" sudo.conf(@mansectform@), sudoers(@mansectform@), diff --git a/docs/sudo_plugin.mdoc.in b/docs/sudo_plugin.mdoc.in index bca8fcbae4..b6d3b93521 100644 --- a/docs/sudo_plugin.mdoc.in +++ b/docs/sudo_plugin.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2009-2022 Todd C. Miller +.\" Copyright (c) 2009-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd October 7, 2022 +.Dd January 18, 2023 .Dt SUDO_PLUGIN @mansectform@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -807,15 +807,20 @@ temporary copies of the files to be edited and then overwriting the originals with the temporary copies after editing is complete. If the plugin supports .Em sudoedit , -it should choose the editor to be used, potentially from a variable -in the user's environment, such as +it must set +.Em sudoedit=true +in the +.Fa command_info +list. +The plugin is responsible for choosing the editor to be used, +potentially from a variable in the user's environment, such as .Ev EDITOR , -and include it in +and should be stored in .Fa argv_out (environment variables may include command line options). The files to be edited should be copied from .Fa argv -into +to .Fa argv_out , separated from the editor and its arguments by a @@ -826,11 +831,13 @@ The will be removed by .Nm sudo before the editor is executed. -The plugin should also set -.Em sudoedit=true -in the +The plugin may also set +.Em sudoedit_nfiles +to the number of files to be edited in the .Fa command_info -list. +list; this will only be used by the +.Nm sudo +front-end starting with API version 1.21. .Pp The .Fn check_policy @@ -1377,6 +1384,24 @@ option can be used to restore the older behavior and allow .Nm sudoedit to open symbolic links. Only available starting with API version 1.8. +.It sudoedit_nfiles=number +The number of files to be edited by the user. +If present, this is will be used by the +.Nm sudo +front-end to determine which elements of the +.Fa argv_out +vector are files to be edited. +The +.Ql -- +element must immediately precede the first file to be editied. +If +.Em sudoedit_nfiles +is not specified, the +.Nm sudo +front-end will use the position of the +.Ql -- +element to determine where the file list begins. +Only available starting with API version 1.21. .It timeout=int Command timeout. If non-zero then when the timeout expires the command will be killed. @@ -4826,6 +4851,12 @@ The entry was added to the .Fa command_info list. +.It Version 1.21 (sudo 1.9.13) +The +.Em sudoedit_nfiles +entry was added to the +.Fa command_info +list. .El .Sh SEE ALSO .Xr sudo.conf @mansectform@ , diff --git a/docs/sudo_plugin_python.man.in b/docs/sudo_plugin_python.man.in index e67f559824..9410271eeb 100644 --- a/docs/sudo_plugin_python.man.in +++ b/docs/sudo_plugin_python.man.in @@ -3,7 +3,7 @@ .\" SPDX-License-Identifier: ISC .\" .\" Copyright (c) 2019-2021 Robert Manner -.\" Copyright (c) 2019-2022 Todd C. Miller +.\" Copyright (c) 2019-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -17,7 +17,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.TH "SUDO_PLUGIN_PYTHON" "5" "September 11, 2022" "Sudo @PACKAGE_VERSION@" "File Formats Manual" +.TH "SUDO_PLUGIN_PYTHON" "5" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "File Formats Manual" .nh .if n .ad l .SH "NAME" @@ -34,7 +34,7 @@ sudo_plugin(@mansectform@). .PP The supported plugins types are: .PP -.RS 4n +.RS 1n .PD 0 .TP 3n \fB\(bu\fR @@ -151,7 +151,7 @@ Running the Python interpreter and bridging between C and Python is handled by the \fBsudo\fR plugin -\fIpython_plugin.so\fR. +\fI@python_plugin@\fR. This shared object can be loaded like any other dynamic \fBsudo\fR plugin and should receive the path and the class name of the Python @@ -162,10 +162,10 @@ sudo.conf(@mansectform@): .nf .sp .RS 4n -Plugin python_policy python_plugin.so ModulePath= ClassName= -Plugin python_io python_plugin.so ModulePath= ClassName= -Plugin python_audit python_plugin.so ModulePath= ClassName= -Plugin python_approval python_plugin.so ModulePath= ClassName= +Plugin python_policy @python_plugin@ ModulePath= ClassName= +Plugin python_io @python_plugin@ ModulePath= ClassName= +Plugin python_audit @python_plugin@ ModulePath= ClassName= +Plugin python_approval @python_plugin@ ModulePath= ClassName= .RE .fi .PP @@ -175,7 +175,7 @@ file: .nf .sp .RS 4n -Defaults group_plugin="python_plugin.so ModulePath= ClassName=" +Defaults group_plugin="@python_plugin@ ModulePath= ClassName=" .RE .fi .PP @@ -210,7 +210,7 @@ For example: .nf .sp .RS 4n -Plugin python_policy python_plugin.so ModulePath= ClassName= +Plugin python_policy @python_plugin@ ModulePath= ClassName= .RE .fi .PP @@ -568,7 +568,7 @@ To try it, register it by adding the following lines to .nf .sp .RS 0n -Plugin python_policy python_plugin.so \e +Plugin python_policy @python_plugin@ \e ModulePath=@EXAMPLES@/example_policy_plugin.py \e ClassName=SudoPolicyPlugin .RE @@ -586,7 +586,7 @@ For example: .nf .sp .RS 4n -Plugin python_io python_plugin.so ModulePath= ClassName= +Plugin python_io @python_plugin@ ModulePath= ClassName= .RE .fi .PP @@ -674,7 +674,7 @@ function in the C \fBsudo\fR plugin API except that: .sp -.RS 10n +.RS 7n .PD 0 .TP 3n \fB\(bu\fR @@ -868,7 +868,7 @@ To try it, register it by adding the following lines to .nf .sp .RS 4n -Plugin python_io python_plugin.so \e +Plugin python_io @python_plugin@ \e ModulePath=@EXAMPLES@/example_io_plugin.py \e ClassName=SudoIOPlugin .RE @@ -880,7 +880,7 @@ For example: .nf .sp .RS 4n -Plugin python_audit python_plugin.so ModulePath= ClassName= +Plugin python_audit @python_plugin@ ModulePath= ClassName= .RE .fi .PP @@ -1188,7 +1188,7 @@ To try it, register it by adding the following lines to .nf .sp .RS 4n -Plugin python_audit python_plugin.so \e +Plugin python_audit @python_plugin@ \e ModulePath=@EXAMPLES@/example_audit_plugin.py \e ClassName=SudoAuditPlugin .RE @@ -1202,7 +1202,7 @@ For example: .nf .sp .RS 4n -Plugin python_approval python_plugin.so ModulePath= ClassName= +Plugin python_approval @python_plugin@ ModulePath= ClassName= .RE .fi .PP @@ -1332,7 +1332,7 @@ To try it, register it by adding the following lines to .nf .sp .RS 4n -Plugin python_approval python_plugin.so \e +Plugin python_approval @python_plugin@ \e ModulePath=@EXAMPLES@/example_approval_plugin.py \e ClassName=BusinessHoursApprovalPlugin .RE @@ -1348,7 +1348,7 @@ For example: .nf .sp .RS 4n -Defaults group_plugin="python_plugin.so ModulePath= ClassName=" +Defaults group_plugin="@python_plugin@ ModulePath= ClassName=" .RE .fi .PP @@ -1429,7 +1429,7 @@ file by adding the following lines: .nf .sp .RS 4n -Defaults group_plugin="python_plugin.so \e +Defaults group_plugin="@python_plugin@ \e ModulePath=@EXAMPLES@/example_group_plugin.py \e ClassName=SudoGroupPlugin" .RE @@ -1511,7 +1511,7 @@ The default is to wait forever (no timeout). .PP To specify the message type, the following constants are available: .PP -.RS 4n +.RS 1n .PD 0 .TP 3n \fB\(bu\fR @@ -1590,7 +1590,7 @@ To try it, register it by adding the following lines to .nf .sp .RS 4n -Plugin python_io python_plugin.so \e +Plugin python_io @python_plugin@ \e ModulePath=@EXAMPLES@/example_conversation.py \e ClassName=ReasonLoggerIOPlugin .RE @@ -1644,14 +1644,14 @@ To enable debug messages, add a line to sudo.conf(@mansectform@) with the program set to -\fIpython_plugin.so\fR. +\fI@python_plugin@\fR. For example, to store debug output in \fI@log_dir@/sudo_python_debug\fR, use a line like the following: .nf .sp .RS 4n -Debug python_plugin.so @log_dir@/sudo_python_debug \e +Debug @python_plugin@ @log_dir@/sudo_python_debug \e plugin@trace,c_calls@trace .RE .fi @@ -1666,7 +1666,7 @@ calls, use: .nf .sp .RS 4n -Debug python_plugin.so @log_dir@/sudo_python_debug plugin@trace +Debug @python_plugin@ @log_dir@/sudo_python_debug plugin@trace .RE .fi .PP @@ -1769,11 +1769,11 @@ To try it, register it by adding the following lines to .nf .sp .RS 4n -Plugin python_io python_plugin.so \e +Plugin python_io @python_plugin@ \e ModulePath=@EXAMPLES@/example_debugging.py \e ClassName=DebugDemoPlugin -Debug python_plugin.so \e +Debug @python_plugin@ \e @log_dir@/sudo_python_debug plugin@trace,c_calls@trace .RE .fi @@ -1872,7 +1872,7 @@ If you believe you have found a bug in you can submit a bug report at https://bugzilla.sudo.ws/ .SH "SECURITY CONSIDERATIONS" All Python plugin handling is implemented inside the -\fIpython_plugin.so\fR +\fI@python_plugin@\fR dynamic plugin. Therefore, if no Python plugin is registered in sudo.conf(@mansectform@) @@ -1882,32 +1882,13 @@ file, \fBsudo\fR will not load the Python interpreter or the Python libraries. .PP -By default, a Python plugin can only import Python modules which are -owned by -\fIroot\fR -and are only writable by the owner. -The reason for this is to prevent a file getting imported accidentally -which is modifiable by a non-root user. As \fBsudo\fR -plugins run as -\fIroot\fR, -accidentally importing such file would make it possible for any user -(having write access) to execute any code with administrative rights. -.PP -However, during development of a plugin this might not be very convenient. -The -sudo.conf(@mansectform@) -\fIdeveloper_mode\fR -option can be used to disable it. -For example: -.RS 6n -Set developer_mode true -.RE -.PP -This creates a security risk and is not recommended for production systems, -it is intended to be used in a development environment (VM, container, etc). -Before enabling developer mode, be sure that you understand the implications. +runs plugins as +\fBroot\fR, +care must be taken when writing Python plugins to avoid creating +security vulnerabilities, just as one would when writing plugins +in C. .SH "SUPPORT" Limited free support is available via the sudo-users mailing list, see https://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or diff --git a/docs/sudo_plugin_python.mdoc.in b/docs/sudo_plugin_python.mdoc.in index e17e1d2724..49299eabcb 100644 --- a/docs/sudo_plugin_python.mdoc.in +++ b/docs/sudo_plugin_python.mdoc.in @@ -2,7 +2,7 @@ .\" SPDX-License-Identifier: ISC .\" .\" Copyright (c) 2019-2021 Robert Manner -.\" Copyright (c) 2019-2022 Todd C. Miller +.\" Copyright (c) 2019-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd September 11, 2022 +.Dd January 16, 2023 .Dt SUDO_PLUGIN_PYTHON @mansectform@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -33,7 +33,7 @@ plugin API described by .Pp The supported plugins types are: .Pp -.Bl -bullet -compact -offset 4n -width 1n +.Bl -bullet -compact -offset 1n -width 1n .It Policy plugin .It @@ -128,7 +128,7 @@ Running the Python interpreter and bridging between C and Python is handled by the .Nm sudo plugin -.Pa python_plugin.so . +.Pa @python_plugin@ . This shared object can be loaded like any other dynamic .Nm sudo plugin and should receive the path and the class name of the Python @@ -137,17 +137,17 @@ plugin it is loading as arguments. Example usage in .Xr sudo.conf @mansectform@ : .Bd -literal -offset 4n -Plugin python_policy python_plugin.so ModulePath= ClassName= -Plugin python_io python_plugin.so ModulePath= ClassName= -Plugin python_audit python_plugin.so ModulePath= ClassName= -Plugin python_approval python_plugin.so ModulePath= ClassName= +Plugin python_policy @python_plugin@ ModulePath= ClassName= +Plugin python_io @python_plugin@ ModulePath= ClassName= +Plugin python_audit @python_plugin@ ModulePath= ClassName= +Plugin python_approval @python_plugin@ ModulePath= ClassName= .Ed .Pp Example group provider plugin usage in the .Em sudoers file: .Bd -literal -offset 4n -Defaults group_plugin="python_plugin.so ModulePath= ClassName=" +Defaults group_plugin="@python_plugin@ ModulePath= ClassName=" .Ed .Pp The plugin arguments are as follows: @@ -179,7 +179,7 @@ Policy plugins must be registered in .Xr sudo.conf @mansectform@ . For example: .Bd -literal -offset 4n -Plugin python_policy python_plugin.so ModulePath= ClassName= +Plugin python_policy @python_plugin@ ModulePath= ClassName= .Ed .Pp Currently, only a single policy plugin may be specified in @@ -464,7 +464,7 @@ Sudo ships with an example Python policy plugin. To try it, register it by adding the following lines to .Pa @sysconfdir@/sudo.conf : .Bd -literal -Plugin python_policy python_plugin.so \e +Plugin python_policy @python_plugin@ \e ModulePath=@EXAMPLES@/example_policy_plugin.py \e ClassName=SudoPolicyPlugin .Ed @@ -479,7 +479,7 @@ I/O plugins must be registered in .Xr sudo.conf @mansectform@ . For example: .Bd -literal -offset 4n -Plugin python_io python_plugin.so ModulePath= ClassName= +Plugin python_io @python_plugin@ ModulePath= ClassName= .Ed .Pp Sudo supports loading multiple I/O plugins. @@ -555,7 +555,7 @@ function in the C .Nm sudo plugin API except that: .Pp -.Bl -bullet -compact -offset 4n -width 1n +.Bl -bullet -compact -offset 1n -width 1n .It It only gets called when there is a command to be executed (and not for a version query for example). @@ -706,7 +706,7 @@ Sudo ships with a Python I/O plugin example. To try it, register it by adding the following lines to .Pa @sysconfdir@/sudo.conf : .Bd -literal -offset 4n -Plugin python_io python_plugin.so \e +Plugin python_io @python_plugin@ \e ModulePath=@EXAMPLES@/example_io_plugin.py \e ClassName=SudoIOPlugin .Ed @@ -715,7 +715,7 @@ Audit plugins must be registered in .Xr sudo.conf @mansectform@ . For example: .Bd -literal -offset 4n -Plugin python_audit python_plugin.so ModulePath= ClassName= +Plugin python_audit @python_plugin@ ModulePath= ClassName= .Ed .Pp Sudo supports loading multiple audit plugins. @@ -955,7 +955,7 @@ Sudo ships with a Python Audit plugin example. To try it, register it by adding the following lines to .Pa @sysconfdir@/sudo.conf : .Bd -literal -offset 4n -Plugin python_audit python_plugin.so \e +Plugin python_audit @python_plugin@ \e ModulePath=@EXAMPLES@/example_audit_plugin.py \e ClassName=SudoAuditPlugin .Ed @@ -966,7 +966,7 @@ Approval plugins must be registered in .Xr sudo.conf @mansectform@ . For example: .Bd -literal -offset 4n -Plugin python_approval python_plugin.so ModulePath= ClassName= +Plugin python_approval @python_plugin@ ModulePath= ClassName= .Ed .Pp Sudo supports loading multiple approval plugins. @@ -1064,7 +1064,7 @@ Sudo ships with a Python Approval plugin example. To try it, register it by adding the following lines to .Pa @sysconfdir@/sudo.conf : .Bd -literal -offset 4n -Plugin python_approval python_plugin.so \e +Plugin python_approval @python_plugin@ \e ModulePath=@EXAMPLES@/example_approval_plugin.py \e ClassName=BusinessHoursApprovalPlugin .Ed @@ -1077,7 +1077,7 @@ A group provider plugin is registered in the file. For example: .Bd -literal -offset 4n -Defaults group_plugin="python_plugin.so ModulePath= ClassName=" +Defaults group_plugin="@python_plugin@ ModulePath= ClassName=" .Ed .Pp Currently, only a single group plugin can be registered in @@ -1141,7 +1141,7 @@ To try it, register it in the .Em sudoers file by adding the following lines: .Bd -literal -offset 4n -Defaults group_plugin="python_plugin.so \e +Defaults group_plugin="@python_plugin@ \e ModulePath=@EXAMPLES@/example_group_plugin.py \e ClassName=SudoGroupPlugin" .Ed @@ -1215,7 +1215,7 @@ The default is to wait forever (no timeout). .Pp To specify the message type, the following constants are available: .Pp -.Bl -bullet -compact -offset 4n -width 1n +.Bl -bullet -compact -offset 1n -width 1n .It .Dv sudo.CONV.PROMPT_ECHO_OFF .It @@ -1279,7 +1279,7 @@ Sudo ships with an example plugin demonstrating the Python conversation API. To try it, register it by adding the following lines to .Pa @sysconfdir@/sudo.conf : .Bd -literal -offset 4n -Plugin python_io python_plugin.so \e +Plugin python_io @python_plugin@ \e ModulePath=@EXAMPLES@/example_conversation.py \e ClassName=ReasonLoggerIOPlugin .Ed @@ -1329,12 +1329,12 @@ To enable debug messages, add a line to .Xr sudo.conf @mansectform@ with the program set to -.Pa python_plugin.so . +.Pa @python_plugin@ . For example, to store debug output in .Pa @log_dir@/sudo_python_debug , use a line like the following: .Bd -literal -offset 4n -Debug python_plugin.so @log_dir@/sudo_python_debug \e +Debug @python_plugin@ @log_dir@/sudo_python_debug \e plugin@trace,c_calls@trace .Ed .Pp @@ -1346,7 +1346,7 @@ For example to just see the debug output of .Fn sudo.debug calls, use: .Bd -literal -offset 4n -Debug python_plugin.so @log_dir@/sudo_python_debug plugin@trace +Debug @python_plugin@ @log_dir@/sudo_python_debug plugin@trace .Ed .Pp See @@ -1428,11 +1428,11 @@ Sudo ships with an example debug plugin. To try it, register it by adding the following lines to .Pa @sysconfdir@/sudo.conf : .Bd -literal -offset 4n -Plugin python_io python_plugin.so \e +Plugin python_io @python_plugin@ \e ModulePath=@EXAMPLES@/example_debugging.py \e ClassName=DebugDemoPlugin -Debug python_plugin.so \e +Debug @python_plugin@ \e @log_dir@/sudo_python_debug plugin@trace,c_calls@trace .Ed .Ss Option conversion API @@ -1523,7 +1523,7 @@ If you believe you have found a bug in you can submit a bug report at https://bugzilla.sudo.ws/ .Sh SECURITY CONSIDERATIONS All Python plugin handling is implemented inside the -.Pa python_plugin.so +.Pa @python_plugin@ dynamic plugin. Therefore, if no Python plugin is registered in .Xr sudo.conf @mansectform@ @@ -1533,30 +1533,13 @@ file, .Nm sudo will not load the Python interpreter or the Python libraries. .Pp -By default, a Python plugin can only import Python modules which are -owned by -.Em root -and are only writable by the owner. -The reason for this is to prevent a file getting imported accidentally -which is modifiable by a non-root user. As .Nm sudo -plugins run as -.Em root , -accidentally importing such file would make it possible for any user -(having write access) to execute any code with administrative rights. -.Pp -However, during development of a plugin this might not be very convenient. -The -.Xr sudo.conf @mansectform@ -.Em developer_mode -option can be used to disable it. -For example: -.Dl Set developer_mode true -.Pp -This creates a security risk and is not recommended for production systems, -it is intended to be used in a development environment (VM, container, etc). -Before enabling developer mode, be sure that you understand the implications. +runs plugins as +.Sy root , +care must be taken when writing Python plugins to avoid creating +security vulnerabilities, just as one would when writing plugins +in C. .Sh SUPPORT Limited free support is available via the sudo-users mailing list, see https://www.sudo.ws/mailman/listinfo/sudo-users to subscribe or diff --git a/docs/sudo_sendlog.man.in b/docs/sudo_sendlog.man.in index eea3cca149..1bccdc4879 100644 --- a/docs/sudo_sendlog.man.in +++ b/docs/sudo_sendlog.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2019-2022 Todd C. Miller +.\" Copyright (c) 2019-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.TH "SUDO_SENDLOG" "@mansectsu@" "February 16, 2022" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" +.TH "SUDO_SENDLOG" "@mansectsu@" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" .nh .if n .ad l .SH "NAME" @@ -48,31 +48,32 @@ sudo_logsrvd(@mansectsu@) for central storage. .PP The options are as follows: -.TP 12n +.TP 8n \fB\-A\fR, \fB\--accept-only\fR Only send the accept event, not the I/O associated with the log. This can be used to test the logging of accept events without any associated I/O. -.TP 12n +.TP 8n \fB\-b\fR, \fB\--ca-bundle\fR The path to a certificate authority bundle file, in PEM format, to use instead of the system's default certificate authority database when authenticating the log server. The default is to use the system's default certificate authority database. -.TP 12n +.TP 8n \fB\-c\fR, \fB\--cert\fR The path to the client's certificate file in PEM format. This setting is required when the connection to the remote log server is secured with TLS. -.TP 12n +.TP 8n \fB\--help\fR +.br Display a short help message to the standard output and exit. -.TP 12n +.TP 8n \fB\-h\fR, \fB\--host\fR Connect to the specified \fIhost\fR instead of localhost. -.TP 12n +.TP 8n \fB\-i\fR, \fB\--iolog-id\fR Use the specified \fIiolog-id\fR @@ -83,13 +84,12 @@ is reported by the server when it creates the remote I/O log. This option may only be used in conjunction with the \fB\-r\fR option. -.TP 12n +.TP 8n \fB\-k\fR, \fB\--key\fR -.br The path to the client's private key file in PEM format. This setting is required when the connection to the remote log server is secured with TLS. -.TP 12n +.TP 8n \fB\-n\fR, \fB\--no-verify\fR If specified, the server's certificate will not be verified during the TLS handshake. @@ -99,13 +99,13 @@ verifies that the server's certificate is valid and that it contains either the server's host name or its IP address. This setting is only supported when the connection to the remote log server is secured with TLS. -.TP 12n +.TP 8n \fB\-p\fR, \fB\--port\fR Use the specified network \fIport\fR when connecting to the log server instead of the default, port 30344. -.TP 12n +.TP 8n \fB\-r\fR, \fB\--restart\fR Restart an interrupted connection to the log server. The specified @@ -119,14 +119,14 @@ and is usually the last commit point received from the server. The \fB\-i\fR option must also be specified when restarting a transfer. -.TP 12n +.TP 8n \fB\-R\fR, \fB\--reject\fR Send a reject event for the command using the specified \fIreject-reason\fR, even though it was actually accepted locally. This can be used to test the logging of reject events; no I/O will be sent. -.TP 12n +.TP 8n \fB\-s\fR, \fB\--stop-after\fR Stop sending log records and close the connection when \fIstop-point\fR @@ -139,14 +139,14 @@ The \fIstop-point\fR is an elapsed time specified in the form \(lqseconds,nanoseconds\(rq. -.TP 12n +.TP 8n \fB\-t\fR, \fB\--test\fR Open \fInumber\fR simultaneous connections to the log server and send the specified I/O log file on each one. This option is useful for performance testing. -.TP 12n +.TP 8n \fB\-V\fR, \fB\--version\fR Print the \fBsudo_sendlog\fR diff --git a/docs/sudo_sendlog.mdoc.in b/docs/sudo_sendlog.mdoc.in index e8c17ae4e8..1314ce4b26 100644 --- a/docs/sudo_sendlog.mdoc.in +++ b/docs/sudo_sendlog.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2019-2022 Todd C. Miller +.\" Copyright (c) 2019-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd February 16, 2022 +.Dd January 16, 2023 .Dt SUDO_SENDLOG @mansectsu@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -46,7 +46,7 @@ to a remote log server such as for central storage. .Pp The options are as follows: -.Bl -tag -width Fl +.Bl -tag -width Ds .It Fl A , -accept-only Only send the accept event, not the I/O associated with the log. This can be used to test the logging of accept events without diff --git a/docs/sudoers.ldap.man.in b/docs/sudoers.ldap.man.in index 3fd34f3b04..3b66433638 100644 --- a/docs/sudoers.ldap.man.in +++ b/docs/sudoers.ldap.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2003-2022 Todd C. Miller +.\" Copyright (c) 2003-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.TH "SUDOERS.LDAP" "@mansectform@" "September 13, 2022" "Sudo @PACKAGE_VERSION@" "File Formats Manual" +.TH "SUDOERS.LDAP" "@mansectform@" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "File Formats Manual" .nh .if n .ad l .SH "NAME" @@ -1197,19 +1197,21 @@ The following \fIlevel\fR values are supported: .RS 10n -.TP 10n +.TP 6n never +.br The server certificate will not be requested or checked. -.TP 10n +.TP 6n allow +.br The server certificate will be requested. A missing or invalid certificate is ignored and not considered an error. -.TP 10n +.TP 6n try The server certificate will be requested. A missing certificate is ignored but an invalid certificate will result in a connection error. -.TP 10n +.TP 6n demand | \fIhard\fR The server certificate will be requested. A missing or invalid certificate will result in a connection error. @@ -1305,11 +1307,11 @@ The following sources are recognized: .PP .RS 4n .PD 0 -.TP 10n +.TP 7n files read sudoers from \fI@sysconfdir@/sudoers\fR -.TP 10n +.TP 7n ldap read sudoers from LDAP .RE diff --git a/docs/sudoers.ldap.mdoc.in b/docs/sudoers.ldap.mdoc.in index 39230c2435..a0edf3a3a9 100644 --- a/docs/sudoers.ldap.mdoc.in +++ b/docs/sudoers.ldap.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2003-2022 Todd C. Miller +.\" Copyright (c) 2003-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd September 13, 2022 +.Dd January 16, 2023 .Dt SUDOERS.LDAP @mansectform@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -1102,7 +1102,7 @@ will be unable to connect to it. The following .Ar level values are supported: -.Bl -tag -width 8n -offset 4n +.Bl -tag -width 4n -offset 4n .It never The server certificate will not be requested or checked. .It allow @@ -1200,7 +1200,7 @@ precedence over earlier ones (unless is used, see below). The following sources are recognized: .Pp -.Bl -tag -width 8n -offset 4n -compact +.Bl -tag -width "files" -offset 4n -compact .It files read sudoers from .Pa @sysconfdir@/sudoers diff --git a/docs/sudoers.man.in b/docs/sudoers.man.in index dec073b31e..be9dc327e6 100644 --- a/docs/sudoers.man.in +++ b/docs/sudoers.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 1994-1996, 1998-2005, 2007-2022 +.\" Copyright (c) 1994-1996, 1998-2005, 2007-2023 .\" Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -25,7 +25,7 @@ .nr BA @BAMAN@ .nr LC @LCMAN@ .nr PS @PSMAN@ -.TH "SUDOERS" "@mansectform@" "October 20, 2022" "Sudo @PACKAGE_VERSION@" "File Formats Manual" +.TH "SUDOERS" "@mansectform@" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "File Formats Manual" .nh .if n .ad l .SH "NAME" @@ -72,9 +72,9 @@ plugin, the following configuration can be used. .nf .sp .RS 4n -Plugin sudoers_audit sudoers.so -Plugin sudoers_policy sudoers.so -Plugin sudoers_io sudoers.so +Plugin sudoers_audit @sudoers_plugin@ +Plugin sudoers_policy @sudoers_plugin@ +Plugin sudoers_io @sudoers_plugin@ .RE .fi .PP @@ -87,7 +87,7 @@ sudo.conf(@mansectform@) file. Plugin arguments, if any, should be listed after the path to the plugin (i.e., after -\fIsudoers.so\fR). +\fI@sudoers_plugin@\fR). The arguments are only effective for the plugin that opens (and parses) the \fIsudoers\fR file. @@ -105,12 +105,12 @@ For example: .nf .sp .RS 4n -Plugin sudoers_audit sudoers.so sudoers_mode=0400 error_recovery=false +Plugin sudoers_audit @sudoers_plugin@ sudoers_mode=0400 error_recovery=false .RE .fi .PP The following plugin arguments are supported: -.TP 10n +.TP 6n error_recovery=bool The \fIerror_recovery\fR @@ -129,40 +129,40 @@ A value of \fIfalse\fR will disable error recovery. Prior to version 1.9.3, no error recovery was performed. -.TP 10n +.TP 6n ldap_conf=pathname The \fIldap_conf\fR argument can be used to override the default path to the \fIldap.conf\fR file. -.TP 10n +.TP 6n ldap_secret=pathname The \fIldap_secret\fR argument can be used to override the default path to the \fIldap.secret\fR file. -.TP 10n +.TP 6n sudoers_file=pathname The \fIsudoers_file\fR argument can be used to override the default path to the \fIsudoers\fR file. -.TP 10n +.TP 6n sudoers_uid=user-ID The \fIsudoers_uid\fR argument can be used to override the default owner of the sudoers file. It should be specified as a numeric user-ID. -.TP 10n +.TP 6n sudoers_gid=group-ID The \fIsudoers_gid\fR argument can be used to override the default group of the sudoers file. It must be specified as a numeric group-ID (not a group name). -.TP 10n +.TP 6n sudoers_mode=mode The \fIsudoers_mode\fR @@ -1025,9 +1025,12 @@ Edit_Spec ::= "sudoedit" file name+ | "sudoedit" regex | "sudoedit" +List_Spec ::= "list" + Cmnd ::= Digest_List? '!'* command | '!'* directory | '!'* Edit_Spec | + '!'* List_Spec | '!'* Cmnd_Alias .RE .fi @@ -1096,9 +1099,43 @@ character from being interpreted as a regular expression, the must be escaped with a \(oq\e\(cq. .PP -The built-in command +There are two commands built into +\fBsudo\fR +itself: +\(lqlist\(rq +and +\(lqsudoedit\(rq. +Unlike other commands, these two must be specified in the +\fIsudoers\fR +file +\fIwithout\fR +a leading path. +.PP +The +\(lqlist\(rq +built-in can be used to permit a user to list another user's privileges with +\fBsudo\fR's +\fB\-U\fR +option. +For example, +\(lqsudo -l -U otheruser\(rq. +A user with the +\(lqlist\(rq +privilege is able to list another user's privileges even if they +don't have permission to run commands as that user. +By default, only root or a user with the ability to run any command as +either root or the specified +\fIuser\fR +on the current host may use the +\fB\-U\fR +option. +No command line arguments may be specified with the +\(lqlist\(rq +built-in. +.PP +The \(lqsudoedit\(rq -is used to permit a user to run +built-in is used to permit a user to run \fBsudo\fR with the \fB\-e\fR @@ -1633,16 +1670,16 @@ $ ppriv -l In addition, there are several \(lqspecial\(rq privilege strings: -.TP 10n +.TP 7n none the empty set -.TP 10n +.TP 7n all the set of all privileges -.TP 10n +.TP 7n zone the set of all privileges available in the current zone -.TP 10n +.TP 7n basic the default set of privileges normal users are granted at login time .PP @@ -2076,21 +2113,21 @@ and fnmatch(3) functions as specified by IEEE Std 1003.1 (\(lqPOSIX.1\(rq). -.TP 10n +.TP 8n * Matches any set of zero or more characters (including white space). -.TP 10n +.TP 8n \&? Matches any single character (including white space). -.TP 10n +.TP 8n [...] Matches any character in the specified range. -.TP 10n +.TP 8n [!...] Matches any character \fInot\fR in the specified range. -.TP 10n +.TP 8n \ex For any character \(oqx\(cq, @@ -4757,7 +4794,7 @@ name used when the \fB\-A\fR option is specified. The default value is either -\(oq@pam_service@\(cq +\(oqsudo\(cq or \(oq@pam_login_service@\(cq, depending on whether or not the @@ -5110,23 +5147,23 @@ On Solaris, if the plugin is stored in a directory ending in will create a fallback path by appending \(lq/64\(rq to the directory name; -\fI/usr/lib/sudo_plugin.so\fR +\fI@prefix@/lib/group_plugin.so\fR becomes -\fI/usr/lib/64/sudo_plugin.so\fR. +\fI@prefix@/lib/64/group_plugin.so\fR. On Linux, a directory ending in \(lqlib\(rq will be transformed to \(lqlib64\(rq as the fallback path; -\fI/usr/lib/sudo_plugin.so\fR +\fI@prefix@/lib/group_plugin.so\fR becomes -\fI/usr/lib64/sudo_plugin.so\fR. +\fI@prefix@/lib64/group_plugin.so\fR. On all other systems, the fallback path is generated by adding a \(lq64\(rq before the file extension; -\fIsudo_plugin.so\fR +\fIgroup_plugin.so\fR becomes -\fIsudo_plugin64.so\fR. +\fIgroup_plugin64.so\fR. .sp For more information see \fIGROUP PROVIDER PLUGINS\fR. @@ -5179,7 +5216,7 @@ It has the following possible values: .PP .RS 14n .PD 0 -.TP 10n +.TP 6n all All the user's \fIsudoers\fR @@ -5188,12 +5225,12 @@ the \fRNOPASSWD\fR flag set to avoid entering a password. .PD -.TP 10n +.TP 6n always The user must always enter a password to use the \fB\-l\fR option. -.TP 10n +.TP 6n any At least one of the user's \fIsudoers\fR @@ -5201,8 +5238,9 @@ file entries for the current host must have the \fRNOPASSWD\fR flag set to avoid entering a password. -.TP 10n +.TP 6n never +.br The user need never enter a password to use the \fB\-l\fR option. @@ -5223,7 +5261,7 @@ Supported log formats are: .PP .RS 14n .PD 0 -.TP 10n +.TP 6n json Logs in JSON format. JSON log entries contain the full user details as well as the execution @@ -5232,7 +5270,7 @@ Due to limitations of the protocol, JSON events sent via \fIsyslog\fR may be truncated. .PD -.TP 10n +.TP 6n sudo Traditional sudo-style logs, see \fIEVENT LOGGING\fR @@ -5786,7 +5824,7 @@ If options are present, the string must be enclosed in double quotes (\&""). .PP The following group provider plugins are installed by default: -.TP 10n +.TP 6n group_file The \fIgroup_file\fR @@ -5799,11 +5837,11 @@ For example, if the group file to be used is \fI/etc/sudo-group\fR: .nf .sp -.RS 10n +.RS 6n Defaults group_plugin="group_file.so /etc/sudo-group" .RE .fi -.TP 10n +.TP 6n system_group The \fIsystem_group\fR @@ -5816,7 +5854,7 @@ groups not present in the user's supplemental group vector. This plugin takes no options: .nf .sp -.RS 10n +.RS 6n Defaults group_plugin=system_group.so .RE .fi @@ -5839,14 +5877,31 @@ can log events via syslog(3), to a local log file, or both. The log format is almost identical in both cases. +Any control characters present in the log data are formatted in octal +with a leading +\(oq#\(cq +character. +For example, a horizontal tab is stored as +\(oq#011\(cq +and an embedded carriage return is stored as +\(oq#015\(cq. +In addition, space characters in the command path are stored as +\(oq#040\(cq. +Command line arguments that contain spaces are enclosed in single quotes +(''). +This makes it possible to distinguish multiple command line arguments +from a single argument that contains spaces. +Literal single quotes and backslash characters +(\(oq\e\(cq) +in command line arguments are escaped with a backslash. .SS "Accepted command log entries" Commands that sudo runs are logged using the following format (split into multiple lines for readability): .nf .sp .RS 4n -date hostname progname: username : TTY=ttyname ; PWD=cwd ; \e - USER=runasuser ; GROUP=runasgroup ; TSID=logid ; \e +date hostname progname: username : TTY=ttyname ; CHROOT=chroot ; \e + PWD=cwd ; USER=runasuser ; GROUP=runasgroup ; TSID=logid ; \e ENV=env_vars COMMAND=command .RE .fi @@ -5895,6 +5950,9 @@ was run on, or \(lqunknown\(rq if there was no terminal present. .TP 14n +chroot +The root directory that the command was run in, if one was specified. +.TP 14n cwd The current working directory that \fBsudo\fR @@ -5919,7 +5977,7 @@ A list of environment variables specified on the command line, if specified. .TP 14n command -The actual command that was executed. +The actual command that was executed, including any command line arguments. .PP Messages are logged using the locale specified by \fIsudoers_locale\fR, @@ -6157,17 +6215,21 @@ with a few important differences: 1.\& The \fIprogname\fR -and -\fIhostname\fR -fields are not present. +field is not present. .TP 5n 2.\& -If the -\fIlog_year\fR -option is enabled, -the date will also include the year. +The +\fIhostname\fR +is only logged if the +\fIlog_host\fR +option is enabled. .TP 5n 3.\& +The date does not include the year unless the +\fIlog_year\fR +option is enabled. +.TP 5n +4.\& Lines that are longer than \fIloglinelen\fR characters (80 by default) are word-wrapped and continued on the @@ -6402,66 +6464,65 @@ The file may contain the following elements: .PP .RS 10n .PD 0 -.TP 10n +.TP 6n timestamp -.br A JSON object containing time the command was run. It consists of two values, \fIseconds\fR and \fInanoseconds\fR. .PD -.TP 10n +.TP 6n columns The number of columns of the terminal the command ran on, or zero if no terminal was present. -.TP 10n +.TP 6n command The fully-qualified path of the command that was run. -.TP 10n +.TP 6n lines +.br The number of lines of the terminal the command ran on, or zero if no terminal was present. -.TP 10n +.TP 6n runargv A JSON array representing the command's argument vector as passed to the execve(2) system call. -.TP 10n +.TP 6n runenv A JSON array representing the command's environment as passed to the execve(2) system call. -.TP 10n +.TP 6n rungid The group ID the command ran as. This element is only present when the user specifies a group on the command line. -.TP 10n +.TP 6n rungroup The name of the group the command ran as. This element is only present when the user specifies a group on the command line. -.TP 10n +.TP 6n runuid The user ID the command ran as. -.TP 10n +.TP 6n runuser The name of the user the command ran as. -.TP 10n +.TP 6n submitcwd -.br The current working directory at the time \fBsudo\fR was run. -.TP 10n +.TP 6n submithost The name of the host the command was run on. -.TP 10n +.TP 6n submituser The name of the user who ran the command via \fBsudo\fR. -.TP 10n +.TP 6n ttyname The path name of the terminal the user invoked \fBsudo\fR @@ -7240,7 +7301,7 @@ Common programs that permit shell escapes include shells (obviously), editors, paginators, mail, and terminal programs. .PP There are four basic approaches to this problem: -.TP 10n +.TP 11n restrict Avoid giving users access to commands that allow the user to run arbitrary commands. @@ -7253,9 +7314,8 @@ running editors via Due to the large number of programs that offer shell escapes, restricting users to the set of programs that do not is often unworkable. -.TP 10n +.TP 11n intercept -.br On most systems, \fBsudo\fR's \fIintercept\fR @@ -7355,11 +7415,11 @@ tag as documented in the User Specification section above. Here is that example again: .nf .sp -.RS 10n +.RS 11n chuck research = INTERCEPT: ALL .RE .fi -.RS 10n +.RS 11n .sp This allows user \fBchuck\fR @@ -7397,7 +7457,7 @@ See the description of the \fIintercept_verify\fR setting for more information. .RE -.TP 10n +.TP 11n log There are two separate but related ways to log additional commands. The first is to enable I/O logging using the @@ -7420,7 +7480,7 @@ The flag uses the same mechanism as \fIintercept\fR (see above) and has the same limitations. -.TP 10n +.TP 11n noexec \fBsudo\fR's \fInoexec\fR @@ -7472,11 +7532,11 @@ tag as documented in the User Specification section above. Here is that example again: .nf .sp -.RS 10n +.RS 11n aaron shanty = NOEXEC: /usr/bin/more, /usr/bin/vi .RE .fi -.RS 10n +.RS 11n .sp This allows user \fBaaron\fR @@ -7776,7 +7836,7 @@ For example: .nf .sp .RS 0n -Debug sudoers.so @log_dir@/sudoers_debug match@info,nss@info +Debug @sudoers_plugin@ @log_dir@/sudoers_debug match@info,nss@info .RE .fi .PP diff --git a/docs/sudoers.mdoc.in b/docs/sudoers.mdoc.in index d09f06a993..92edacb9db 100644 --- a/docs/sudoers.mdoc.in +++ b/docs/sudoers.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 1994-1996, 1998-2005, 2007-2022 +.\" Copyright (c) 1994-1996, 1998-2005, 2007-2023 .\" Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -25,7 +25,7 @@ .nr BA @BAMAN@ .nr LC @LCMAN@ .nr PS @PSMAN@ -.Dd October 20, 2022 +.Dd January 16, 2023 .Dt SUDOERS @mansectform@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -70,9 +70,9 @@ to use the .Nm plugin, the following configuration can be used. .Bd -literal -offset 4n -Plugin sudoers_audit sudoers.so -Plugin sudoers_policy sudoers.so -Plugin sudoers_io sudoers.so +Plugin sudoers_audit @sudoers_plugin@ +Plugin sudoers_policy @sudoers_plugin@ +Plugin sudoers_io @sudoers_plugin@ .Ed .Pp Starting with @@ -84,7 +84,7 @@ plugin in the file. Plugin arguments, if any, should be listed after the path to the plugin (i.e., after -.Pa sudoers.so ) . +.Pa @sudoers_plugin@ ) . The arguments are only effective for the plugin that opens (and parses) the .Em sudoers file. @@ -100,11 +100,11 @@ plugin. Multiple arguments may be specified, separated by white space. For example: .Bd -literal -offset 4n -Plugin sudoers_audit sudoers.so sudoers_mode=0400 error_recovery=false +Plugin sudoers_audit @sudoers_plugin@ sudoers_mode=0400 error_recovery=false .Ed .Pp The following plugin arguments are supported: -.Bl -tag -width 8n +.Bl -tag -width 4n .It error_recovery=bool The .Em error_recovery @@ -982,9 +982,12 @@ Edit_Spec ::= "sudoedit" file name+ | "sudoedit" regex | "sudoedit" +List_Spec ::= "list" + Cmnd ::= Digest_List? '!'* command | '!'* directory | '!'* Edit_Spec | + '!'* List_Spec | '!'* Cmnd_Alias .Ed .Pp @@ -1052,9 +1055,43 @@ character from being interpreted as a regular expression, the must be escaped with a .Ql \e . .Pp -The built-in command +There are two commands built into +.Nm sudo +itself: +.Dq list +and +.Dq sudoedit . +Unlike other commands, these two must be specified in the +.Em sudoers +file +.Em without +a leading path. +.Pp +The +.Dq list +built-in can be used to permit a user to list another user's privileges with +.Nm sudo Ns 's +.Fl U +option. +For example, +.Dq sudo -l -U otheruser . +A user with the +.Dq list +privilege is able to list another user's privileges even if they +don't have permission to run commands as that user. +By default, only root or a user with the ability to run any command as +either root or the specified +.Ar user +on the current host may use the +.Fl U +option. +No command line arguments may be specified with the +.Dq list +built-in. +.Pp +The .Dq sudoedit -is used to permit a user to run +built-in is used to permit a user to run .Nm sudo with the .Fl e @@ -1557,7 +1594,7 @@ $ ppriv -l In addition, there are several .Dq special privilege strings: -.Bl -tag -width 8n +.Bl -tag -width "basic" .It none the empty set .It all @@ -1971,7 +2008,7 @@ and .Xr fnmatch 3 functions as specified by .St -p1003.1 . -.Bl -tag -width 8n +.Bl -tag -width "[!...]" .It * Matches any set of zero or more characters (including white space). .It \&? @@ -2052,7 +2089,7 @@ For more information, see below. .Ss Exceptions to wildcard rules The following exceptions apply to the above rules: -.Bl -tag -width 8n +.Bl -tag -width "sudoedit" .It \&"" If the empty string .Ql \&"" @@ -4491,7 +4528,7 @@ name used when the .Fl A option is specified. The default value is either -.Ql @pam_service@ +.Ql sudo or .Ql @pam_login_service@ , depending on whether or not the @@ -4808,23 +4845,23 @@ On Solaris, if the plugin is stored in a directory ending in will create a fallback path by appending .Dq /64 to the directory name; -.Pa /usr/lib/sudo_plugin.so +.Pa @prefix@/lib/group_plugin.so becomes -.Pa /usr/lib/64/sudo_plugin.so . +.Pa @prefix@/lib/64/group_plugin.so . On Linux, a directory ending in .Dq lib will be transformed to .Dq lib64 as the fallback path; -.Pa /usr/lib/sudo_plugin.so +.Pa @prefix@/lib/group_plugin.so becomes -.Pa /usr/lib64/sudo_plugin.so . +.Pa @prefix@/lib64/group_plugin.so . On all other systems, the fallback path is generated by adding a .Dq 64 before the file extension; -.Pa sudo_plugin.so +.Pa group_plugin.so becomes -.Pa sudo_plugin64.so . +.Pa group_plugin64.so . .Pp For more information see .Sx "GROUP PROVIDER PLUGINS" . @@ -4865,7 +4902,7 @@ with the .Fl l option. It has the following possible values: -.Bl -tag -width 8n +.Bl -tag -width 4n .It all All the user's .Em sudoers @@ -4901,7 +4938,7 @@ The default value is .It log_format The event log format. Supported log formats are: -.Bl -tag -width 8n +.Bl -tag -width 4n .It json Logs in JSON format. JSON log entries contain the full user details as well as the execution @@ -5419,7 +5456,7 @@ If options are present, the string must be enclosed in double quotes .Pq \&"" . .Pp The following group provider plugins are installed by default: -.Bl -tag -width 8n +.Bl -tag -width 4n .It group_file The .Em group_file @@ -5466,12 +5503,29 @@ can log events via .Xr syslog 3 , to a local log file, or both. The log format is almost identical in both cases. +Any control characters present in the log data are formatted in octal +with a leading +.Ql # +character. +For example, a horizontal tab is stored as +.Ql #011 +and an embedded carriage return is stored as +.Ql #015 . +In addition, space characters in the command path are stored as +.Ql #040 . +Command line arguments that contain spaces are enclosed in single quotes +.Pq '' . +This makes it possible to distinguish multiple command line arguments +from a single argument that contains spaces. +Literal single quotes and backslash characters +.Pq Ql \e +in command line arguments are escaped with a backslash. .Ss Accepted command log entries Commands that sudo runs are logged using the following format (split into multiple lines for readability): .Bd -literal -offset 4n -date hostname progname: username : TTY=ttyname ; PWD=cwd ; \e - USER=runasuser ; GROUP=runasgroup ; TSID=logid ; \e +date hostname progname: username : TTY=ttyname ; CHROOT=chroot ; \e + PWD=cwd ; USER=runasuser ; GROUP=runasgroup ; TSID=logid ; \e ENV=env_vars COMMAND=command .Ed .Pp @@ -5514,6 +5568,8 @@ or was run on, or .Dq unknown if there was no terminal present. +.It chroot +The root directory that the command was run in, if one was specified. .It cwd The current working directory that .Nm sudo @@ -5533,7 +5589,7 @@ option is enabled. A list of environment variables specified on the command line, if specified. .It command -The actual command that was executed. +The actual command that was executed, including any command line arguments. .El .Pp Messages are logged using the locale specified by @@ -5757,14 +5813,17 @@ with a few important differences: .It The .Em progname -and +field is not present. +.It +The .Em hostname -fields are not present. +is only logged if the +.Em log_host +option is enabled. .It -If the +The date does not include the year unless the .Em log_year -option is enabled, -the date will also include the year. +option is enabled. .It Lines that are longer than .Em loglinelen @@ -5943,7 +6002,7 @@ that you expect. .Ss I/O log format For both local and remote I/O logs, each log is stored in a separate directory that contains the following files: -.Bl -tag -width 8n +.Bl -tag -width "log.json" .It Pa log A text file containing information about the command. The first line consists of the following colon-delimited fields: @@ -5970,7 +6029,7 @@ in preference to the .Pa log file if it exists. The file may contain the following elements: -.Bl -tag -width 8n +.Bl -tag -width 4n .It timestamp A JSON object containing time the command was run. It consists of two values, @@ -6690,7 +6749,7 @@ Common programs that permit shell escapes include shells (obviously), editors, paginators, mail, and terminal programs. .Pp There are four basic approaches to this problem: -.Bl -tag -width 8n +.Bl -tag -width "intercept" .It restrict Avoid giving users access to commands that allow the user to run arbitrary commands. @@ -7136,7 +7195,7 @@ and higher. The following subsystems are used by the .Nm plugin: -.Bl -tag -width 8n +.Bl -tag -width "defaults" .It Em alias .Em User_Alias , .Em Runas_Alias , @@ -7191,7 +7250,7 @@ utility functions .Pp For example: .Bd -literal -Debug sudoers.so @log_dir@/sudoers_debug match@info,nss@info +Debug @sudoers_plugin@ @log_dir@/sudoers_debug match@info,nss@info .Ed .Pp For more information, see the diff --git a/docs/sudoreplay.man.in b/docs/sudoreplay.man.in index 34d4f30134..73dbd52f9e 100644 --- a/docs/sudoreplay.man.in +++ b/docs/sudoreplay.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2009-2022 Todd C. Miller +.\" Copyright (c) 2009-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -16,7 +16,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.TH "SUDOREPLAY" "@mansectsu@" "September 13, 2022" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" +.TH "SUDOREPLAY" "@mansectsu@" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" .nh .if n .ad l .SH "NAME" @@ -122,13 +122,13 @@ When the session has finished, the terminal is restored to its original size if it was changed during playback. .PP The options are as follows: -.TP 12n +.TP 8n \fB\-d\fR \fIdir\fR, \fB\--directory\fR=\fIdir\fR Store session logs in \fIdir\fR instead of the default, \fI@iolog_dir@\fR. -.TP 12n +.TP 8n \fB\-f\fR \fIfilter\fR, \fB\--filter\fR=\fIfilter\fR Select which I/O type(s) to display. By default, @@ -143,7 +143,7 @@ argument is a comma-separated list, consisting of one or more of following: \fIttyin\fR, and \fIttyout\fR. -.TP 12n +.TP 8n \fB\-F\fR, \fB\--follow\fR Enable \(lqfollow mode\(rq. @@ -158,10 +158,10 @@ have been cleared on the session's timing file. Versions of \fBsudo\fR prior to 1.9.1 do not clear the write bits upon completion. -.TP 12n +.TP 8n \fB\-h\fR, \fB\--help\fR Display a short help message to the standard output and exit. -.TP 12n +.TP 8n \fB\-l\fR, \fB\--list\fR [\fIsearch expression\fR] Enable \(lqlist mode\(rq. @@ -170,12 +170,21 @@ In this mode, will list available sessions in a format similar to the \fBsudo\fR log file format, sorted by file name (or sequence number). +Any control characters present in the log data are formated in octal +with a leading +\(oq#\(cq +character. +For example, a horizontal tab is displayed as +\(oq#011\(cq +and an embedded carriage return is displayed as +\(oq#015\(cq. +.sp If a \fIsearch expression\fR is specified, it will be used to restrict the IDs that are displayed. An expression is composed of the following predicates: .PP -.RS 12n +.RS 8n .PD 0 .TP 8n command \fIpattern\fR @@ -214,7 +223,7 @@ Evaluates to true if the command was run as the specified By default, \fBsudo\fR runs commands as the -\fIroot\fR +\fBroot\fR user. .TP 8n todate \fIdate\fR @@ -258,7 +267,7 @@ operator is optional, adjacent predicates have an implied unless separated by an \fIor\fR. .RE -.TP 12n +.TP 8n \fB\-m\fR, \fB\--max-wait\fR \fImax_wait\fR Specify an upper bound on how long to wait between key presses or output data. By default, @@ -277,16 +286,16 @@ The value may be specified as a floating point number, e.g., A \fImax_wait\fR of zero or less will eliminate the pauses entirely. -.TP 12n +.TP 8n \fB\-n\fR, \fB\--non-interactive\fR Do not prompt for user input or attempt to re-size the terminal. The session is written to the standard output, not directly to the user's terminal. -.TP 12n +.TP 8n \fB\-R\fR, \fB\--no-resize\fR Do not attempt to re-size the terminal to match the terminal size of the session. -.TP 12n +.TP 8n \fB\-S\fR, \fB\--suspend-wait\fR Wait while the command was suspended. By default, @@ -298,7 +307,7 @@ If the option is specified, \fBsudoreplay\fR will wait instead. -.TP 12n +.TP 8n \fB\-s\fR, \fB\--speed\fR \fIspeed_factor\fR This option causes \fBsudoreplay\fR @@ -314,7 +323,7 @@ would make the output twice as fast whereas a of \fI.5\fR would make the output twice as slow. -.TP 12n +.TP 8n \fB\-V\fR, \fB\--version\fR Print the \fBsudoreplay\fR diff --git a/docs/sudoreplay.mdoc.in b/docs/sudoreplay.mdoc.in index 518e345512..005cf1f7fe 100644 --- a/docs/sudoreplay.mdoc.in +++ b/docs/sudoreplay.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 2009-2022 Todd C. Miller +.\" Copyright (c) 2009-2023 Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd September 13, 2022 +.Dd January 16, 2023 .Dt SUDOREPLAY @mansectsu@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -118,7 +118,7 @@ When the session has finished, the terminal is restored to its original size if it was changed during playback. .Pp The options are as follows: -.Bl -tag -width Fl +.Bl -tag -width Ds .It Fl d Ar dir , Fl -directory Ns = Ns Ar dir Store session logs in .Ar dir @@ -162,6 +162,16 @@ In this mode, will list available sessions in a format similar to the .Nm sudo log file format, sorted by file name (or sequence number). +Any control characters present in the log data are formatted in octal +with a leading +.Ql # +character. +For example, a horizontal tab is displayed as +.Ql #011 +and an embedded carriage return is displayed as +.Ql #015 . +Space characters in the command name and arguments are also formatted in octal. +.Pp If a .Ar search expression is specified, it will be used to restrict the IDs that are displayed. @@ -197,7 +207,7 @@ Evaluates to true if the command was run as the specified By default, .Nm sudo runs commands as the -.Em root +.Sy root user. .It todate Ar date Evaluates to true if the command was run on or prior to diff --git a/docs/visudo.man.in b/docs/visudo.man.in index d239808afb..3867838748 100644 --- a/docs/visudo.man.in +++ b/docs/visudo.man.in @@ -2,7 +2,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 1996,1998-2005, 2007-2022 +.\" Copyright (c) 1996,1998-2005, 2007-2023 .\" Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -21,7 +21,7 @@ .\" Agency (DARPA) and Air Force Research Laboratory, Air Force .\" Materiel Command, USAF, under agreement number F39502-99-1-0512. .\" -.TH "VISUDO" "@mansectsu@" "October 4, 2022" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" +.TH "VISUDO" "@mansectsu@" "January 16, 2023" "Sudo @PACKAGE_VERSION@" "System Manager's Manual" .nh .if n .ad l .SH "NAME" @@ -84,7 +84,7 @@ There are two settings that determine which editor \fBvisudo\fR will run. -.TP 10n +.TP 12n editor A colon (\(oq:\&\(cq) @@ -116,7 +116,7 @@ The default editor path is which can be set at compile time via the \fR--with-editor\fR configure option. -.TP 10n +.TP 12n env_editor If set, \fBvisudo\fR @@ -165,7 +165,7 @@ which can be set at compile time via the configure option. .PP The options are as follows: -.TP 12n +.TP 8n \fB\-c\fR, \fB\--check\fR Enable \fIcheck-only\fR @@ -194,7 +194,7 @@ will exit with a value of 0. If an error is encountered, \fBvisudo\fR will exit with a value of 1. -.TP 12n +.TP 8n \fB\-f\fR \fIsudoers\fR, \fB\--file\fR=\fIsudoers\fR Specify an alternate \fIsudoers\fR @@ -204,10 +204,10 @@ As of version 1.8.27, the path can be specified without using the \fB\-f\fR option. -.TP 12n +.TP 8n \fB\-h\fR, \fB\--help\fR Display a short help message to the standard output and exit. -.TP 12n +.TP 8n \fB\-I\fR, \fB\--no-includes\fR Disable the editing of include files unless there is a pre-existing syntax error. @@ -225,7 +225,7 @@ Files included via or \fI#includedir\fR are never edited unless they contain a syntax error. -.TP 12n +.TP 8n \fB\-O\fR, \fB\--owner\fR Enforce the default ownership (user and group) of the \fIsudoers\fR @@ -237,7 +237,7 @@ an error will be reported if the owner is incorrect. This option is enabled by default if the \fIsudoers\fR file was not specified. -.TP 12n +.TP 8n \fB\-P\fR, \fB\--perms\fR Enforce the default permissions (mode) of the \fIsudoers\fR @@ -249,7 +249,7 @@ an error will be reported if the file permissions are incorrect. This option is enabled by default if the \fIsudoers\fR file was not specified. -.TP 12n +.TP 8n \fB\-q\fR, \fB\--quiet\fR Enable \fIquiet\fR @@ -259,7 +259,7 @@ This option is only useful when combined with the \fB\-c\fR option. -.TP 12n +.TP 8n \fB\-s\fR, \fB\--strict\fR Enable \fIstrict\fR @@ -275,7 +275,7 @@ name or user name that consists solely of uppercase letters, digits, and the underscore (\(oq_\(cq) character. -.TP 12n +.TP 8n \fB\-V\fR, \fB\--version\fR Print the \fBvisudo\fR @@ -323,37 +323,37 @@ plugin to override the default path name, user-ID, group-ID, and file mode. These arguments, if present, should be listed after the path to the plugin (i.e., after -\fIsudoers.so\fR). +\fI@sudoers_plugin@\fR). Multiple arguments may be specified, separated by white space. For example: .nf .sp .RS 4n -Plugin sudoers_policy sudoers.so sudoers_mode=0400 +Plugin sudoers_policy @sudoers_plugin@ sudoers_mode=0400 .RE .fi .PP The following arguments are supported: -.TP 10n +.TP 6n sudoers_file=pathname The \fIsudoers_file\fR argument can be used to override the default path to the \fIsudoers\fR file. -.TP 10n +.TP 6n sudoers_uid=user-ID The \fIsudoers_uid\fR argument can be used to override the default owner of the sudoers file. It should be specified as a numeric user-ID. -.TP 10n +.TP 6n sudoers_gid=group-ID The \fIsudoers_gid\fR argument can be used to override the default group of the sudoers file. It must be specified as a numeric group-ID (not a group name). -.TP 10n +.TP 6n sudoers_mode=mode The \fIsudoers_mode\fR diff --git a/docs/visudo.mdoc.in b/docs/visudo.mdoc.in index 33ebfaa53b..99ceb9bd33 100644 --- a/docs/visudo.mdoc.in +++ b/docs/visudo.mdoc.in @@ -1,7 +1,7 @@ .\" .\" SPDX-License-Identifier: ISC .\" -.\" Copyright (c) 1996,1998-2005, 2007-2022 +.\" Copyright (c) 1996,1998-2005, 2007-2023 .\" Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any @@ -20,7 +20,7 @@ .\" Agency (DARPA) and Air Force Research Laboratory, Air Force .\" Materiel Command, USAF, under agreement number F39502-99-1-0512. .\" -.Dd October 4, 2022 +.Dd January 16, 2023 .Dt VISUDO @mansectsu@ .Os Sudo @PACKAGE_VERSION@ .Sh NAME @@ -82,7 +82,7 @@ There are two settings that determine which editor .Nm visudo will run. -.Bl -tag -width 8n +.Bl -tag -width "env_editor" .It editor A colon .Pq Ql :\& @@ -163,7 +163,7 @@ configure option. .El .Pp The options are as follows: -.Bl -tag -width Fl +.Bl -tag -width Ds .It Fl c , -check Enable .Em check-only @@ -314,15 +314,15 @@ plugin to override the default path name, user-ID, group-ID, and file mode. These arguments, if present, should be listed after the path to the plugin (i.e., after -.Pa sudoers.so ) . +.Pa @sudoers_plugin@ ) . Multiple arguments may be specified, separated by white space. For example: .Bd -literal -offset 4n -Plugin sudoers_policy sudoers.so sudoers_mode=0400 +Plugin sudoers_policy @sudoers_plugin@ sudoers_mode=0400 .Ed .Pp The following arguments are supported: -.Bl -tag -width 8n +.Bl -tag -width 4n .It sudoers_file=pathname The .Em sudoers_file diff --git a/etc/codespell.exclude b/etc/codespell.exclude index ec46ef6ae3..2c1f54ff88 100644 --- a/etc/codespell.exclude +++ b/etc/codespell.exclude @@ -31,4 +31,4 @@ .Nd edit the sudoers file * If path doesn't end in /, return true iff cmnd & path name the same inode; * Tim Fraser - echo ".Nd sudo" >> conftest + echo ".Nd sudo" >> conftest diff --git a/etc/sudo.pp b/etc/sudo.pp index 97d82856c9..4dd5e7c198 100644 --- a/etc/sudo.pp +++ b/etc/sudo.pp @@ -37,16 +37,6 @@ %if [macos] # System Integrity Protection on macOS won't allow us to write # directly to /etc or /var. We must install in /private instead. - case "$sudoersdir" in - /etc|/etc/*) - mkdir -p ${pp_destdir}/private - chmod 755 ${pp_destdir}/private - if test -d ${pp_destdir}/etc; then - mv ${pp_destdir}/etc ${pp_destdir}/private/etc - fi - sudoersdir="/private${sudoersdir}" - ;; - esac case "$sysconfdir" in /etc|/etc/*) mkdir -p ${pp_destdir}/private @@ -91,12 +81,12 @@ pp_rpm_requires="audit-libs >= $linux_audit" fi # The package manager will handle an existing sudoers file - rm -f ${pp_destdir}$sudoersdir/sudoers.dist + rm -f ${pp_destdir}${sysconfdir}/sudoers.dist %else # For all but RPM and Debian we copy sudoers in a post-install script. - rm -f ${pp_destdir}$sudoersdir/sudoers + rm -f ${pp_destdir}${sysconfdir}/sudoers # We install sudo.conf from the example dir in a post-install script. - rm -f ${pp_destdir}$sysconfdir/sudo.conf + rm -f ${pp_destdir}${sysconfdir}/sudo.conf %endif # Stash original docdir and exampledir @@ -139,7 +129,7 @@ printf "$name ($pp_deb_version-$pp_deb_release) admin; urgency=low\n\n * see upstream changelog\n\n -- $pp_deb_maintainer `date '+%a, %d %b %Y %T %z'`\n" > ${pp_wrkdir}/${name}/usr/share/doc/${name}/changelog.Debian chmod 644 ${pp_wrkdir}/${name}/usr/share/doc/${name}/changelog.Debian gzip -9f ${pp_wrkdir}/${name}/usr/share/doc/${name}/changelog.Debian - # Create lintian override file + # Create lintian override file, must be tab indented for "<<-" mkdir -p ${pp_wrkdir}/${name}/usr/share/lintian/overrides cat >${pp_wrkdir}/${name}/usr/share/lintian/overrides/${name} <<-EOF # The sudo binary must be setuid root @@ -175,30 +165,14 @@ esac # Uncomment some Defaults in sudoers - # Note that the order must match that of sudoers. case "$pp_rpm_distro" in centos*|rhel*|f[0-9]*) - chmod u+w ${pp_destdir}${sudoersdir}/sudoers - /bin/ed - ${pp_destdir}${sudoersdir}/sudoers <<-'EOF' - /Locale settings/+1,s/^# // - /Desktop path settings/+1,s/^# // - /allow members of group wheel to execute any command/+1,s/^# // - w - q - EOF - chmod u-w ${pp_destdir}${sudoersdir}/sudoers + sed -e '/Locale settings/{ N;s/\(\n\)# /\1/; }' -e '/Desktop path settings/{ N;s/\(\n\)# /\1/; }' -e '/allow members of group wheel to execute any command/{ N;s/\(\n\)# /\1/; }' ${pp_destdir}${sysconfdir}/sudoers > ${pp_destdir}${sysconfdir}/sudoers.$$ + mv -f ${pp_destdir}${sysconfdir}/sudoers.$$ ${pp_destdir}${sysconfdir}/sudoers ;; sles*) - chmod u+w ${pp_destdir}${sudoersdir}/sudoers - /bin/ed - ${pp_destdir}${sudoersdir}/sudoers <<-'EOF' - /Locale settings/+1,s/^# // - /ConsoleKit session/+1,s/^# // - /allow any user to run sudo if they know the password/+2,s/^# // - /allow any user to run sudo if they know the password/+3,s/^# // - w - q - EOF - chmod u-w ${pp_destdir}${sudoersdir}/sudoers + sed -e '/Locale settings/{ N;s/\(\n\)# /\1/; }' -e '/ConsoleKit session/{ N;s/\(\n\)# /\1/; }' -e '/allow any user to run sudo if they know the password/{ N;N;N;s/\(\n\)# /\1/g; }' ${pp_destdir}${sysconfdir}/sudoers > ${pp_destdir}${sysconfdir}/sudoers.$$ + mv -f ${pp_destdir}${sysconfdir}/sudoers.$$ ${pp_destdir}${sysconfdir}/sudoers ;; esac @@ -277,19 +251,10 @@ %if [deb] # Uncomment some Defaults and the %sudo rule in sudoers - # Note that the order must match that of sudoers and be tab-indented. - chmod u+w ${pp_destdir}${sudoersdir}/sudoers - /bin/ed - ${pp_destdir}${sudoersdir}/sudoers <<-'EOF' - /Locale settings/+1,s/^# // - /X11 resource/+1,s/^# // - /^# \%sudo/,s/^# // - /^# Defaults secure_path/,s/^# // - /^# Defaults mail_badpass/,s/^# // - w - q - EOF - chmod u-w ${pp_destdir}${sudoersdir}/sudoers + sed -e '/Locale settings/{ N;s/\(\n\)# /\1/; }' -e '/X11 resource/{ N;s/\(\n\)# /\1/; }' -e 's/^# \(Defaults secure_path\)/\1/' -e 's/^# \(Defaults mail_badpass\)/\1/' -e 's/^# \(\%sudo\)/\1/' ${pp_destdir}${sysconfdir}/sudoers > ${pp_destdir}${sysconfdir}/sudoers.$$ + mv -f ${pp_destdir}${sysconfdir}/sudoers.$$ ${pp_destdir}${sysconfdir}/sudoers mkdir -p ${pp_destdir}/etc/pam.d + # Create Debian PAM file, must be tab indented for "<<-" cat > ${pp_destdir}/etc/pam.d/sudo <<-EOF #%PAM-1.0 @@ -340,7 +305,7 @@ %endif %depend [deb] - libc6, libpam0g, libpam-modules, zlib1g, libselinux1 + libc6, libpam0g, libpam-modules, zlib1g, libapparmor1 %fixup [deb] # Add Conflicts, Replaces headers and add libldap dependency as needed. @@ -366,6 +331,7 @@ echo "Bugs: https://bugzilla.sudo.ws" >> %{pp_wrkdir}/%{name}/DEBIAN/control %fixup [rpm] + # Must be tab indented for "<<-". cat > %{pp_wrkdir}/${name}.spec.sed <<-'EOF' /^%files/ { i\ @@ -401,7 +367,7 @@ $libexecdir/sudo/sesh 0755 optional,ignore-others $libexecdir/sudo/python* optional,ignore,ignore-others $libexecdir/sudo/* $shlib_mode optional - $sudoersdir/sudoers.d/ 0750 $sudoers_uid:$sudoers_gid + $sysconfdir/sudoers.d/ 0750 $sudoers_uid:$sudoers_gid $rundir/ 0711 root: $vardir/ 0711 root: ignore-others $vardir/lectured/ 0700 root: @@ -411,8 +377,8 @@ $docdir/LICENSE.md ignore,ignore-others $docdir/ChangeLog ignore,ignore-others %endif -%if X"$exampledir" != X"$docdir/examples" $exampledir/ 0755 ignore-others +%if X"$exampledir" != X"$docdir/examples" $exampledir/* 0644 %endif $exampledir/sudo_logsrv* optional,ignore,ignore-others @@ -422,11 +388,12 @@ $localedir/*/LC_MESSAGES/* 0644 optional /etc/pam.d/* 0644 volatile,optional %if [rpm,deb] - $sudoersdir/sudoers $sudoers_mode $sudoers_uid:$sudoers_gid volatile + $sysconfdir/sudoers $sudoers_mode $sudoers_uid:$sudoers_gid volatile $sysconfdir/sudo.conf 0644 root: volatile %else - $sudoersdir/sudoers.dist $sudoers_mode $sudoers_uid:$sudoers_gid + $sysconfdir/sudoers.dist $sudoers_mode $sudoers_uid:$sudoers_gid %endif + $sysconfdir/sudo_logsrvd.conf optional,ignore,ignore-others %if X"$aix_freeware" = X"true" # Links for binaries from /opt/freeware to /usr /usr/bin/cvtsudoers 0755 root: symlink $bindir/cvtsudoers @@ -474,19 +441,17 @@ %post [!rpm,deb] # Don't overwrite existing sudoers or sudo.conf files %if [solaris] - sudoersdir=${PKG_INSTALL_ROOT}%{sudoersdir} sysconfdir=${PKG_INSTALL_ROOT}%{sysconfdir} exampledir=${PKG_INSTALL_ROOT}%{exampledir} %else - sudoersdir=%{sudoersdir} sysconfdir=%{sysconfdir} exampledir=%{exampledir} %endif - if test ! -r $sudoersdir/sudoers; then - cp $sudoersdir/sudoers.dist $sudoersdir/sudoers - chmod %{sudoers_mode} $sudoersdir/sudoers - chown %{sudoers_uid} $sudoersdir/sudoers - chgrp %{sudoers_gid} $sudoersdir/sudoers + if test ! -r $sysconfdir/sudoers; then + cp $sysconfdir/sudoers.dist $sysconfdir/sudoers + chmod %{sudoers_mode} $sysconfdir/sudoers + chown %{sudoers_uid} $sysconfdir/sudoers + chgrp %{sudoers_gid} $sysconfdir/sudoers fi if test ! -r $sysconfdir/sudo.conf; then cp $exampledir/sudo.conf $sysconfdir/sudo.conf @@ -499,7 +464,7 @@ # dpkg-deb does not maintain the mode on the sudoers file, and # installs it 0640 when sudo requires 0440 - chmod %{sudoers_mode} %{sudoersdir}/sudoers + chmod %{sudoers_mode} %{sysconfdir}/sudoers # create symlink to ease transition to new path for ldap config # if old config file exists and new one doesn't @@ -543,6 +508,7 @@ %post [rpm,deb] # Create /usr/lib/tmpfiles.d/sudo.conf if systemd is configured. + # Must be tab indented for "<<-". if [ -f /usr/lib/tmpfiles.d/systemd.conf ]; then cat > /usr/lib/tmpfiles.d/sudo.conf <<-EOF # Create an empty sudo time stamp directory on OSes using systemd. diff --git a/examples/sudo.conf.in b/examples/sudo.conf.in index 415106a958..2187457e81 100644 --- a/examples/sudo.conf.in +++ b/examples/sudo.conf.in @@ -11,9 +11,9 @@ # The plugin_options are optional. # # The sudoers plugin is used by default if no Plugin lines are present. -#Plugin sudoers_policy sudoers.so -#Plugin sudoers_io sudoers.so -#Plugin sudoers_audit sudoers.so +#Plugin sudoers_policy @sudoers_plugin@ +#Plugin sudoers_io @sudoers_plugin@ +#Plugin sudoers_audit @sudoers_plugin@ # # Sudo askpass: @@ -51,7 +51,7 @@ # The compiled-in value is usually sufficient and should only be changed # if you rename or move the sudo_intercept.so file. # -#Path intercept @plugindir@/sudo_intercept.so +#Path intercept @intercept_file@ # # Sudo noexec: @@ -65,7 +65,7 @@ # The compiled-in value is usually sufficient and should only be changed # if you rename or move the sudo_noexec.so file. # -#Path noexec @plugindir@/sudo_noexec.so +#Path noexec @noexec_file@ # # Sudo plugin directory: @@ -76,14 +76,6 @@ # #Path plugin_dir @plugindir@ -# -# Sudo developer mode: -# Set developer_mode true|false -# -# Allow loading of plugins that are owned by non-root or are writable -# by "group" or "other". Should only be used during plugin development. -#Set developer_mode true - # # Core dumps: # Set disable_coredump true|false diff --git a/include/sudo_compat.h b/include/sudo_compat.h index 63dd9916c8..f5639dfc8b 100644 --- a/include/sudo_compat.h +++ b/include/sudo_compat.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 1996, 1998-2005, 2008, 2009-2022 + * Copyright (c) 1996, 1998-2005, 2008, 2009-2023 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any @@ -37,12 +37,6 @@ * Macros and functions that may be missing on some operating systems. */ -#ifdef HAVE_FALLTHROUGH_ATTRIBUTE -# define FALLTHROUGH __attribute__((__fallthrough__)) -#else -# define FALLTHROUGH do { } while (0) -#endif - /* * Given the pointer x to the member m of the struct s, return * a pointer to the containing structure. @@ -62,26 +56,6 @@ # endif #endif -#ifndef CMSG_ALIGN -# define CMSG_ALIGN(p) \ - (((size_t)(p) + sizeof(size_t) - 1) & ~(sizeof(size_t) - 1)) -#endif - -/* Length of the contents of a control message of length len. */ -#ifndef CMSG_LEN -# define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len)) -#endif - -/* Length of the space taken up by a padded control message of length len. */ -#ifndef CMSG_SPACE -# define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len)) -#endif - -/* Given a pointer to struct cmsghdr, return a pointer to data. */ -#ifndef CMSG_DATA -# define CMSG_DATA(cmsg) ((unsigned char *)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))) -#endif - /* * Some systems lack full limit definitions. */ @@ -231,10 +205,10 @@ extern int errno; #endif /* !HAVE_DECL_ERRNO */ /* Not all systems define NSIG in signal.h */ -#if !defined(NSIG) -# if defined(_NSIG) +#if !defined(HAVE_DECL_NSIG) || !HAVE_DECL_NSIG +# if defined(HAVE_DECL__NSIG) && HAVE_DECL__NSIG # define NSIG _NSIG -# elif defined(__NSIG) +# elif defined(HAVE_DECL___NSIG) && HAVE_DECL___NSIG # define NSIG __NSIG # else # define NSIG 64 diff --git a/include/sudo_eventlog.h b/include/sudo_eventlog.h index b4552f2e6f..0e30ec495c 100644 --- a/include/sudo_eventlog.h +++ b/include/sudo_eventlog.h @@ -47,9 +47,10 @@ enum eventlog_format { }; /* Eventlog flag values. */ -#define EVLOG_RAW 0x01 -#define EVLOG_MAIL 0x02 -#define EVLOG_MAIL_ONLY 0x04 +#define EVLOG_RAW 0x01 /* only include message and errstr */ +#define EVLOG_MAIL 0x02 /* mail the log message too */ +#define EVLOG_MAIL_ONLY 0x04 /* only mail the message, no other logging */ +#define EVLOG_CWD 0x08 /* log cwd if no runcwd and use CWD, not PWD */ /* * Maximum number of characters to log per entry. The syslogger @@ -126,13 +127,16 @@ struct eventlog { /* Callback from eventlog code to write log info */ struct json_container; +struct sudo_lbuf; typedef bool (*eventlog_json_callback_t)(struct json_container *, void *); bool eventlog_accept(const struct eventlog *evlog, int flags, eventlog_json_callback_t info_cb, void *info); bool eventlog_exit(const struct eventlog *evlog, int flags); bool eventlog_alert(const struct eventlog *evlog, int flags, struct timespec *alert_time, const char *reason, const char *errstr); +bool eventlog_mail(const struct eventlog *evlog, int flags, struct timespec *event_time, const char *reason, const char *errstr, char * const extra[]); bool eventlog_reject(const struct eventlog *evlog, int flags, const char *reason, eventlog_json_callback_t info_cb, void *info); bool eventlog_store_json(struct json_container *jsonc, const struct eventlog *evlog); +bool eventlog_store_sudo(int event_type, const struct eventlog *evlog, struct sudo_lbuf *lbuf); size_t eventlog_writeln(FILE *fp, char *line, size_t len, size_t maxlen); void eventlog_free(struct eventlog *evlog); void eventlog_set_type(int type); diff --git a/include/sudo_fatal.h b/include/sudo_fatal.h index 35881257a6..871bfc81c5 100644 --- a/include/sudo_fatal.h +++ b/include/sudo_fatal.h @@ -28,6 +28,11 @@ #include "sudo_plugin.h" /* for conversation function */ +/* No output to debug files when fuzzing. */ +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +# define SUDO_ERROR_WRAP 0 +#endif + /* * We wrap fatal/fatalx and warn/warnx so that the same output can * go to the debug file, if there is one. diff --git a/include/sudo_json.h b/include/sudo_json.h index d40118c185..d7f2f192d7 100644 --- a/include/sudo_json.h +++ b/include/sudo_json.h @@ -63,10 +63,12 @@ struct json_container { bool minimal; bool memfatal; bool need_comma; + bool quiet; }; sudo_dso_public bool sudo_json_init_v1(struct json_container *jsonc, int indent, bool minimal, bool memfatal); -#define sudo_json_init(_a, _b, _c, _d) sudo_json_init_v1((_a), (_b), (_c), (_d)) +sudo_dso_public bool sudo_json_init_v2(struct json_container *jsonc, int indent, bool minimal, bool memfatal, bool quiet); +#define sudo_json_init(_a, _b, _c, _d, _e) sudo_json_init_v2((_a), (_b), (_c), (_d), (_e)) sudo_dso_public void sudo_json_free_v1(struct json_container *jsonc); #define sudo_json_free(_a) sudo_json_free_v1((_a)) diff --git a/include/sudo_lbuf.h b/include/sudo_lbuf.h index c12be48bb4..29090cb8d5 100644 --- a/include/sudo_lbuf.h +++ b/include/sudo_lbuf.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2007, 2010, 2011, 2013-2015 + * Copyright (c) 2007, 2010, 2011, 2013-2015, 2023 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any @@ -27,18 +27,24 @@ struct sudo_lbuf { int (*output)(const char *); char *buf; const char *continuation; - int indent; - int len; - int size; - short cols; - short error; + unsigned int indent; + unsigned int len; + unsigned int size; + unsigned short cols; + unsigned short error; }; typedef int (*sudo_lbuf_output_t)(const char *); +/* Flags for sudo_lbuf_append_esc() */ +#define LBUF_ESC_CNTRL 0x01 +#define LBUF_ESC_BLANK 0x02 +#define LBUF_ESC_QUOTE 0x04 + sudo_dso_public void sudo_lbuf_init_v1(struct sudo_lbuf *lbuf, sudo_lbuf_output_t output, int indent, const char *continuation, int cols); sudo_dso_public void sudo_lbuf_destroy_v1(struct sudo_lbuf *lbuf); sudo_dso_public bool sudo_lbuf_append_v1(struct sudo_lbuf *lbuf, const char *fmt, ...) sudo_printflike(2, 3); +sudo_dso_public bool sudo_lbuf_append_esc_v1(struct sudo_lbuf *lbuf, int flags, const char *fmt, ...) sudo_printflike(3, 4); sudo_dso_public bool sudo_lbuf_append_quoted_v1(struct sudo_lbuf *lbuf, const char *set, const char *fmt, ...) sudo_printflike(3, 4); sudo_dso_public void sudo_lbuf_print_v1(struct sudo_lbuf *lbuf); sudo_dso_public bool sudo_lbuf_error_v1(struct sudo_lbuf *lbuf); @@ -47,6 +53,7 @@ sudo_dso_public void sudo_lbuf_clearerr_v1(struct sudo_lbuf *lbuf); #define sudo_lbuf_init(_a, _b, _c, _d, _e) sudo_lbuf_init_v1((_a), (_b), (_c), (_d), (_e)) #define sudo_lbuf_destroy(_a) sudo_lbuf_destroy_v1((_a)) #define sudo_lbuf_append sudo_lbuf_append_v1 +#define sudo_lbuf_append_esc sudo_lbuf_append_esc_v1 #define sudo_lbuf_append_quoted sudo_lbuf_append_quoted_v1 #define sudo_lbuf_print(_a) sudo_lbuf_print_v1((_a)) #define sudo_lbuf_error(_a) sudo_lbuf_error_v1((_a)) diff --git a/include/sudo_plugin.h b/include/sudo_plugin.h index 261763833e..e363637a2d 100644 --- a/include/sudo_plugin.h +++ b/include/sudo_plugin.h @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2009-2022 Todd C. Miller + * Copyright (c) 2009-2023 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -21,7 +21,7 @@ /* API version major/minor */ #define SUDO_API_VERSION_MAJOR 1 -#define SUDO_API_VERSION_MINOR 20 +#define SUDO_API_VERSION_MINOR 21 #define SUDO_API_MKVERSION(x, y) (((x) << 16) | (y)) #define SUDO_API_VERSION SUDO_API_MKVERSION(SUDO_API_VERSION_MAJOR, SUDO_API_VERSION_MINOR) diff --git a/include/sudo_util.h b/include/sudo_util.h index 8dc2744fed..100d5eb8cf 100644 --- a/include/sudo_util.h +++ b/include/sudo_util.h @@ -184,6 +184,9 @@ # define ignore_result(x) (void)(x) #endif +/* Forward struct declarations. */ +struct stat; + /* aix.c */ sudo_dso_public int aix_getauthregistry_v1(char *user, char *saved_registry); #define aix_getauthregistry(_a, _b) aix_getauthregistry_v1((_a), (_b)) @@ -219,6 +222,10 @@ sudo_dso_public int sudo_parse_gids_v1(const char *gidstr, const gid_t *basegid, sudo_dso_public int sudo_getgrouplist2_v1(const char *name, gid_t basegid, GETGROUPS_T **groupsp, int *ngroupsp); #define sudo_getgrouplist2(_a, _b, _c, _d) sudo_getgrouplist2_v1((_a), (_b), (_c), (_d)) +/* hexchar.c */ +sudo_dso_public int sudo_hexchar_v1(const char *s); +#define sudo_hexchar(_a) sudo_hexchar_v1(_a) + /* key_val.c */ sudo_dso_public char *sudo_new_key_val_v1(const char *key, const char *value); #define sudo_new_key_val(_a, _b) sudo_new_key_val_v1((_a), (_b)) @@ -296,7 +303,6 @@ sudo_dso_public unsigned int sudo_pow2_roundup_v1(unsigned int len); #define SUDO_PATH_WRONG_OWNER -3 #define SUDO_PATH_WORLD_WRITABLE -4 #define SUDO_PATH_GROUP_WRITABLE -5 -struct stat; sudo_dso_public int sudo_secure_dir_v1(const char *path, uid_t uid, gid_t gid, struct stat *sb); #define sudo_secure_dir(_a, _b, _c, _d) sudo_secure_dir_v1((_a), (_b), (_c), (_d)) sudo_dso_public int sudo_secure_file_v1(const char *path, uid_t uid, gid_t gid, struct stat *sb); diff --git a/lib/eventlog/Makefile.in b/lib/eventlog/Makefile.in index 45b9ad2e9f..190470a823 100644 --- a/lib/eventlog/Makefile.in +++ b/lib/eventlog/Makefile.in @@ -33,7 +33,7 @@ incdir = $(top_srcdir)/include # Compiler & tools to use CC = @CC@ LIBTOOL = @LIBTOOL@ -GREP = @GREP@ +EGREP = @EGREP@ # C preprocessor flags CPPFLAGS = -I$(incdir) -I$(top_builddir) -I$(srcdir) -I$(top_srcdir) @CPPFLAGS@ @@ -152,11 +152,9 @@ check-fuzzer: check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ diff --git a/lib/eventlog/eventlog.c b/lib/eventlog/eventlog.c index 4621487d6f..cb60541325 100644 --- a/lib/eventlog/eventlog.c +++ b/lib/eventlog/eventlog.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 1994-1996, 1998-2021 Todd C. Miller + * Copyright (c) 1994-1996, 1998-2023 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -51,24 +51,13 @@ #include "sudo_compat.h" #include "sudo_debug.h" #include "sudo_eventlog.h" +#include "sudo_lbuf.h" #include "sudo_fatal.h" #include "sudo_gettext.h" #include "sudo_json.h" #include "sudo_queue.h" #include "sudo_util.h" -#define LL_HOST_STR "HOST=" -#define LL_TTY_STR "TTY=" -#define LL_CHROOT_STR "CHROOT=" -#define LL_CWD_STR "PWD=" -#define LL_USER_STR "USER=" -#define LL_GROUP_STR "GROUP=" -#define LL_ENV_STR "ENV=" -#define LL_CMND_STR "COMMAND=" -#define LL_TSID_STR "TSID=" -#define LL_EXIT_STR "EXIT=" -#define LL_SIGNAL_STR "SIGNAL=" - #define IS_SESSID(s) ( \ isalnum((unsigned char)(s)[0]) && isalnum((unsigned char)(s)[1]) && \ (s)[2] == '/' && \ @@ -88,31 +77,30 @@ struct eventlog_args { /* * Allocate and fill in a new logline. */ -static char * +static bool new_logline(int event_type, int flags, struct eventlog_args *args, - const struct eventlog *evlog) + const struct eventlog *evlog, struct sudo_lbuf *lbuf) { const struct eventlog_config *evl_conf = eventlog_getconf(); - char *line = NULL, *evstr = NULL; const char *iolog_file; const char *tty, *tsid = NULL; char exit_str[(((sizeof(int) * 8) + 2) / 3) + 2]; char sessid[7], offsetstr[64] = ""; - size_t len = 0; int i; debug_decl(new_logline, SUDO_DEBUG_UTIL); if (ISSET(flags, EVLOG_RAW) || evlog == NULL) { if (args->reason != NULL) { if (args->errstr != NULL) { - if (asprintf(&line, "%s: %s", args->reason, args->errstr) == -1) - goto oom; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "%s: %s", + args->reason, args->errstr); } else { - if ((line = strdup(args->reason)) == NULL) - goto oom; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "%s", args->reason); } + if (sudo_lbuf_error(lbuf)) + goto oom; } - debug_return_str(line); + debug_return_bool(true); } /* A TSID may be a sudoers-style session ID or a free-form string. */ @@ -150,169 +138,111 @@ new_logline(int event_type, int flags, struct eventlog_args *args, } /* - * Compute line length + * Format the log line as an lbuf, escaping control characters in + * octal form (#0nn). Error checking (ENOMEM) is done at the end. */ - if (args->reason != NULL) - len += strlen(args->reason) + 3; - if (args->errstr != NULL) - len += strlen(args->errstr) + 3; - if (evlog->submithost != NULL && !evl_conf->omit_hostname) - len += sizeof(LL_HOST_STR) + 2 + strlen(evlog->submithost); - if (tty != NULL) - len += sizeof(LL_TTY_STR) + 2 + strlen(tty); - if (evlog->runchroot != NULL) - len += sizeof(LL_CHROOT_STR) + 2 + strlen(evlog->runchroot); - if (evlog->runcwd != NULL) - len += sizeof(LL_CWD_STR) + 2 + strlen(evlog->runcwd); - if (evlog->runuser != NULL) - len += sizeof(LL_USER_STR) + 2 + strlen(evlog->runuser); - if (evlog->rungroup != NULL) - len += sizeof(LL_GROUP_STR) + 2 + strlen(evlog->rungroup); - if (tsid != NULL) { - len += sizeof(LL_TSID_STR) + 2 + strlen(tsid) + strlen(offsetstr); - } - if (evlog->env_add != NULL) { - size_t evlen = 0; - char * const *ep; - - for (ep = evlog->env_add; *ep != NULL; ep++) - evlen += strlen(*ep) + 1; - if (evlen != 0) { - if ((evstr = malloc(evlen)) == NULL) - goto oom; - ep = evlog->env_add; - if (strlcpy(evstr, *ep, evlen) >= evlen) - goto toobig; - while (*++ep != NULL) { - if (strlcat(evstr, " ", evlen) >= evlen || - strlcat(evstr, *ep, evlen) >= evlen) - goto toobig; - } - len += sizeof(LL_ENV_STR) + 2 + evlen; - } - } - if (evlog->command != NULL) { - len += sizeof(LL_CMND_STR) - 1 + strlen(evlog->command); - if (evlog->argv != NULL && evlog->argv[0] != NULL) { - for (i = 1; evlog->argv[i] != NULL; i++) - len += strlen(evlog->argv[i]) + 1; - } - if (event_type == EVLOG_EXIT) { - if (evlog->signal_name != NULL) - len += sizeof(LL_SIGNAL_STR) + 2 + strlen(evlog->signal_name); - if (evlog->exit_value != -1) { - (void)snprintf(exit_str, sizeof(exit_str), "%d", evlog->exit_value); - len += sizeof(LL_EXIT_STR) + 2 + strlen(exit_str); - } - } - } - - /* - * Allocate and build up the line. - */ - if ((line = malloc(++len)) == NULL) - goto oom; - line[0] = '\0'; - if (args->reason != NULL) { - if (strlcat(line, args->reason, len) >= len || - strlcat(line, args->errstr ? " : " : " ; ", len) >= len) - goto toobig; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "%s%s", args->reason, + args->errstr ? " : " : " ; "); } if (args->errstr != NULL) { - if (strlcat(line, args->errstr, len) >= len || - strlcat(line, " ; ", len) >= len) - goto toobig; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "%s ; ", args->errstr); } if (evlog->submithost != NULL && !evl_conf->omit_hostname) { - if (strlcat(line, LL_HOST_STR, len) >= len || - strlcat(line, evlog->submithost, len) >= len || - strlcat(line, " ; ", len) >= len) - goto toobig; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "HOST=%s ; ", + evlog->submithost); } if (tty != NULL) { - if (strlcat(line, LL_TTY_STR, len) >= len || - strlcat(line, tty, len) >= len || - strlcat(line, " ; ", len) >= len) - goto toobig; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "TTY=%s ; ", tty); } if (evlog->runchroot != NULL) { - if (strlcat(line, LL_CHROOT_STR, len) >= len || - strlcat(line, evlog->runchroot, len) >= len || - strlcat(line, " ; ", len) >= len) - goto toobig; - } - if (evlog->runcwd != NULL) { - if (strlcat(line, LL_CWD_STR, len) >= len || - strlcat(line, evlog->runcwd, len) >= len || - strlcat(line, " ; ", len) >= len) - goto toobig; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "CHROOT=%s ; ", + evlog->runchroot); + } + if (evlog->runcwd != NULL || evlog->cwd != NULL) { + if (ISSET(flags, EVLOG_CWD)) { + /* For sudoreplay -l output format. */ + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "CWD=%s ; ", + evlog->runcwd ? evlog->runcwd : evlog->cwd); + } else if (evlog->runcwd != NULL) { + /* For backwards compatibility with sudo log format. */ + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "PWD=%s ; ", + evlog->runcwd); + } } if (evlog->runuser != NULL) { - if (strlcat(line, LL_USER_STR, len) >= len || - strlcat(line, evlog->runuser, len) >= len || - strlcat(line, " ; ", len) >= len) - goto toobig; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "USER=%s ; ", + evlog->runuser); } if (evlog->rungroup != NULL) { - if (strlcat(line, LL_GROUP_STR, len) >= len || - strlcat(line, evlog->rungroup, len) >= len || - strlcat(line, " ; ", len) >= len) - goto toobig; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "GROUP=%s ; ", + evlog->rungroup); } if (tsid != NULL) { - if (strlcat(line, LL_TSID_STR, len) >= len || - strlcat(line, tsid, len) >= len || - strlcat(line, offsetstr, len) >= len || - strlcat(line, " ; ", len) >= len) - goto toobig; - } - if (evstr != NULL) { - if (strlcat(line, LL_ENV_STR, len) >= len || - strlcat(line, evstr, len) >= len || - strlcat(line, " ; ", len) >= len) - goto toobig; - free(evstr); - evstr = NULL; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "TSID=%s%s ; ", tsid, + offsetstr); + } + if (evlog->env_add != NULL && evlog->env_add[0] != NULL) { + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "ENV=%s", + evlog->env_add[0]); + for (i = 1; evlog->env_add[i] != NULL; i++) { + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, " %s", + evlog->env_add[i]); + } } - if (evlog->command != NULL) { - if (strlcat(line, LL_CMND_STR, len) >= len) - goto toobig; - if (strlcat(line, evlog->command, len) >= len) - goto toobig; - if (evlog->argv != NULL && evlog->argv[0] != NULL) { + if (evlog->command != NULL && evlog->argv != NULL) { + /* Command plus argv. */ + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL|LBUF_ESC_BLANK, + "COMMAND=%s", evlog->command); + if (evlog->argv[0] != NULL) { for (i = 1; evlog->argv[i] != NULL; i++) { - if (strlcat(line, " ", len) >= len || - strlcat(line, evlog->argv[i], len) >= len) - goto toobig; + sudo_lbuf_append(lbuf, " "); + if (strchr(evlog->argv[i], ' ') != NULL) { + /* Wrap args containing spaces in single quotes. */ + sudo_lbuf_append(lbuf, "'"); + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL|LBUF_ESC_QUOTE, + "%s", evlog->argv[i]); + sudo_lbuf_append(lbuf, "'"); + } else { + /* Escape quotes here too for consistency. */ + sudo_lbuf_append_esc(lbuf, + LBUF_ESC_CNTRL|LBUF_ESC_BLANK|LBUF_ESC_QUOTE, + "%s", evlog->argv[i]); + } } } if (event_type == EVLOG_EXIT) { if (evlog->signal_name != NULL) { - if (strlcat(line, " ; ", len) >= len || - strlcat(line, LL_SIGNAL_STR, len) >= len || - strlcat(line, evlog->signal_name, len) >= len) - goto toobig; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, " ; SIGNAL=%s", + evlog->signal_name); } if (evlog->exit_value != -1) { - if (strlcat(line, " ; ", len) >= len || - strlcat(line, LL_EXIT_STR, len) >= len || - strlcat(line, exit_str, len) >= len) - goto toobig; + (void)snprintf(exit_str, sizeof(exit_str), "%d", + evlog->exit_value); + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, " ; EXIT=%s", + exit_str); } } + } else if (evlog->command != NULL) { + /* Just the command, no argv. */ + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "COMMAND=%s", + evlog->command); } - debug_return_str(line); + if (!sudo_lbuf_error(lbuf)) + debug_return_bool(true); oom: - free(evstr); sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory")); - debug_return_str(NULL); -toobig: - free(evstr); - free(line); - sudo_warnx(U_("internal error, %s overflow"), __func__); - debug_return_str(NULL); + debug_return_bool(false); +} + +bool +eventlog_store_sudo(int event_type, const struct eventlog *evlog, + struct sudo_lbuf *lbuf) +{ + struct eventlog_args args = { NULL }; + + return new_logline(event_type, EVLOG_CWD, &args, evlog, lbuf); } static void @@ -349,7 +279,7 @@ closefrom_nodebug(int lowfd) #define MAX_MAILFLAGS 63 -static sudo_noreturn void +sudo_noreturn static void exec_mailer(int pipein) { const struct eventlog_config *evl_conf = eventlog_getconf(); @@ -420,7 +350,7 @@ exec_mailer(int pipein) /* Send a message to the mailto user */ static bool -send_mail(const struct eventlog *evlog, const char *fmt, ...) +send_mail(const struct eventlog *evlog, const char *message) { const struct eventlog_config *evl_conf = eventlog_getconf(); const char *cp, *timefmt = evl_conf->time_fmt; @@ -433,7 +363,6 @@ send_mail(const struct eventlog *evlog, const char *fmt, ...) int fd, len, pfd[2], status; pid_t pid, rv; struct stat sb; - va_list ap; #if defined(HAVE_NL_LANGINFO) && defined(CODESET) char *locale; #endif @@ -607,9 +536,7 @@ send_mail(const struct eventlog *evlog, const char *fmt, ...) } else { (void) fprintf(mail, "\n\n%s : ", timebuf); } - va_start(ap, fmt); - (void) vfprintf(mail, fmt, ap); - va_end(ap); + fputs(message, mail); fputs("\n\n", mail); fclose(mail); @@ -880,7 +807,7 @@ format_json(int event_type, struct eventlog_args *args, debug_return_str(NULL); } - if (!sudo_json_init(&jsonc, 4, compact, false)) + if (!sudo_json_init(&jsonc, 4, compact, false, false)) goto bad; if (!sudo_json_open_object(&jsonc, type_str)) goto bad; @@ -1096,25 +1023,26 @@ do_syslog(int event_type, int flags, struct eventlog_args *args, const struct eventlog *evlog) { const struct eventlog_config *evl_conf = eventlog_getconf(); - char *logline = NULL; + struct sudo_lbuf lbuf; bool ret = false; int pri; debug_decl(do_syslog, SUDO_DEBUG_UTIL); + sudo_lbuf_init(&lbuf, NULL, 0, NULL, 0); + /* Sudo format logs and mailed logs use the same log line format. */ if (evl_conf->format == EVLOG_SUDO || ISSET(flags, EVLOG_MAIL)) { - logline = new_logline(event_type, flags, args, evlog); - if (logline == NULL) - debug_return_bool(false); + if (!new_logline(event_type, flags, args, evlog, &lbuf)) + goto done; if (ISSET(flags, EVLOG_MAIL)) { - if (!send_mail(evlog, "%s", logline)) { + if (!send_mail(evlog, lbuf.buf)) { sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO, "unable to mail log line"); } if (ISSET(flags, EVLOG_MAIL_ONLY)) { - free(logline); - debug_return_bool(true); + ret = true; + goto done; } } } @@ -1138,13 +1066,13 @@ do_syslog(int event_type, int flags, struct eventlog_args *args, } if (pri == -1) { /* syslog disabled for this message type */ - free(logline); - debug_return_bool(true); + ret = true; + goto done; } switch (evl_conf->format) { case EVLOG_SUDO: - ret = do_syslog_sudo(pri, logline, evlog); + ret = do_syslog_sudo(pri, lbuf.buf, evlog); break; case EVLOG_JSON: ret = do_syslog_json(pri, event_type, args, evlog); @@ -1154,8 +1082,8 @@ do_syslog(int event_type, int flags, struct eventlog_args *args, "unexpected eventlog format %d", evl_conf->format); break; } - free(logline); - +done: + sudo_lbuf_destroy(&lbuf); debug_return_bool(ret); } @@ -1281,31 +1209,32 @@ do_logfile(int event_type, int flags, struct eventlog_args *args, const struct eventlog *evlog) { const struct eventlog_config *evl_conf = eventlog_getconf(); + struct sudo_lbuf lbuf; bool ret = false; - char *logline = NULL; debug_decl(do_logfile, SUDO_DEBUG_UTIL); + sudo_lbuf_init(&lbuf, NULL, 0, NULL, 0); + /* Sudo format logs and mailed logs use the same log line format. */ if (evl_conf->format == EVLOG_SUDO || ISSET(flags, EVLOG_MAIL)) { - logline = new_logline(event_type, flags, args, evlog); - if (logline == NULL) - debug_return_bool(false); + if (!new_logline(event_type, flags, args, evlog, &lbuf)) + goto done; if (ISSET(flags, EVLOG_MAIL)) { - if (!send_mail(evlog, "%s", logline)) { + if (!send_mail(evlog, lbuf.buf)) { sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO, "unable to mail log line"); } if (ISSET(flags, EVLOG_MAIL_ONLY)) { - free(logline); - debug_return_bool(true); + ret = true; + goto done; } } } switch (evl_conf->format) { case EVLOG_SUDO: - ret = do_logfile_sudo(logline ? logline : args->reason, evlog, + ret = do_logfile_sudo(lbuf.buf ? lbuf.buf : args->reason, evlog, args->event_time); break; case EVLOG_JSON: @@ -1316,8 +1245,9 @@ do_logfile(int event_type, int flags, struct eventlog_args *args, "unexpected eventlog format %d", evl_conf->format); break; } - free(logline); +done: + sudo_lbuf_destroy(&lbuf); debug_return_bool(ret); } @@ -1329,7 +1259,7 @@ eventlog_accept(const struct eventlog *evlog, int flags, const int log_type = evl_conf->type; struct eventlog_args args = { NULL }; bool ret = true; - debug_decl(log_accept, SUDO_DEBUG_UTIL); + debug_decl(eventlog_accept, SUDO_DEBUG_UTIL); args.event_time = &evlog->submit_time; args.json_info_cb = info_cb; @@ -1356,7 +1286,7 @@ eventlog_reject(const struct eventlog *evlog, int flags, const char *reason, const int log_type = evl_conf->type; struct eventlog_args args = { NULL }; bool ret = true; - debug_decl(log_reject, SUDO_DEBUG_UTIL); + debug_decl(eventlog_reject, SUDO_DEBUG_UTIL); args.reason = reason; args.event_time = &evlog->submit_time; @@ -1384,7 +1314,7 @@ eventlog_alert(const struct eventlog *evlog, int flags, const int log_type = evl_conf->type; struct eventlog_args args = { NULL }; bool ret = true; - debug_decl(log_alert, SUDO_DEBUG_UTIL); + debug_decl(eventlog_alert, SUDO_DEBUG_UTIL); args.reason = reason; args.errstr = errstr; @@ -1403,6 +1333,50 @@ eventlog_alert(const struct eventlog *evlog, int flags, debug_return_bool(ret); } +bool +eventlog_mail(const struct eventlog *evlog, int flags, + struct timespec *event_time, const char *reason, const char *errstr, + char * const extra[]) +{ + struct eventlog_args args = { NULL }; + struct sudo_lbuf lbuf; + bool ret = false; + debug_decl(eventlog_mail, SUDO_DEBUG_UTIL); + + args.reason = reason; + args.errstr = errstr; + args.event_time = event_time; + + sudo_lbuf_init(&lbuf, NULL, 0, NULL, 0); + if (!new_logline(EVLOG_ALERT, flags, &args, evlog, &lbuf)) + goto done; + + if (extra != NULL) { + /* Each extra message is written on its own line. */ + while (*extra != NULL) { + sudo_lbuf_append(&lbuf, "\n"); + sudo_lbuf_append_esc(&lbuf, LBUF_ESC_CNTRL, "%s", *extra); + if (sudo_lbuf_error(&lbuf)) { + sudo_debug_printf( + SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO, + "unable to format mail message"); + goto done; + } + extra++; + } + } + + ret = send_mail(evlog, lbuf.buf); + if (!ret) { + sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO, + "unable to mail log line"); + } + +done: + sudo_lbuf_destroy(&lbuf); + debug_return_bool(ret); +} + bool eventlog_exit(const struct eventlog *evlog, int flags) { diff --git a/lib/iolog/Makefile.in b/lib/iolog/Makefile.in index 2dde029d0a..4e1f3a4bca 100644 --- a/lib/iolog/Makefile.in +++ b/lib/iolog/Makefile.in @@ -35,7 +35,7 @@ cross_compiling = @CROSS_COMPILING@ CC = @CC@ LIBTOOL = @LIBTOOL@ SHA1SUM = @SHA1SUM@ -GREP = @GREP@ +EGREP = @EGREP@ SED = @SED@ # Libraries @@ -200,11 +200,9 @@ fuzz_iolog_json_seed_corpus.zip: rm -rf $$tdir run-fuzz_iolog_json: fuzz_iolog_json - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -227,11 +225,9 @@ fuzz_iolog_legacy_seed_corpus.zip: rm -rf $$tdir run-fuzz_iolog_legacy: fuzz_iolog_legacy - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -242,7 +238,7 @@ run-fuzz_iolog_legacy: fuzz_iolog_legacy for f in $(FUZZ_IOLOG_LEGACY_CORPUS); do \ cp $$f $$corpus; \ done; \ - ./fuzz_iolog_legacy -max_len=$(FUZZ_MAX_LEN) -runs=$(FUZZ_RUNS) $(FUZZ_VERBOSE) $$corpus + ./fuzz_iolog_legacy -dict=$(srcdir)/regress/fuzz/fuzz_iolog_legacy.dict -max_len=$(FUZZ_MAX_LEN) -runs=$(FUZZ_RUNS) $(FUZZ_VERBOSE) $$corpus fuzz_iolog_timing_seed_corpus.zip: tdir=fuzz_iolog_timing.$$$$; \ @@ -254,11 +250,9 @@ fuzz_iolog_timing_seed_corpus.zip: rm -rf $$tdir run-fuzz_iolog_timing: fuzz_iolog_timing - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -269,7 +263,7 @@ run-fuzz_iolog_timing: fuzz_iolog_timing for f in $(FUZZ_IOLOG_TIMING_CORPUS); do \ cp $$f $$corpus; \ done; \ - ./fuzz_iolog_timing -max_len=$(FUZZ_MAX_LEN) -runs=$(FUZZ_RUNS) $(FUZZ_VERBOSE) $$corpus + ./fuzz_iolog_timing -dict=$(srcdir)/regress/fuzz/fuzz_iolog_timing.dict -max_len=$(FUZZ_MAX_LEN) -runs=$(FUZZ_RUNS) $(FUZZ_VERBOSE) $$corpus pre-install: @@ -308,11 +302,9 @@ fuzz: run-fuzz_iolog_json run-fuzz_iolog_legacy run-fuzz_iolog_timing check-fuzzer: $(FUZZ_PROGS) @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -327,11 +319,9 @@ check-fuzzer: $(FUZZ_PROGS) check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ diff --git a/lib/iolog/iolog_json.c b/lib/iolog/iolog_json.c index 6945ac7d1a..6f384ea59a 100644 --- a/lib/iolog/iolog_json.c +++ b/lib/iolog/iolog_json.c @@ -414,7 +414,6 @@ json_parse_string(char **strp) } while (src < end) { char ch = *src++; - /* TODO: handle unicode escapes */ if (ch == '\\') { switch (*src) { case 'b': @@ -432,6 +431,17 @@ json_parse_string(char **strp) case 't': ch = '\t'; break; + case 'u': + /* Only currently handles 8-bit ASCII. */ + if (src[1] == '0' && src[2] == '0') { + ch = sudo_hexchar(&src[3]); + if (ch != -1) { + src += 4; + break; + } + } + /* Not in \u00XX format. */ + FALLTHROUGH; case '"': case '\\': default: @@ -541,45 +551,6 @@ iolog_parse_json_object(struct json_object *object, struct eventlog *evlog) } } - /* Merge cmd and argv as sudoreplay expects. */ - if (evlog->command != NULL && evlog->argv != NULL && evlog->argv[0] != NULL) { - size_t len, bufsize = strlen(evlog->command) + 1; - char *cp, *buf; - int ac; - - /* Skip argv[0], we use evlog->command instead. */ - for (ac = 1; evlog->argv[ac] != NULL; ac++) - bufsize += strlen(evlog->argv[ac]) + 1; - - if ((buf = malloc(bufsize)) == NULL) { - sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory")); - goto done; - } - cp = buf; - - len = strlcpy(cp, evlog->command, bufsize); - if (len >= bufsize) - sudo_fatalx(U_("internal error, %s overflow"), __func__); - cp += len; - bufsize -= len; - - for (ac = 1; evlog->argv[ac] != NULL; ac++) { - if (bufsize < 2) - sudo_fatalx(U_("internal error, %s overflow"), __func__); - *cp++ = ' '; - bufsize--; - - len = strlcpy(cp, evlog->argv[ac], bufsize); - if (len >= bufsize) - sudo_fatalx(U_("internal error, %s overflow"), __func__); - cp += len; - bufsize -= len; - } - - free(evlog->command); - evlog->command = buf; - } - ret = true; done: diff --git a/lib/iolog/iolog_loginfo.c b/lib/iolog/iolog_loginfo.c index 26902593d6..373a81e06b 100644 --- a/lib/iolog/iolog_loginfo.c +++ b/lib/iolog/iolog_loginfo.c @@ -160,7 +160,7 @@ iolog_write_info_file_json(int dfd, struct eventlog *evlog) int fd = -1; debug_decl(iolog_write_info_file_json, SUDO_DEBUG_UTIL); - if (!sudo_json_init(&jsonc, 4, false, false)) + if (!sudo_json_init(&jsonc, 4, false, false, false)) debug_return_bool(false); /* Timestamp */ diff --git a/lib/iolog/regress/corpus/seed/log_legacy/less.log b/lib/iolog/regress/corpus/seed/log_legacy/less.log new file mode 100644 index 0000000000..66e292962e --- /dev/null +++ b/lib/iolog/regress/corpus/seed/log_legacy/less.log @@ -0,0 +1,3 @@ +1611859113:bob:bob:ldap:/dev/console:24:80 +/var/tmp +/usr/bin/less /etc/ldapd.conf diff --git a/lib/iolog/regress/corpus/seed/log_legacy/smtpctl.log b/lib/iolog/regress/corpus/seed/log_legacy/smtpctl.log new file mode 100644 index 0000000000..d3656175ad --- /dev/null +++ b/lib/iolog/regress/corpus/seed/log_legacy/smtpctl.log @@ -0,0 +1,3 @@ +1666108884:aemon:root::/dev/pts/4:64:128 +/home/aemon +/usr/sbin/smtpctl remove 272a4d27e1fd732e diff --git a/lib/iolog/regress/corpus/seed/log_legacy/vi.log b/lib/iolog/regress/corpus/seed/log_legacy/vi.log new file mode 100644 index 0000000000..c95f061686 --- /dev/null +++ b/lib/iolog/regress/corpus/seed/log_legacy/vi.log @@ -0,0 +1,3 @@ +1611849879:alice:root::/dev/pts/0:24:80 +/export/home/alice +/usr/bin/vi /etc/nsswitch.conf diff --git a/lib/iolog/regress/corpus/seed/timing/timing.5 b/lib/iolog/regress/corpus/seed/timing/timing.5 new file mode 100644 index 0000000000..53e6c2414f --- /dev/null +++ b/lib/iolog/regress/corpus/seed/timing/timing.5 @@ -0,0 +1,110 @@ +4 0.094338301 36 +4 0.000886452 454 +4 0.000419509 47 +3 0.578593257 1 +4 0.000401105 9 +3 0.239515513 1 +4 0.000346806 1 +3 0.087693564 1 +4 0.000347787 1 +3 0.143659822 1 +4 0.000358177 1 +3 0.144622999 1 +4 0.000365053 1 +3 0.334698655 1 +4 0.000383718 1 +3 0.143675707 1 +4 0.000490451 38 +3 0.607406896 1 +4 0.000371268 14 +3 0.215742108 1 +4 0.000405734 20 +3 0.167496479 1 +4 0.000397476 32 +3 0.231540616 2 +4 0.001466590 36 +4 0.000350286 42 +3 0.158274203 1 +4 0.000370821 60 +3 0.120308265 1 +4 0.000415876 15 +3 0.142813715 1 +4 0.000334956 44 +3 0.303764107 1 +4 0.000391847 8 +3 0.095659280 1 +4 0.000378759 1 +3 0.175643525 1 +4 0.000322526 1 +3 0.135538631 1 +4 0.000350139 1 +4 0.000387250 43 +4 0.000294911 14 +3 1.167339458 1 +4 0.000459546 34 +7 0.000701240 TSTP +7 14.031400225 CONT +4 0.000703876 7 +4 0.000318515 552 +3 0.519022507 1 +4 0.000353381 8 +3 0.151484068 1 +4 0.000408559 1 +3 0.111526674 1 +4 0.000332701 1 +3 0.640246014 1 +4 0.000595362 2 +3 0.262836266 1 +4 0.000548454 34 +3 0.431603931 1 +4 0.000412839 34 +7 0.000525770 TSTP +7 14.791352365 CONT +4 0.000694230 7 +4 0.000302349 493 +3 0.727405050 1 +4 0.000500700 34 +7 0.000535360 TSTP +7 3.670976441 CONT +4 0.000618883 7 +4 0.000329643 493 +3 0.726805533 1 +4 0.000401741 15 +3 0.169615608 1 +4 0.000404146 14 +3 0.149519005 1 +4 0.000346040 14 +3 0.153626768 1 +4 0.000374982 14 +3 10.982612173 1 +3 0.499604568 1 +4 0.000430040 54 +3 0.082890262 1 +3 0.083639576 1 +4 0.000372554 36 +3 0.083005173 1 +3 0.083770729 1 +4 0.000362184 30 +3 0.082958130 1 +3 0.083891314 1 +4 0.000406165 69 +3 0.083110106 1 +3 0.083892294 1 +4 0.000367886 54 +3 0.224878822 1 +3 0.197955553 1 +4 0.000374885 45 +3 1.639667508 1 +4 0.000391391 8 +3 0.127675700 1 +4 0.000336583 1 +3 0.159694034 1 +4 0.000460055 1 +4 0.000356674 57 +3 12.784074969 1 +4 0.000383899 8 +3 0.319071776 1 +4 0.000350990 1 +3 0.375753852 1 +4 0.000391679 1 +4 0.000470435 31 diff --git a/lib/iolog/regress/corpus/seed/timing/timing.6 b/lib/iolog/regress/corpus/seed/timing/timing.6 new file mode 100644 index 0000000000..2cfb414f4a --- /dev/null +++ b/lib/iolog/regress/corpus/seed/timing/timing.6 @@ -0,0 +1,15185 @@ +4 0.097693988 36 +4 0.000957658 581 +3 1.103319620 1 +4 0.000458372 9 +3 0.343116579 1 +4 0.000338600 1 +3 0.167807742 1 +4 0.000347723 1 +3 0.168370615 1 +4 0.000331790 1 +3 0.126841177 1 +4 0.000494776 21 +4 0.000389804 737 +3 3.911758825 1 +4 0.000589551 589 +3 1.199213488 1 +4 0.000571867 671 +3 0.175283013 1 +4 0.000551106 788 +3 0.927605729 1 +4 0.000592528 778 +3 0.727361437 1 +4 0.000600088 810 +3 0.151449161 1 +4 0.000549159 703 +3 0.151365424 1 +4 0.000521802 579 +3 0.175504252 1 +4 0.000572822 841 +3 1.479559831 1 +4 0.000566667 671 +3 1.215437518 1 +4 0.000560614 732 +3 6.359874366 1 +4 0.000586055 517 +3 0.711069519 1 +4 0.000624372 678 +3 1.967625161 1 +4 0.000587631 788 +3 2.959415103 1 +4 0.000467050 52 +3 0.258284691 1 +4 0.000359406 17 +3 0.150663754 1 +4 0.000345830 16 +3 0.629841487 1 +3 0.130078374 1 +4 0.000427154 28 +3 1.573712476 1 +4 0.000597951 683 +3 0.679455332 1 +4 0.000624382 625 +3 0.863325943 1 +4 0.000589350 849 +3 0.871257287 1 +4 0.000377259 15 +3 0.500679027 1 +4 0.000338887 15 +3 0.082915074 1 +4 0.000418604 17 +3 0.082596070 1 +4 0.000321263 17 +3 0.083131776 1 +4 0.000330500 17 +3 0.083371296 1 +4 0.000345874 15 +3 0.083108756 1 +4 0.000389047 15 +3 0.082748138 1 +4 0.000315527 16 +3 0.083950965 1 +4 0.000325339 16 +3 0.548314643 1 +4 0.000410020 17 +3 0.429723783 1 +4 0.001632651 37 +4 0.000426417 133 +3 0.693988537 1 +4 0.000351760 16 +3 0.463602549 1 +4 0.000356594 10 +3 0.415613181 1 +4 0.000366763 1 +3 0.135780117 1 +4 0.000335017 1 +3 0.175462207 1 +4 0.000330054 1 +3 0.079900650 1 +4 0.000334757 1 +3 0.103456346 1 +4 0.000319517 1 +3 0.103817387 1 +4 0.000323711 1 +3 0.063555555 1 +4 0.000319964 1 +3 0.119579686 1 +4 0.000404602 1 +3 0.223797910 1 +4 0.000389022 40 +3 2.503757937 1 +4 0.000390701 10 +3 0.055447548 1 +4 0.000533591 690 +3 2.903881053 1 +4 0.000568568 726 +3 0.145177548 1 +4 0.000362889 102 +3 1.894563020 1 +4 0.000338633 18 +3 0.168988785 1 +4 0.000374107 18 +3 0.173551488 1 +4 0.000384121 17 +3 0.161628071 1 +4 0.000403103 18 +3 0.149569901 1 +4 0.000370231 17 +3 0.201795897 1 +4 0.000371537 17 +3 0.277452123 1 +3 0.312120348 1 +4 0.000382358 65 +3 0.135528556 1 +4 0.000376779 79 +3 0.655753048 2 +4 0.000393158 103 +3 0.311981813 1 +4 0.000358735 18 +3 0.153241402 1 +4 0.000357208 18 +3 0.149367912 1 +4 0.000341365 17 +3 0.153758664 1 +4 0.000409446 18 +3 0.141572461 1 +4 0.000334930 17 +3 0.281753655 1 +4 0.000313237 17 +3 0.253785106 1 +3 0.048044598 1 +4 0.000390744 29 +3 0.199848389 1 +4 0.000351924 18 +3 0.095365075 1 +4 0.000367343 18 +3 0.103384570 1 +4 0.000330248 18 +3 0.087929267 1 +4 0.000363207 18 +3 0.263566078 2 +4 0.000365425 28 +3 0.129673483 1 +4 0.000418293 18 +3 0.245509930 1 +3 0.072023907 1 +4 0.000346915 27 +3 0.233641617 1 +4 0.000371518 18 +3 0.149968246 1 +4 0.000329324 18 +3 0.750253477 1 +4 0.109987655 37 +3 24.356082499 2 +4 0.000575072 18 +3 0.311960778 1 +4 0.000363365 17 +3 6.328346132 1 +4 0.000383670 31 +3 0.374564260 1 +4 0.000364229 31 +3 4.263853812 1 +4 0.000385394 31 +3 0.072217819 1 +4 0.000359701 31 +3 0.142867118 1 +4 0.000386346 31 +3 0.127731426 1 +4 0.000511355 31 +3 0.055387421 1 +4 0.000385155 31 +3 1.695812701 1 +4 0.000358800 31 +3 0.697693334 1 +4 0.109968812 31 +3 3.968687583 1 +4 0.000582462 652 +3 2.087163132 1 +4 0.000600691 922 +3 1.671266499 1 +4 0.000436508 36 +3 0.500227380 1 +4 0.000409164 78 +3 0.083208834 1 +4 0.000483458 69 +3 0.082631972 1 +4 0.000394210 73 +3 0.083382084 1 +4 0.000400565 84 +3 13.617030561 1 +4 0.000354061 15 +3 0.500733232 1 +4 0.000347347 15 +3 0.082671126 1 +4 0.000355244 15 +3 0.082945476 1 +4 0.000365822 18 +3 0.082683300 1 +4 0.000403621 17 +3 0.083034469 1 +4 0.000356155 15 +3 0.083001633 1 +4 0.000378724 15 +3 0.082987035 1 +4 0.000356646 15 +3 0.083172601 1 +4 0.000347790 17 +3 0.082982191 1 +4 0.000354769 18 +3 0.083231707 1 +4 0.000356674 16 +3 0.083455577 1 +4 0.000375342 16 +3 0.082774961 1 +4 0.000345080 16 +3 0.083148577 1 +4 0.000372898 17 +3 0.082488084 1 +4 0.000351168 18 +3 0.361137018 1 +4 0.000520394 16 +3 0.557563133 1 +4 0.000365756 16 +3 0.217686213 1 +4 0.000405765 16 +3 0.213411640 1 +4 0.000437376 16 +3 0.201749904 1 +4 0.000417367 16 +3 1.077644672 1 +3 0.183765838 1 +3 0.114281411 1 +4 0.000415479 29 +3 1.797684026 1 +4 0.000592681 817 +3 2.423564964 1 +4 0.000635387 721 +3 0.735894059 1 +4 0.000366561 16 +3 0.499433634 1 +4 0.000403990 18 +3 0.083697754 1 +4 0.000353510 16 +3 0.082821690 1 +4 0.000460907 16 +3 0.083470466 1 +4 0.000391016 18 +3 0.351749864 1 +4 0.000435746 219 +3 0.335662878 1 +4 0.000385166 36 +3 0.455599429 2 +4 0.000450086 32 +3 0.311480720 1 +3 0.130132593 1 +4 0.000422315 30 +3 0.141538312 1 +4 0.000350580 18 +3 0.161698419 1 +4 0.000450382 16 +3 0.149595861 1 +4 0.000357490 16 +3 0.216118106 1 +4 0.000392863 80 +3 0.287025425 1 +4 0.000368499 16 +3 0.217810528 1 +4 0.000368675 16 +3 0.173583780 1 +4 0.000612887 16 +3 0.185363502 1 +4 0.000357218 16 +3 0.558456948 1 +4 0.000384082 18 +3 0.478831088 1 +4 0.000373041 47 +3 0.143904945 1 +4 0.000423017 19 +3 0.143222621 1 +4 0.000362659 17 +3 1.143703843 1 +4 0.000371411 18 +3 0.167600427 1 +4 0.000358131 18 +3 0.175738166 1 +4 0.000372615 18 +3 0.119668569 1 +4 0.000396472 18 +3 0.095593535 1 +4 0.000371665 18 +3 0.191668990 1 +4 0.000415434 18 +3 0.215453670 1 +4 0.000353548 18 +3 0.215843292 1 +4 0.000368685 18 +3 0.543724152 1 +4 0.000363077 18 +3 0.423428920 1 +4 0.000565616 18 +3 0.119487325 1 +4 0.000392118 18 +3 0.135715995 1 +4 0.000360686 18 +3 0.071574120 1 +4 0.000439295 18 +3 0.191534353 1 +4 0.000349726 18 +3 0.231687599 1 +4 0.000350854 18 +3 0.247590333 1 +4 0.000349565 18 +3 0.399664247 1 +4 0.000399287 17 +3 0.199694033 1 +4 0.000399199 18 +3 0.103461914 1 +4 0.000385370 18 +3 0.095701982 1 +4 0.000393397 18 +3 0.295621485 1 +4 0.000348993 19 +3 0.144437413 1 +4 0.000379088 18 +3 0.198764313 1 +4 0.000397818 18 +3 12.245000582 1 +3 0.067286171 1 +4 0.000930451 647 +3 1.271066901 1 +4 0.000611308 785 +3 0.967396885 1 +4 0.000391811 9 +3 2.013803015 12 +4 0.000359778 12 +3 0.354058672 1 +4 0.000442726 15 +4 0.000353259 38 +3 0.454372890 1 +4 0.000353679 43 +3 0.201776929 1 +4 0.000449372 21 +3 0.165645069 1 +4 0.000388749 56 +4 0.000394368 7 +3 0.369116907 1 +4 0.000346666 43 +3 0.381642743 1 +4 0.000350900 21 +3 0.489700692 1 +4 0.000403145 56 +4 0.000284088 7 +3 0.357448445 1 +4 0.000432074 43 +3 1.625632487 1 +4 0.000561739 21 +3 2.749500295 1 +4 0.000382505 32 +3 0.127541732 1 +4 0.000349587 17 +3 0.879715291 1 +4 0.000422238 18 +3 0.079504711 1 +4 0.000358804 18 +3 0.071640554 1 +4 0.000462190 17 +3 1.511581913 1 +4 0.000370736 18 +3 0.137723663 1 +4 0.000576506 18 +3 0.157423583 1 +4 0.000359301 18 +3 0.111569388 1 +4 0.000370080 19 +3 0.175788910 1 +4 0.000390579 18 +3 0.127548586 1 +4 0.000517405 16 +3 0.087543039 1 +4 0.000389857 13 +3 0.087475036 1 +4 0.000385001 11 +3 0.263652341 1 +4 0.000362769 11 +3 0.079606457 1 +4 0.000456234 13 +3 0.151586763 1 +4 0.000576884 16 +3 0.119449667 1 +4 0.000391357 18 +3 0.248391442 1 +4 0.000348267 18 +3 0.070873604 1 +4 0.000395821 19 +3 0.031479523 1 +4 0.000339832 18 +3 0.215879653 1 +4 0.000371564 18 +3 0.208675804 1 +4 0.000364165 18 +3 0.781127774 1 +4 0.110104180 31 +3 0.347449927 1 +4 0.000391058 17 +3 0.759576804 1 +4 0.000399054 17 +3 0.719475822 1 +4 0.000363481 16 +3 0.209764674 1 +4 0.000420853 18 +3 0.181543921 1 +4 0.000446865 18 +3 0.695649553 1 +4 0.000364348 17 +3 5.655914971 1 +4 0.000371102 17 +3 0.501146264 1 +4 0.000390485 19 +3 0.082334811 1 +4 0.000389853 104 +3 0.082770985 1 +4 0.000640857 35 +3 0.082634854 1 +4 0.000391535 63 +3 0.082831129 1 +4 0.000395020 74 +3 0.083338259 1 +4 0.000765883 37 +3 0.305557932 1 +4 0.000358155 22 +3 0.500134468 1 +4 0.000373010 20 +3 0.082875224 1 +4 0.000369529 17 +3 0.083206683 1 +4 0.000650077 20 +3 0.820266736 1 +4 0.000372327 17 +3 0.500281203 1 +4 0.000356297 20 +3 0.083495657 1 +4 0.000352191 20 +3 0.082911125 1 +4 0.000345727 17 +3 0.084251862 1 +4 0.000421566 63 +3 0.198985382 1 +4 0.000347753 17 +3 0.169733060 1 +4 0.000561367 22 +3 0.165295001 1 +4 0.000351808 20 +3 2.623960816 1 +3 0.199877174 1 +3 0.154622991 1 +4 0.000424027 149 +3 0.116976645 1 +4 0.000356668 39 +3 0.500771628 1 +4 0.000453280 18 +3 0.083310622 1 +4 0.000333387 16 +3 0.083360523 1 +4 0.000588696 16 +3 0.083278747 1 +4 0.000364923 16 +3 0.083317744 1 +4 0.000363486 16 +3 0.082785265 1 +4 0.000334722 17 +3 0.083134633 1 +4 0.000327780 18 +3 0.388953653 1 +4 0.000397659 17 +3 0.279631899 1 +4 0.000443440 116 +3 0.735498889 1 +4 0.000402995 40 +3 0.161654066 1 +4 0.000360349 18 +3 0.645690164 1 +3 0.122095192 1 +4 0.000550745 75 +3 0.861346110 1 +4 0.000368374 18 +3 0.297657683 1 +4 0.000409950 16 +3 0.221573357 1 +4 0.000359706 17 +3 0.201590265 1 +4 0.000420145 18 +3 0.725891565 1 +4 0.000410403 94 +3 2.343419099 1 +3 0.138014095 1 +4 0.000406190 75 +3 0.149528893 1 +4 0.000376405 18 +3 0.233967970 1 +4 0.000362616 16 +3 0.181388607 1 +4 0.000375845 17 +3 0.169715363 1 +4 0.000358644 18 +3 0.421516995 1 +4 0.000423347 16 +3 0.223600858 1 +4 0.000351994 16 +3 0.169858347 1 +4 0.000372798 18 +3 0.165442069 1 +4 0.000437843 18 +3 47.612015956 1 +4 0.000420777 17 +3 7.645117521 1 +4 0.000357043 17 +3 0.203064792 1 +4 0.000404651 19 +3 0.148078594 1 +4 0.000372767 20 +3 14.800360987 1 +4 0.000372152 19 +3 0.193409434 1 +4 0.000360058 20 +3 0.181573590 1 +4 0.000334749 17 +3 4.672137645 1 +4 0.000547796 17 +3 0.201216303 1 +4 0.000350221 17 +3 0.493727268 1 +4 0.000394587 79 +3 1.239531925 1 +4 0.000411232 17 +3 0.201577596 1 +4 0.000363153 17 +3 0.181839196 1 +4 0.000365743 17 +3 0.217580259 1 +4 0.000419291 17 +3 0.413603793 1 +4 0.000389252 17 +3 4.879696734 1 +3 0.087993182 1 +4 0.000359318 28 +3 1.183741831 1 +4 0.000392000 18 +3 0.072371680 1 +4 0.000344036 18 +3 0.102840326 1 +4 0.000339979 18 +3 0.263644252 1 +4 0.000364716 18 +3 0.239809832 1 +4 0.000367180 107 +3 1.841911098 1 +4 0.109988327 33 +3 0.183660214 1 +4 0.000468781 9 +3 0.439556740 1 +4 0.000343767 1 +3 0.455845269 1 +4 0.000558674 54 +3 0.735274963 1 +4 0.000346882 9 +3 0.343642094 1 +4 0.000339960 1 +3 1.135630546 1 +4 0.000319323 1 +3 0.336150973 1 +4 0.002246722 58 +3 0.725368029 1 +4 0.000365124 9 +3 0.513883520 1 +4 0.000327517 1 +3 0.245487314 1 +4 0.000376272 1 +3 0.207695699 1 +4 0.000583922 779 +3 3.047550138 1 +3 0.129914536 1 +4 0.000361284 30 +3 0.517742428 1 +4 0.000876578 750 +3 0.153144700 1 +4 0.000827063 111 +3 1.077031634 1 +4 0.000385969 71 +3 0.671823909 1 +4 0.000700510 18 +3 0.177114177 1 +4 0.000365033 18 +3 0.165687178 1 +4 0.000364717 17 +3 0.351744220 1 +3 0.071908205 1 +4 0.000407900 28 +3 0.151677345 1 +4 0.000736606 18 +3 0.079541471 1 +4 0.000340519 18 +3 0.063463155 1 +4 0.000367949 18 +3 0.223506778 1 +4 0.000413034 18 +3 0.191692925 1 +4 0.000356857 26 +3 0.731677511 1 +4 0.109976927 33 +3 0.637929593 1 +4 0.000343755 17 +3 2.143779663 1 +4 0.000397634 4 +3 1.194158239 1 +4 0.000365274 4 +3 0.333180352 1 +4 0.000422079 17 +3 0.153395992 1 +4 0.000325371 17 +3 0.277789897 1 +4 0.000338965 4 +3 2.791906961 1 +4 0.000353063 17 +3 0.447635092 1 +3 0.138080657 1 +4 0.000566001 123 +3 0.253283500 1 +4 0.000734297 18 +3 2.401408669 1 +4 0.000329021 17 +3 0.229622809 1 +4 0.000368301 17 +3 0.249743461 1 +4 0.000332259 18 +3 1.405520404 1 +4 0.000626065 17 +3 0.513922219 1 +4 0.000352021 4 +3 0.317143072 1 +3 0.096174521 1 +4 0.000367483 33 +3 0.289500737 1 +4 0.000337331 18 +3 0.141681003 1 +4 0.000524692 18 +3 0.137672726 1 +4 0.000685531 18 +3 0.133085948 1 +4 0.000369897 18 +3 0.231827680 1 +4 0.000447277 18 +3 0.095501521 1 +4 0.000366060 18 +3 0.119494082 1 +4 0.001318263 18 +3 0.086667164 1 +4 0.000415062 19 +3 0.279538386 1 +4 0.000366880 18 +3 0.111882109 1 +4 0.000655035 18 +3 0.151184959 1 +4 0.000339245 18 +3 1.025459480 1 +3 0.006208551 1 +4 0.000357062 24 +3 0.219848723 1 +4 0.000409328 17 +3 3.732349804 1 +4 0.000364343 33 +3 0.593127057 13 +4 0.000410474 31 +3 0.797100093 1 +4 0.109976757 36 +3 1.778343138 1 +4 0.000499455 19 +3 0.217486897 1 +4 0.000362913 20 +3 1.989787928 1 +3 0.138144962 1 +4 0.000396217 89 +3 0.117343236 1 +4 0.000350336 18 +3 0.185752941 1 +4 0.000436495 16 +3 0.181922256 1 +4 0.000521924 16 +3 1.039959830 1 +4 0.000421118 16 +3 0.302818771 1 +3 0.121940521 1 +4 0.000714028 29 +3 0.197500732 1 +4 0.000364824 41 +3 1.223352169 1 +4 0.000384389 98 +3 0.368054015 1 +3 0.145929723 1 +4 0.000360153 22 +3 0.349490946 1 +4 0.000403415 18 +3 0.185711754 1 +4 0.000411094 18 +3 3.309560066 1 +4 0.000424639 17 +3 0.201622600 1 +4 0.000332911 17 +3 0.165514358 1 +4 0.000442890 18 +3 0.161627298 1 +4 0.000349309 17 +3 0.174031062 1 +4 0.000359363 17 +3 0.233245167 1 +4 0.000367185 17 +3 0.421696528 1 +4 0.000411396 17 +3 0.137662000 1 +4 0.000391667 17 +3 0.149641485 1 +4 0.000356515 18 +3 0.167537597 1 +4 0.000361277 24 +3 0.263817838 1 +4 0.000694390 31 +3 0.087126940 1 +4 0.000318414 31 +3 0.047574605 1 +4 0.000421695 31 +3 0.199647884 1 +4 0.000311776 31 +3 0.167877106 1 +4 0.000365130 31 +3 0.167451081 1 +4 0.000321456 31 +3 0.689076734 1 +4 0.110105163 33 +3 0.584921459 1 +4 0.000348307 9 +3 0.143224088 1 +4 0.000343586 1 +3 0.071732407 1 +4 0.000409628 1 +4 0.000372659 70 +3 0.655337176 1 +4 0.000404457 35 +3 0.499593688 1 +4 0.000366052 22 +3 0.083397439 1 +4 0.000368501 20 +3 0.083071213 1 +4 0.000340792 16 +3 0.083428883 1 +4 0.000350381 16 +3 0.083093697 1 +4 0.000392045 17 +3 0.083057376 1 +4 0.000365675 16 +3 0.083710948 1 +4 0.000327269 18 +3 0.083119476 1 +4 0.000474101 85 +3 0.083493053 1 +4 0.000360764 47 +3 0.082641058 1 +4 0.000398974 46 +3 0.083186621 1 +4 0.000365016 35 +3 0.083157636 1 +4 0.000398605 55 +3 0.082965738 1 +4 0.000428731 55 +3 0.160742908 1 +4 0.000439591 20 +3 0.500151554 1 +4 0.000351208 17 +3 0.084287672 1 +4 0.000493732 19 +3 0.082375156 1 +4 0.000384640 18 +3 0.082970019 1 +4 0.000397199 16 +3 0.082867805 1 +4 0.000318173 20 +3 0.083465407 1 +4 0.000390887 20 +3 0.082803369 1 +4 0.000334778 17 +3 0.083401403 1 +4 0.000375336 17 +3 0.082724495 1 +4 0.000320315 20 +3 0.247278331 1 +4 0.000447587 20 +3 0.575539980 1 +4 0.000355606 20 +3 0.185633872 1 +4 0.000356683 20 +3 0.149543565 1 +4 0.000362475 20 +3 0.439731864 1 +4 0.000424684 20 +3 0.233648427 1 +4 0.000350978 20 +3 0.213624195 1 +4 0.000395175 20 +3 0.225668560 1 +4 0.000421855 17 +3 0.221519026 1 +4 0.000369391 17 +3 0.209697790 1 +4 0.000352732 20 +3 0.229431459 1 +4 0.000408315 16 +3 0.233795367 1 +4 0.000353754 19 +3 0.349714972 1 +4 0.000374089 16 +3 0.499556051 1 +4 0.000350045 20 +3 0.082976420 1 +4 0.000426476 20 +3 0.082721495 1 +4 0.000346098 17 +3 0.082736431 1 +4 0.000369046 17 +3 0.083222016 1 +4 0.000406594 20 +3 0.083347906 1 +4 0.000343270 20 +3 0.083681978 1 +4 0.000476449 20 +3 0.082863415 1 +4 0.000529778 20 +3 0.443298219 1 +4 0.000822688 22 +3 0.729154569 1 +4 0.000334348 20 +3 0.237781665 1 +4 0.000355457 20 +3 0.249570764 1 +4 0.000354909 20 +3 0.221637136 1 +4 0.000349387 17 +3 0.217649492 1 +4 0.000389379 17 +3 0.213410528 1 +4 0.000345541 20 +3 0.257915898 1 +4 0.000375323 16 +3 0.317549640 1 +4 0.000351138 19 +3 0.327647625 1 +4 0.000508773 16 +3 0.499759639 1 +4 0.000351912 20 +3 0.083489529 1 +4 0.000340082 20 +3 0.083360580 1 +4 0.000341345 17 +3 0.083050464 1 +4 0.000348861 17 +3 0.083594027 1 +4 0.000410636 20 +3 0.083859543 1 +4 0.000339867 20 +3 0.378370667 1 +4 0.000353882 20 +3 26.654551214 2 +4 0.000299370 1 +4 0.000385007 20 +3 0.185788276 1 +4 0.000347829 19 +3 0.165558740 1 +4 0.000378265 18 +3 0.177115827 1 +4 0.000434495 19 +3 0.165615248 1 +4 0.000539262 19 +3 0.167652319 1 +4 0.000582877 17 +3 0.185338981 1 +4 0.000352150 16 +3 0.149631534 1 +4 0.000340936 16 +3 0.327728843 1 +4 0.000355118 16 +3 0.207710858 1 +4 0.000356196 22 +3 0.247467447 1 +4 0.000408781 27 +3 0.730114735 1 +4 0.110011184 32 +3 0.639487397 1 +4 0.000361215 30 +3 0.239789830 1 +4 0.000414086 27 +3 0.143501290 1 +4 0.000357619 27 +3 0.137600846 1 +4 0.000349030 29 +3 0.117672637 1 +4 0.000345332 27 +3 0.335762608 1 +4 0.000371813 16 +3 0.151515079 1 +4 0.000333398 17 +3 0.687814969 1 +4 0.000343303 27 +3 0.009771867 1 +4 0.000327767 27 +3 0.437553675 1 +4 0.000342484 16 +3 0.319573265 2 +4 0.000350629 35 +3 0.175819045 1 +4 0.000402475 30 +3 0.439484588 1 +4 0.000423719 39 +3 0.709999823 1 +4 0.000148519 17 +4 0.109827205 30 +3 8.507894554 1 +4 0.000410327 10 +3 0.151626335 1 +4 0.000353842 1 +3 0.087531531 1 +4 0.000371017 1 +4 0.000383910 69 +3 26.896906288 1 +4 0.000458838 38 +3 0.184859903 1 +4 0.000353687 18 +3 0.149756379 1 +4 0.000376787 19 +3 0.137592999 1 +4 0.000388187 18 +3 0.133791741 1 +4 0.000365782 22 +3 0.385421417 1 +4 0.000438732 20 +3 0.181646957 1 +4 0.000398813 20 +3 0.193545413 1 +4 0.000339360 20 +3 0.189661040 1 +4 0.000577231 17 +3 0.201388878 1 +4 0.000354544 17 +3 0.181736570 1 +4 0.000359366 17 +3 0.201709891 1 +4 0.000362687 17 +3 0.181657511 1 +4 0.000434378 19 +3 0.287459023 1 +4 0.000347569 20 +3 0.499939467 1 +4 0.000399194 17 +3 0.083057931 1 +4 0.000326400 17 +3 0.083236239 1 +4 0.000434921 17 +3 0.083397703 1 +4 0.000359935 17 +3 0.082995075 1 +4 0.000348933 20 +3 0.083447945 1 +4 0.000441606 20 +3 0.082804793 1 +4 0.000374644 20 +3 0.328091598 1 +4 0.000353006 20 +3 0.749778667 1 +3 0.159831338 1 +3 0.138127251 1 +4 0.000507113 453 +3 2.181672845 1 +4 0.000491811 452 +3 0.703366636 1 +3 0.199981256 1 +4 0.000352191 41 +3 0.567809983 1 +4 0.000527156 16 +3 0.499777301 1 +4 0.000341032 16 +3 0.083424938 1 +4 0.000359035 16 +3 0.083015258 1 +4 0.000314614 16 +3 0.083460885 1 +4 0.000361793 16 +3 0.083777579 1 +4 0.000313755 16 +3 0.083579493 1 +4 0.000367356 16 +3 0.083140437 1 +4 0.000317726 16 +3 0.278778522 1 +4 0.000341987 19 +3 0.141637962 1 +3 0.144050458 1 +3 0.127942512 1 +3 0.155207765 1 +4 0.000490014 479 +3 0.748564240 1 +4 0.000373697 40 +3 0.655960408 1 +4 0.000679698 869 +3 0.646826081 1 +4 0.000418888 15 +3 0.500527307 1 +4 0.000346354 15 +3 0.081843651 1 +4 0.000374311 17 +3 0.083519997 1 +4 0.000347824 17 +3 0.083477961 1 +4 0.000344511 15 +3 0.083426619 1 +4 0.000355385 15 +3 0.082727163 1 +4 0.000347717 15 +3 0.082932280 1 +4 0.000389440 17 +3 0.083334199 1 +4 0.000622308 19 +3 0.082558753 1 +4 0.000355512 16 +3 0.082872242 1 +4 0.000351363 16 +3 0.260990699 1 +4 0.000542866 646 +3 1.655439535 1 +4 0.000819821 437 +3 0.806961778 1 +4 0.000393280 66 +3 0.775566971 1 +4 0.000423759 18 +3 0.783885933 1 +4 0.000485141 363 +3 1.831723483 1 +4 0.000554379 40 +3 0.279058688 1 +4 0.000359222 15 +3 0.281709081 1 +4 0.000352527 17 +3 0.213643780 1 +4 0.000615478 23 +3 0.175421229 1 +4 0.000702794 32 +3 0.223239931 1 +4 0.000612203 32 +3 0.151359913 1 +4 0.000733272 32 +3 0.055356863 1 +4 0.000504130 32 +3 0.063391699 1 +4 0.000438785 32 +3 0.343892463 2 +4 0.000677091 23 +3 0.119234648 1 +4 0.000610279 17 +3 1.159306399 1 +4 0.000532996 10 +3 0.135332780 1 +4 0.000370068 1 +3 0.119678333 1 +4 0.000371365 1 +4 0.000295812 53 +4 0.000412108 16 +3 1.455822582 1 +4 0.000619925 646 +3 0.862826551 1 +4 0.000884052 592 +3 2.015014662 1 +4 0.000601988 628 +3 1.559569350 1 +4 0.000797895 926 +3 1.839221425 1 +4 0.000452782 47 +3 0.499724782 1 +4 0.000394463 34 +3 0.083061436 1 +4 0.000461010 74 +3 0.083213071 1 +4 0.000394094 72 +3 0.082597592 1 +4 0.000629094 87 +3 1.210968921 1 +4 0.000429352 47 +3 0.498607568 1 +4 0.000631607 34 +3 0.082584482 1 +4 0.000639306 64 +3 0.083305880 1 +4 0.000400040 72 +3 0.083135273 1 +4 0.000621457 104 +3 0.082893886 1 +4 0.000670785 47 +3 3.940356908 1 +4 0.000388271 34 +3 0.499602664 1 +4 0.000411279 56 +3 0.082931528 1 +4 0.000386802 72 +3 0.192151484 1 +4 0.000412085 17 +3 0.500050387 1 +4 0.000354066 17 +3 0.082906636 1 +4 0.000379668 18 +3 0.083693206 1 +4 0.000423020 20 +3 0.082953035 1 +4 0.000441869 18 +3 0.168429833 1 +4 0.000500791 18 +3 0.171526741 1 +4 0.000367870 19 +3 0.179690436 1 +4 0.000467217 16 +3 0.215673132 1 +4 0.000363513 18 +3 0.500350987 1 +4 0.000410286 20 +3 0.083205181 1 +4 0.000333549 18 +3 0.082500549 1 +4 0.000329966 17 +3 0.083050700 1 +4 0.000395420 17 +3 0.082862144 1 +4 0.000335598 18 +3 0.082684797 1 +4 0.000383548 20 +3 0.274747992 1 +4 0.000613396 839 +3 8.831964575 1 +4 0.000640423 801 +3 1.631181039 1 +4 0.000375831 17 +3 1.305627476 1 +4 0.000428633 15 +3 0.497733854 1 +4 0.000360959 15 +3 0.083122017 1 +4 0.000368287 15 +3 0.083642407 1 +4 0.000333844 15 +3 0.083295622 1 +4 0.000370535 16 +3 1.736553561 1 +4 0.000629246 838 +3 1.335539707 1 +4 0.000438005 16 +3 0.499718772 1 +4 0.000376280 18 +3 0.082613486 1 +4 0.000373838 16 +3 0.083636145 1 +4 0.000364210 16 +3 0.082920470 1 +4 0.000359328 16 +3 0.456951382 1 +4 0.000352142 16 +3 0.201656565 1 +4 0.000439855 16 +3 0.205465187 1 +4 0.000371276 16 +3 0.297745871 1 +4 0.000412243 16 +3 0.469760981 1 +4 0.000450415 18 +3 0.695465699 1 +4 0.000564386 801 +3 1.519622937 1 +4 0.000587351 836 +3 1.439344375 1 +4 0.000483671 115 +3 0.499715623 1 +4 0.000578789 133 +3 0.082560675 1 +4 0.000401248 44 +3 0.082898904 1 +4 0.000463999 115 +3 0.083267781 1 +4 0.000428878 130 +3 0.083135862 1 +4 0.000374468 44 +3 0.301722353 1 +4 0.000497865 16 +3 0.499837789 1 +4 0.000339484 17 +3 0.082709505 1 +4 0.000413937 16 +3 0.083176641 1 +4 0.000330187 16 +3 0.083139526 1 +4 0.000543854 16 +3 0.394988957 1 +4 0.000343115 16 +3 0.269629692 1 +4 0.000348912 28 +3 0.071635991 1 +4 0.000362496 17 +3 0.159759804 1 +4 0.000347896 18 +3 0.183536253 1 +4 0.000423127 18 +3 0.183529976 1 +4 0.000359333 18 +3 0.111615035 1 +4 0.000361619 18 +3 0.175838486 1 +4 0.000358092 35 +3 0.343534013 2 +4 0.000377489 31 +3 0.169506249 1 +4 0.000329047 17 +3 0.205756115 1 +4 0.000343659 17 +3 0.265598752 1 +4 0.000374504 17 +3 0.277776817 1 +4 0.000385196 18 +3 0.623607466 1 +4 0.000465991 17 +3 0.407578830 1 +4 0.000377308 17 +3 0.383596590 1 +4 0.000344645 17 +3 0.287624982 1 +4 0.000338938 17 +3 0.500058529 1 +4 0.000361373 18 +3 0.083005940 1 +4 0.000368949 18 +3 0.083199114 1 +4 0.000331711 20 +3 0.083023505 1 +4 0.000487715 17 +3 0.083150658 1 +4 0.000352183 17 +3 0.083005686 1 +4 0.000420446 19 +3 0.082645909 1 +4 0.000443195 17 +3 0.082880092 1 +4 0.000348592 19 +3 0.084370020 1 +4 0.000554421 19 +3 0.082753405 1 +4 0.000344666 19 +3 0.082759368 1 +4 0.000370472 18 +3 0.273664109 1 +4 0.000349786 20 +3 0.414549669 2 +4 0.000469361 31 +3 0.183558246 1 +4 0.000349709 31 +3 0.079685759 1 +4 0.000383733 16 +3 0.207556160 1 +4 0.000425055 17 +3 0.175532538 1 +4 0.000353824 17 +3 0.151619008 1 +4 0.000454891 17 +3 0.127532347 1 +4 0.000370301 18 +3 0.151735505 1 +4 0.000380548 34 +4 0.703909264 17 +3 0.079980896 1 +4 0.110019529 30 +3 0.905877768 1 +4 0.000445492 24 +3 1.047415902 1 +4 0.000332007 19 +3 0.499902514 1 +4 0.000439156 19 +3 0.082836836 1 +4 0.000478012 18 +3 0.082851279 1 +4 0.000358081 17 +3 0.083713388 1 +4 0.000610451 21 +3 0.082968659 1 +4 0.000359505 17 +3 0.277418759 1 +4 0.000341648 10 +3 0.135643786 1 +4 0.000345552 1 +3 0.087654054 1 +4 0.000422437 1 +4 0.000449764 70 +3 0.503010874 1 +4 0.000354564 39 +3 0.501454976 1 +4 0.000364633 19 +3 0.081948991 1 +4 0.000319512 17 +3 0.082820842 1 +4 0.000330816 20 +3 0.083311309 1 +4 0.000348309 20 +3 0.083663099 1 +4 0.000353884 17 +3 0.082662925 1 +4 0.000340642 19 +3 0.084299043 1 +4 0.000352433 20 +3 0.081663755 1 +4 0.000380282 18 +3 0.082756710 1 +4 0.000316548 19 +3 0.083824192 1 +4 0.000345942 34 +3 0.083168918 1 +4 0.000445371 74 +3 0.082953951 1 +4 0.000355228 73 +3 0.083088287 1 +4 0.000367068 90 +3 0.083149922 1 +4 0.000348080 47 +3 0.688053329 1 +4 0.000381554 34 +3 0.497613523 1 +4 0.000366693 64 +3 0.083561312 1 +4 0.000419851 75 +3 0.199676372 1 +4 0.000672162 20 +3 0.201352501 1 +4 0.000605369 17 +3 0.498124334 1 +4 0.000639937 18 +3 0.082473199 1 +4 0.000457451 20 +3 0.083307226 1 +4 0.000353384 20 +3 0.082727515 1 +4 0.000534145 17 +3 0.082859004 1 +4 0.000345422 17 +3 0.082716025 1 +4 0.000444831 18 +3 0.083456421 1 +4 0.000566420 20 +3 0.082288311 1 +4 0.000575933 18 +3 0.083136546 1 +4 0.000336951 19 +3 0.083151116 1 +4 0.000532592 20 +3 0.082635042 1 +4 0.000346929 16 +3 0.083301988 1 +4 0.000532397 19 +3 0.083170403 1 +4 0.000414279 18 +3 0.083016143 1 +4 0.000369031 17 +3 0.166586961 1 +4 0.000586191 17 +3 0.201647795 1 +4 0.000355931 19 +3 0.157534136 1 +4 0.000355658 16 +3 0.185688458 1 +4 0.000350437 16 +3 0.405343831 1 +4 0.000338913 16 +3 2.776772946 1 +4 0.000765659 16 +3 0.498951429 1 +4 0.000358422 17 +3 0.082649556 1 +4 0.000356330 19 +3 0.083223260 1 +4 0.000434303 20 +3 0.082959209 1 +4 0.000343712 18 +3 0.083665361 1 +4 0.000351377 19 +3 0.082729431 1 +4 0.000343251 16 +3 0.083766736 1 +4 0.000369217 20 +3 0.082957236 1 +4 0.000506694 20 +3 0.514406159 1 +4 0.000384271 17 +3 0.135711038 1 +4 0.000448742 27 +3 0.095642611 1 +4 0.000353778 18 +3 0.143502669 1 +4 0.000343133 18 +3 0.191824914 1 +4 0.000345515 18 +3 0.167508155 1 +4 0.000439012 18 +3 0.119586152 1 +4 0.000364246 14 +3 0.199599029 1 +4 0.000394824 31 +3 0.359494159 2 +4 0.000360391 31 +3 0.500491661 1 +4 0.000348030 14 +3 0.083022059 1 +4 0.000354076 19 +3 0.082658870 1 +4 0.000334284 16 +3 0.082744416 1 +4 0.000375206 20 +3 0.082793199 1 +4 0.000335734 20 +3 0.083032690 1 +4 0.000390111 102 +3 0.083169309 1 +4 0.000564309 47 +3 0.082834177 1 +4 0.000370394 34 +3 0.083161897 1 +4 0.000555561 56 +3 0.083027258 1 +4 0.000411563 72 +3 0.083065270 1 +4 0.000438012 111 +3 0.083244716 1 +4 0.000388982 61 +3 5.390076001 1 +4 0.000361755 17 +3 0.500376102 1 +4 0.000346290 20 +3 0.083773871 1 +4 0.000339582 19 +3 0.082705021 1 +4 0.000343591 17 +3 0.083076161 1 +4 0.000351006 18 +3 0.083267781 1 +4 0.000353708 20 +3 0.860627549 1 +4 0.000413376 9 +3 0.159561144 1 +4 0.000536985 1 +3 0.055446008 1 +4 0.000397264 1 +4 0.000412078 70 +3 0.303331126 1 +4 0.000419620 37 +3 0.500407349 1 +4 0.000345294 16 +3 0.083195438 1 +4 0.000349955 20 +3 0.083323730 1 +4 0.000359940 19 +3 0.083153203 1 +4 0.000351876 17 +3 0.083203532 1 +4 0.000348572 19 +3 0.083551307 1 +4 0.000405705 34 +3 0.083713520 1 +4 0.000475964 63 +3 0.082759958 1 +4 0.000642429 67 +3 0.082355568 1 +4 0.000391276 36 +3 0.150523447 1 +4 0.000359130 21 +3 0.499631795 1 +4 0.000429306 20 +3 0.082668851 1 +4 0.000394256 17 +3 0.083587363 1 +4 0.000550229 18 +3 0.083265075 1 +4 0.000418526 20 +3 0.082872392 1 +4 0.000485616 20 +3 0.084466364 1 +4 0.000508445 19 +3 1.586077941 1 +4 0.000347002 18 +3 0.565763557 1 +4 0.000371357 18 +3 1.121561378 1 +4 0.000438793 20 +3 0.165842554 1 +4 0.000511685 21 +3 0.161127237 1 +4 0.000424980 20 +3 3.077818632 1 +4 0.000452650 20 +3 0.185586315 1 +4 0.000371881 21 +3 0.181483248 1 +4 0.000352713 19 +3 0.265640013 1 +4 0.000356845 17 +3 0.237734230 1 +4 0.000335245 18 +3 0.169878470 1 +4 0.000349162 20 +3 0.157400611 1 +4 0.000384050 21 +3 0.137767120 1 +4 0.000353454 20 +3 0.885723127 1 +3 0.127835187 1 +3 0.146006447 1 +4 0.000416838 248 +3 0.325825520 1 +4 0.000662162 941 +3 0.399307036 1 +4 0.000356040 18 +3 0.499876896 1 +4 0.000349176 19 +3 0.082827014 1 +4 0.000409474 20 +3 0.083267243 1 +4 0.000498996 17 +3 0.083253106 1 +4 0.000358544 17 +3 0.083263726 1 +4 0.000337032 17 +3 0.083042359 1 +4 0.000358627 18 +3 0.083620693 1 +4 0.000350194 20 +3 0.082760510 1 +4 0.000630143 17 +3 0.082784874 1 +4 0.000550076 17 +3 0.082704841 1 +4 0.000574716 19 +3 0.082744908 1 +4 0.000418352 17 +3 0.082774202 1 +4 0.000354258 19 +3 0.082677819 1 +4 0.000378462 16 +3 0.083521815 1 +4 0.000768416 16 +3 0.083022700 1 +4 0.000438248 18 +3 0.450666400 1 +4 0.000497195 188 +3 1.007600483 1 +4 0.000581024 778 +3 0.599384935 1 +4 0.000360129 15 +3 0.500500421 1 +4 0.000365977 15 +3 0.083046809 1 +4 0.000346430 15 +3 0.083022384 1 +4 0.000366479 15 +3 0.083224960 1 +4 0.000465202 15 +3 0.082781315 1 +4 0.001236088 17 +3 0.082531962 1 +4 0.000465791 18 +3 0.083206979 1 +4 0.000429056 16 +3 0.083211682 1 +4 0.000333562 17 +3 0.082977928 1 +4 0.000367388 16 +3 0.082943957 1 +4 0.000365290 17 +3 0.315483208 1 +4 0.000393839 51 +3 1.167665625 2 +4 0.000913033 53 +3 0.182978821 1 +4 0.000398811 41 +3 0.153587089 1 +4 0.000595040 16 +3 0.157539637 1 +4 0.000569714 17 +3 0.137512376 1 +4 0.000658573 16 +3 0.309205758 1 +4 0.000382197 16 +3 0.185911600 1 +4 0.000512091 17 +3 0.149111251 1 +4 0.000396892 16 +3 0.169839512 1 +4 0.000356643 17 +3 0.197498698 1 +4 0.000403258 18 +3 0.169593924 1 +4 0.000339724 16 +3 0.133707454 1 +4 0.000411193 17 +3 0.145624323 1 +4 0.000402009 16 +3 0.613718602 1 +3 0.143849770 1 +3 0.113977538 1 +4 0.000399485 30 +3 0.189809136 1 +4 0.000489080 184 +3 0.207464929 1 +4 0.000396541 41 +3 0.185688210 1 +4 0.000382841 17 +3 0.173560003 1 +4 0.000349710 16 +3 0.169557571 1 +4 0.000380527 17 +3 0.141625411 1 +4 0.000349480 18 +3 0.143540418 1 +4 0.000404076 18 +3 0.500446448 1 +4 0.000528431 18 +3 0.083456864 1 +4 0.000358381 17 +3 0.082908576 1 +4 0.000332441 18 +3 0.082997287 1 +4 0.000323440 17 +3 0.084391379 1 +4 0.000338972 18 +3 0.363607768 1 +4 0.000372113 18 +3 0.153661829 1 +4 0.000360189 17 +3 0.149657377 1 +4 0.000337623 18 +3 0.153708359 1 +4 0.000371589 17 +3 0.197639231 1 +3 0.071919331 1 +4 0.000535106 6 +3 0.281484931 1 +4 0.000363947 17 +3 0.149715247 1 +4 0.000446534 17 +3 0.185630636 1 +4 0.000352668 18 +3 0.301625584 1 +4 0.000420794 17 +3 0.111541731 1 +4 0.000362384 17 +3 0.153487339 1 +4 0.000384289 17 +3 1.077671578 1 +4 0.000373787 29 +3 1.135694313 2 +4 0.000455849 38 +3 0.161894671 1 +4 0.000424980 17 +3 0.157286557 1 +4 0.000414068 24 +3 0.215649944 1 +4 0.000362453 27 +3 0.279634478 1 +4 0.000382029 27 +3 0.079771511 1 +4 0.000338178 27 +3 0.111424942 1 +4 0.000389236 27 +3 0.103723776 1 +4 0.000408895 27 +3 0.279611650 1 +4 0.000438696 28 +3 0.167489619 1 +4 0.000340970 27 +3 0.121779530 1 +4 0.000381886 29 +3 0.141467726 1 +4 0.000342816 27 +3 0.263712595 1 +4 0.000389215 27 +3 0.111460903 1 +4 0.000341648 27 +3 0.207878690 1 +4 0.000441034 27 +3 0.063483895 1 +4 0.000337227 27 +3 0.391866272 1 +4 0.000430578 45 +3 0.087431813 1 +4 0.000346458 36 +3 0.786929049 1 +4 0.109919332 33 +3 0.750768305 1 +4 0.000369786 17 +3 0.295716194 1 +4 0.000366326 17 +3 0.218629147 1 +4 0.000367947 17 +3 5.636919818 1 +4 0.000374497 17 +3 1355.286048369 1 +4 0.109011400 1 +3 1.490559382 1 +4 0.000357441 17 +3 0.295055507 1 +4 0.000315393 17 +3 2.111778287 1 +3 0.096511683 1 +3 0.105319373 1 +4 0.000335261 30 +3 0.253704552 1 +4 0.000436942 149 +3 0.343686706 1 +4 0.000328610 43 +3 0.170833496 1 +4 0.000336496 18 +3 0.164434028 1 +4 0.000314439 17 +3 0.177767839 1 +4 0.000322700 17 +3 0.197573428 1 +4 0.000324172 18 +3 0.177835910 1 +4 0.000312284 17 +3 0.309632372 1 +4 0.000343358 17 +3 0.271619755 1 +3 0.104063983 1 +4 0.000372121 26 +3 0.287775040 1 +4 0.000363707 18 +3 0.111377554 1 +4 0.000349460 18 +3 0.239645302 1 +4 0.000336576 27 +3 0.071735089 1 +4 0.000330810 27 +3 0.151774365 1 +4 0.000323559 27 +3 0.207685137 1 +4 0.000352612 27 +3 0.743594889 1 +4 0.109994294 33 +3 0.402123637 1 +4 0.000459725 31 +3 0.847552031 2 +4 0.000372091 31 +3 2.015571160 1 +4 0.000385207 31 +3 1.631737529 1 +4 0.000360234 27 +3 0.679716084 1 +4 0.000367304 17 +3 0.279650564 1 +4 0.000324321 18 +3 0.655637050 1 +4 0.000411043 27 +3 9.936312957 1 +4 0.000350518 27 +3 0.431347782 1 +4 0.000355531 28 +3 0.503565171 1 +4 0.000398839 27 +3 0.503617679 1 +4 0.000357867 27 +3 0.423588873 1 +4 0.000358174 27 +3 1.847873914 1 +4 0.000405355 27 +3 0.319511106 1 +4 0.000318428 45 +4 0.707294448 18 +3 0.689969912 1 +4 0.110044320 31 +3 1.717323869 1 +4 0.000346123 17 +3 0.414922328 1 +4 0.000333108 9 +3 3.656376669 1 +4 0.000355126 24 +3 0.294989399 1 +4 0.000325068 28 +3 0.167577032 1 +4 0.000325343 28 +3 0.176570876 1 +4 0.000355360 28 +3 0.062913079 1 +4 0.000319204 28 +3 0.183638201 1 +4 0.000305624 29 +3 0.063720709 1 +4 0.000330903 28 +3 0.151643423 1 +4 0.000309986 28 +3 0.087702635 1 +4 0.000315924 28 +3 0.687627731 1 +4 0.000334813 28 +3 1.759871422 1 +4 0.000380929 28 +3 0.215524344 1 +4 0.000325008 28 +3 0.167570983 1 +4 0.000308543 28 +3 0.112563005 1 +4 0.000324025 28 +3 1.343008921 1 +4 0.000329887 28 +3 0.071597918 1 +4 0.000323210 29 +3 0.079624009 1 +4 0.000298985 28 +3 1.015958588 1 +4 0.000369154 17 +3 0.135463553 1 +4 0.000307810 18 +3 0.128003674 1 +4 0.000334953 28 +3 0.111341087 1 +4 0.000312659 28 +3 0.167803786 1 +4 0.000307857 28 +3 1.735851319 1 +4 0.000370105 28 +3 0.383452951 2 +4 0.000317159 24 +3 0.832455739 1 +3 0.079253131 1 +4 0.000431951 28 +3 0.415703583 1 +4 0.000328586 18 +3 0.311548333 1 +4 0.000328201 18 +3 0.698955582 1 +4 0.109992859 37 +3 0.462971498 1 +4 0.000380718 23 +3 0.135433447 1 +4 0.000336163 24 +3 62.410493085 1 +4 0.000358077 19 +3 0.176982743 1 +4 0.000323854 20 +3 0.582668503 1 +3 0.215073430 1 +3 0.129961162 1 +4 0.000381255 162 +3 0.158277679 1 +4 0.000346224 41 +3 0.145075471 1 +4 0.000349158 16 +3 0.165624343 1 +4 0.000418271 16 +3 0.155440827 1 +4 0.000319586 16 +3 0.211726570 1 +4 0.000356541 158 +3 5.368078153 1 +4 0.000354072 43 +3 0.218658167 1 +4 0.000325955 18 +3 0.196551091 1 +4 0.000302677 17 +3 0.201642786 1 +4 0.000340321 17 +3 0.149635875 1 +4 0.000300915 18 +3 2.184866499 1 +4 0.000345788 4 +3 0.272660452 1 +4 0.000348781 4 +3 0.277607983 1 +4 0.000316319 24 +3 0.327564491 1 +4 0.000322444 27 +3 2.751905926 1 +4 0.000336694 27 +3 0.423623387 1 +4 0.000352361 27 +3 0.511757455 1 +4 0.000344154 27 +3 0.071574193 1 +4 0.000315063 27 +3 0.175774578 1 +4 0.000321676 27 +3 0.207621572 1 +4 0.000312464 27 +3 0.319717021 1 +4 0.000340340 27 +3 4.391800618 2 +3 0.138077046 1 +4 0.000353195 94 +3 0.261583195 1 +4 0.000408997 85 +3 0.327629465 1 +4 0.000339131 29 +3 0.217602626 1 +4 0.000355921 18 +3 0.469620162 1 +4 0.000331587 19 +3 0.305749384 1 +4 0.000477633 166 +3 0.597426029 1 +4 0.000373177 150 +3 0.471823730 1 +4 0.000384326 41 +3 0.233567792 1 +4 0.000416471 16 +3 0.165717168 1 +4 0.000363228 16 +3 4.759691707 1 +3 0.167982627 1 +3 0.090004510 1 +4 0.000374936 29 +3 0.333497762 1 +4 0.000442909 142 +3 0.279708427 1 +4 0.000354939 43 +3 0.500668158 1 +4 0.000342487 18 +3 0.083288958 1 +4 0.000393562 17 +3 0.083496591 1 +4 0.000305439 17 +3 0.509420052 1 +4 0.000345250 18 +3 0.181420224 1 +4 0.000338016 17 +3 0.186424176 1 +4 0.000408116 16 +3 0.292862348 1 +4 0.000327081 14 +3 0.239622003 1 +4 0.000405427 17 +3 0.185653517 1 +4 0.000326735 17 +3 0.301690532 1 +4 0.000333015 17 +3 0.185686888 1 +4 0.000320161 17 +3 0.133603576 1 +4 0.000389670 17 +3 0.121537455 1 +4 0.000349007 17 +3 0.133756554 1 +4 0.000348035 17 +3 0.113708278 1 +4 0.000375077 17 +3 0.181588197 1 +4 0.000320146 17 +3 0.247725864 1 +4 0.000345665 4 +3 0.145694291 1 +4 0.000395946 4 +3 0.165451544 1 +4 0.000323197 4 +3 0.161705030 1 +4 0.000344935 4 +3 0.125705497 1 +4 0.000306407 4 +3 0.139302910 1 +4 0.000407498 4 +3 0.164048481 1 +4 0.000320381 4 +3 0.417597010 1 +4 0.000379491 4 +3 0.173635897 1 +4 0.000319662 24 +3 0.193688535 1 +4 0.000335694 27 +3 0.093672109 1 +4 0.000419259 27 +3 0.071599550 1 +4 0.000311541 28 +3 0.183773162 1 +4 0.000338949 27 +3 0.215666458 1 +4 0.000321816 27 +3 0.671793710 2 +4 0.000341553 33 +3 1.047583259 1 +4 0.000344162 16 +3 0.183654957 1 +4 0.000323913 18 +3 0.233793694 1 +4 0.000390101 17 +3 0.509576860 1 +4 0.000325925 17 +3 0.689747099 1 +4 0.000366075 17 +3 2.157542223 1 +4 0.000414784 26 +3 0.199608787 1 +4 0.000327154 18 +3 0.996848027 1 +4 0.109971083 36 +3 5.677291390 1 +4 0.000352075 20 +3 0.287541649 1 +4 0.000324724 20 +3 0.303777177 1 +4 0.000335877 20 +3 4.027017614 1 +4 0.000376221 19 +3 0.148151160 1 +4 0.000318898 20 +3 0.153996016 1 +4 0.000336099 20 +3 0.141326062 1 +4 0.000301818 20 +3 0.247873353 1 +3 0.113937336 1 +4 0.000345598 29 +3 0.229781504 1 +4 0.000361327 43 +3 0.121498710 1 +4 0.000317212 20 +3 0.141844049 1 +4 0.000337465 19 +3 0.247712021 1 +4 0.000355190 88 +3 0.703645321 1 +4 0.000419216 45 +3 0.207377514 2 +4 0.000328790 34 +3 0.159694452 1 +4 0.000339405 16 +3 0.161693631 1 +4 0.000303017 18 +3 0.341763799 1 +4 0.000344438 18 +3 1.015607522 1 +4 0.000337297 33 +3 0.231808474 1 +4 0.000345310 18 +3 0.183609427 1 +4 0.000348803 18 +3 0.151621169 1 +4 0.000340968 18 +3 0.071617354 1 +4 0.000340082 18 +3 0.151636128 1 +4 0.000326752 18 +3 0.127790406 1 +4 0.000347013 18 +3 0.167664123 1 +4 0.000361627 18 +3 0.119539753 1 +4 0.000334043 18 +3 0.303835058 1 +4 0.000393910 18 +3 0.087515898 1 +4 0.000330357 19 +3 0.375829127 1 +4 0.000381315 18 +3 0.129554274 1 +4 0.000329974 17 +3 0.085547027 1 +4 0.000333917 18 +3 0.159760955 1 +4 0.000319214 19 +3 0.119675564 1 +4 0.000324081 18 +3 0.231671824 1 +4 0.000344584 17 +3 0.081850440 1 +4 0.000328694 18 +3 0.133533946 1 +4 0.000338481 18 +3 0.207610747 1 +4 0.000320407 18 +3 0.095620195 1 +4 0.000305295 18 +3 0.519738841 1 +4 0.000347186 18 +3 0.095699160 1 +4 0.000321257 18 +3 0.103615810 1 +4 0.000349111 17 +3 0.719747780 1 +4 0.000329712 18 +3 0.263761306 1 +4 0.000343076 18 +3 0.199484445 1 +4 0.000335516 16 +3 0.128462380 1 +4 0.000339980 13 +3 0.118964420 1 +4 0.000322799 11 +3 0.079629165 1 +4 0.000320585 11 +3 0.119613685 1 +4 0.000365738 13 +3 0.071779378 1 +4 0.000333589 16 +3 0.119539596 1 +4 0.000330669 18 +3 0.191683622 1 +4 0.000320680 18 +3 0.183700306 1 +4 0.000306913 19 +3 0.183773381 1 +4 0.000328223 18 +3 0.095678195 1 +4 0.000312077 18 +3 0.175588035 1 +4 0.000333542 18 +3 0.087738779 1 +4 0.000302918 18 +3 0.047544625 1 +4 0.000384855 18 +3 0.255723045 1 +4 0.000313346 18 +3 0.160157003 1 +4 0.000324507 18 +3 0.111359765 1 +4 0.000333551 18 +3 0.151767421 1 +4 0.000312405 18 +3 0.303397461 2 +4 0.000363249 33 +3 0.177841572 1 +4 0.000320580 17 +3 0.149535897 1 +4 0.000335614 17 +3 0.154196825 1 +4 0.000320025 17 +3 0.109240108 1 +4 0.000315702 4 +3 0.639770085 1 +4 0.000346749 19 +3 0.535670249 1 +4 0.000331265 17 +3 0.185671951 1 +4 0.000350951 16 +3 5.125904385 1 +4 0.000431425 88 +3 0.186977482 1 +4 0.000385201 104 +3 0.452241058 1 +4 0.000375841 44 +3 0.121656381 1 +4 0.000360525 34 +3 0.165573345 1 +4 0.000356146 54 +3 0.263466455 1 +4 0.000328059 16 +3 0.209585261 1 +4 0.000316103 18 +3 0.157813780 1 +4 0.000328357 16 +3 0.169852196 1 +4 0.000395202 16 +3 3.461723285 1 +4 0.000362811 16 +3 0.255532421 1 +4 0.000339689 18 +3 0.119616008 1 +4 0.000325998 18 +3 0.170355554 1 +4 0.000367394 17 +3 0.285071366 1 +3 0.071817285 1 +4 0.000412397 4 +3 0.143702867 1 +3 0.055910855 1 +4 0.000414719 5 +3 14.440866789 1 +4 0.000355757 24 +3 0.270870488 1 +4 0.000344692 19 +3 1.003915582 1 +4 0.109901407 33 +3 7.398756208 1 +4 0.000565541 905 +3 2.151348317 1 +4 0.000597751 775 +3 0.535104159 1 +4 0.000567414 885 +3 3.455623341 1 +4 0.000356962 15 +3 0.499621583 1 +4 0.000334991 15 +3 0.082746921 1 +4 0.000367092 15 +3 0.082809523 1 +4 0.000307765 17 +3 0.083042775 1 +4 0.000305767 18 +3 0.083620957 1 +4 0.000303635 15 +3 0.083543148 1 +4 0.000395460 15 +3 0.082977878 1 +4 0.000345953 15 +3 0.083546396 1 +4 0.000356394 17 +3 0.083402942 1 +4 0.000380225 18 +3 0.083511060 1 +4 0.000337833 16 +3 0.317250225 1 +4 0.000347420 16 +3 3.269957967 1 +4 0.000411221 16 +3 0.500100450 1 +4 0.000332747 16 +3 0.083269372 1 +4 0.000375851 17 +3 0.083184899 1 +4 0.000355772 17 +3 0.084111434 1 +4 0.000404485 15 +3 0.082862947 1 +4 0.000324645 15 +3 0.082880334 1 +4 0.000364168 15 +3 0.082942671 1 +4 0.000348189 18 +3 1.733670017 1 +4 0.000367479 18 +3 0.169798494 1 +4 0.000316243 15 +3 0.165723069 1 +4 0.000409110 15 +3 0.359556527 1 +3 0.146319761 1 +4 0.000380726 28 +3 0.421481252 1 +4 0.000588725 806 +3 0.399268717 1 +4 0.000413960 19 +3 0.499965393 1 +4 0.000374304 18 +3 0.083201716 1 +4 0.000362287 17 +3 0.083516925 1 +4 0.000308564 19 +3 0.083207789 1 +4 0.000305446 19 +3 0.083147296 1 +4 0.000321533 20 +3 0.495046928 1 +4 0.000326144 18 +3 0.497512357 1 +4 0.000354661 17 +3 0.083577867 1 +4 0.000325406 20 +3 0.082751067 1 +4 0.000332784 20 +3 0.083050111 1 +4 0.000325669 20 +3 0.083128025 1 +4 0.000339349 19 +3 0.083053302 1 +4 0.000322173 17 +3 0.083069129 1 +4 0.000329116 20 +3 0.082803835 1 +4 0.000342221 20 +3 0.083184165 1 +4 0.000319960 21 +3 0.083367062 1 +4 0.000313845 19 +3 0.082733046 1 +4 0.000314193 20 +3 1.273743625 1 +4 0.000382171 61 +3 0.911675042 2 +4 0.000413945 91 +3 0.335606840 1 +4 0.000338940 17 +3 0.223600080 1 +3 0.154015266 1 +4 0.000350944 40 +3 0.237638708 1 +4 0.000387173 18 +3 0.137585301 1 +4 0.000364394 17 +3 6.941973560 1 +3 0.169994410 1 +4 0.000351093 57 +3 5.229817087 1 +4 0.000353408 17 +3 0.895529177 1 +4 0.000378019 63 +3 1.823769261 1 +4 0.000558188 48 +3 0.727480849 1 +4 0.000346612 9 +3 0.103564042 1 +4 0.000418594 43 +3 0.479619362 1 +4 0.000581226 17 +3 0.783466733 1 +4 0.000397266 10 +3 0.311567758 1 +4 0.000468045 1 +3 0.183529936 1 +4 0.000446948 1 +3 0.175665108 1 +4 0.000347008 1 +3 0.295546700 1 +4 0.000488259 1 +3 0.311713969 1 +4 0.000708820 426 +3 0.543277569 1 +4 0.000468093 191 +3 0.370453129 1 +4 0.000436304 195 +3 0.332492711 1 +4 0.000516417 629 +3 2.297769577 1 +4 0.000375844 17 +3 1.349639570 1 +4 0.000539640 516 +3 0.169431993 1 +4 0.000381393 58 +3 0.957581268 1 +4 0.000369523 10 +3 0.159576813 1 +4 0.000359247 1 +3 0.087702014 1 +4 0.000325770 1 +4 0.000404527 71 +3 0.471205359 1 +4 0.000347201 37 +3 0.499925798 1 +4 0.000339188 20 +3 0.083415211 1 +4 0.000310028 17 +3 0.083391046 1 +4 0.000307447 16 +3 0.082895739 1 +4 0.000307431 18 +3 0.083394592 1 +4 0.000310969 17 +3 0.083139837 1 +4 0.000339507 19 +3 0.082927037 1 +4 0.000310078 16 +3 8.255292921 1 +4 0.000399911 16 +3 0.154649653 1 +4 0.000327368 18 +3 0.156068589 1 +4 0.000333478 17 +3 0.185684061 1 +4 0.000303888 19 +3 0.645740718 1 +4 0.000339869 17 +3 0.209568252 1 +4 0.000352399 16 +3 0.181665352 1 +4 0.000300823 17 +3 1.183886754 1 +3 0.079931813 1 +4 0.000368609 24 +3 0.135650054 1 +4 0.000331397 17 +3 0.287578764 1 +4 0.000408887 17 +3 0.511566421 2 +4 0.000358917 32 +3 0.183823846 1 +4 0.000359244 22 +3 0.175544051 1 +4 0.000339007 23 +3 0.743690311 1 +4 0.000388158 16 +3 0.242018541 1 +4 0.000324740 18 +3 0.205240057 1 +4 0.000326932 19 +3 0.201744955 1 +4 0.000384731 20 +3 0.197564455 1 +4 0.000331179 17 +3 0.202047265 1 +4 0.000343138 19 +3 0.205735276 1 +4 0.000394812 16 +3 0.279264151 1 +4 0.000323404 18 +3 0.499895957 1 +4 0.000369741 20 +3 0.083569476 1 +4 0.000307162 17 +3 0.083267533 1 +4 0.000382126 19 +3 0.083133696 1 +4 0.000319785 20 +3 0.083082217 1 +4 0.000311716 17 +3 0.438926962 1 +4 0.000308596 16 +3 0.381920137 1 +3 0.223951188 1 +3 0.105984888 1 +4 0.000342800 30 +3 0.373632952 1 +4 0.000429730 329 +3 0.671880020 1 +4 0.000368303 42 +3 0.145342356 1 +4 0.000319131 17 +3 0.405714676 1 +3 0.064015291 1 +4 0.000407190 28 +3 0.159571256 1 +4 0.000359129 17 +3 0.135739925 1 +4 0.000342254 17 +3 0.095414506 1 +4 0.000385877 17 +3 0.263781157 1 +4 0.000341915 17 +3 0.143633585 1 +4 0.000341779 17 +3 0.127773709 1 +4 0.000326438 17 +3 0.096178447 1 +4 0.000407714 17 +3 0.150944671 1 +4 0.000324320 17 +3 1.167778613 2 +4 0.000450760 32 +3 1.151657400 1 +3 0.087857087 1 +4 0.000353619 28 +3 1.343853416 2 +4 0.000410493 36 +3 0.767628835 1 +4 0.000393689 17 +3 0.823535322 1 +4 0.000350832 17 +3 0.607779189 1 +4 0.000330991 23 +3 0.567719946 1 +4 0.000345112 41 +3 0.415541324 1 +4 0.000342291 40 +3 0.215587583 1 +4 0.000332996 40 +3 0.271815338 1 +4 0.000356992 40 +3 0.726008674 1 +4 0.110033117 32 +3 0.739536474 1 +4 0.000366927 16 +3 0.431716905 1 +4 0.000367342 20 +3 0.247730542 1 +4 0.000435044 16 +3 0.153581531 1 +4 0.000328017 18 +3 0.165388638 1 +4 0.000321800 19 +3 0.161953265 1 +4 0.000356221 20 +3 0.157434805 1 +4 0.000324051 17 +3 0.137776152 1 +4 0.000331819 19 +3 0.166259555 1 +4 0.000312381 16 +3 0.247121126 1 +4 0.000392045 18 +3 0.499770198 1 +4 0.000333407 20 +3 0.083248530 1 +4 0.000307234 17 +3 0.083307513 1 +4 0.000409962 19 +3 0.082946162 1 +4 0.000312854 20 +3 0.363169418 1 +4 0.000346906 17 +3 8.429939840 1 +4 0.000355388 16 +3 0.239519158 1 +3 0.079944635 1 +4 0.000446971 28 +3 0.999708399 1 +4 0.000371364 17 +3 0.231399429 1 +4 0.000337278 17 +3 0.247770548 1 +4 0.000331658 17 +3 0.807599971 2 +4 0.000440067 27 +3 0.137837192 1 +4 0.000320814 16 +3 3.277671637 1 +4 0.000349084 23 +3 2.479738186 1 +4 0.000437566 31 +3 0.383502557 1 +4 0.000352195 31 +3 0.815744863 1 +4 0.000353932 31 +3 2.607751895 1 +4 0.000414627 31 +3 0.471841722 1 +4 0.000350908 31 +3 4.223463535 1 +4 0.000364000 32 +3 0.895657056 1 +4 0.000342411 31 +3 6.560153255 2 +4 0.000392008 35 +3 0.487401076 1 +4 0.000331628 19 +3 0.359759861 1 +4 0.000431837 16 +3 0.727411615 1 +3 0.071871017 1 +4 0.000334399 28 +3 0.184029362 1 +4 0.000357277 17 +3 0.271597042 1 +4 0.000333227 17 +3 0.007953852 1 +4 0.000353027 17 +3 0.407629558 1 +4 0.000342284 16 +3 0.239440204 1 +4 0.000399439 16 +3 0.271562646 1 +4 0.000315251 17 +3 0.015736464 1 +4 0.000328911 17 +3 0.463671983 1 +4 0.000386971 16 +3 0.255520313 1 +4 0.000396876 17 +3 0.255575574 1 +4 0.000319696 17 +3 0.327885831 1 +4 0.000370830 17 +3 0.135785420 1 +4 0.000308482 26 +3 0.063340907 1 +4 0.000354097 26 +3 0.760099189 2 +4 0.000349488 35 +3 0.263620209 1 +4 0.000430686 19 +3 2.655481019 1 +4 0.000352994 16 +3 0.201493229 1 +4 0.000388037 17 +3 0.565590496 1 +4 0.000340637 17 +3 0.279623962 1 +4 0.000403302 16 +3 0.217726250 1 +4 0.000330488 16 +3 0.157942626 1 +4 0.000341139 16 +3 0.153577727 1 +4 0.000391217 16 +3 1.629471085 1 +4 0.000365359 4 +3 0.153936121 1 +4 0.000353264 4 +3 0.157494105 1 +4 0.000387426 23 +3 3.815804737 2 +4 0.000555868 607 +3 0.185304508 1 +3 0.726180765 1 +4 0.000587305 896 +3 0.145166099 1 +4 0.000343318 17 +3 0.453717138 1 +4 0.000343318 18 +3 0.423806171 1 +4 0.000328304 32 +3 0.311473677 1 +4 0.000356712 51 +3 0.463701906 2 +4 0.000363047 31 +3 0.162468850 1 +4 0.000381771 17 +3 0.212936288 1 +4 0.000328744 17 +3 0.201572542 1 +4 0.000318393 17 +3 0.158188635 1 +4 0.000346781 17 +3 0.153086812 1 +4 0.000310759 17 +3 0.181748570 1 +4 0.000327495 17 +3 0.224633589 1 +4 0.000327160 24 +3 3.083265476 7 +4 0.000413328 55 +4 0.708396562 17 +3 0.109938943 1 +4 0.110046238 33 +3 1.131997691 1 +4 0.000368514 18 +3 0.614589204 1 +4 0.000348852 17 +3 7.328427097 1 +3 0.071398870 1 +4 0.000340671 29 +3 0.247583410 1 +4 0.000325206 18 +3 0.191682188 1 +4 0.000318153 18 +3 0.103684604 1 +4 0.000308663 17 +3 0.119653908 1 +4 0.000354466 18 +3 0.007920117 1 +4 0.000312124 19 +3 0.503678429 1 +4 0.000342666 18 +3 0.247490366 1 +4 0.000315711 19 +3 0.879814337 1 +4 0.000355112 18 +3 0.191647045 1 +4 0.000415816 18 +3 0.095496496 1 +4 0.000324130 18 +3 1.727941926 2 +4 0.000390151 24 +3 0.145311050 1 +4 0.000361530 17 +3 0.351067244 1 +3 0.086891293 1 +4 0.000376008 33 +3 1.159520811 1 +4 0.000356484 18 +3 1.631586569 1 +4 0.000360394 18 +3 2.223806976 1 +4 0.000348027 18 +3 5.303916208 2 +4 0.000397893 42 +3 0.383392549 1 +4 0.000343944 17 +3 0.153586044 1 +4 0.000327230 17 +3 0.165955767 1 +4 0.000350745 17 +3 0.145506471 1 +4 0.000327568 17 +3 0.149646704 1 +4 0.000394312 17 +3 0.177641094 1 +4 0.000337041 17 +3 0.165864558 1 +4 0.000322018 18 +3 0.137981608 1 +4 0.000327508 17 +3 0.485219823 1 +4 0.000357033 4 +3 0.311700882 1 +4 0.000414137 17 +3 0.500029320 1 +4 0.000351715 18 +3 0.082610702 1 +4 0.000335635 17 +3 0.083552630 1 +4 0.000323946 17 +3 0.083191415 1 +4 0.000311562 17 +3 0.250983064 1 +4 0.000322803 17 +3 0.189509172 1 +4 0.000311570 24 +3 0.367953067 1 +4 0.000402579 44 +4 0.708053942 18 +3 0.083378469 2 +4 0.000421970 37 +3 1.377642309 1 +4 0.000354773 19 +3 0.197731080 1 +4 0.000340457 20 +3 0.385502092 1 +4 0.000390110 20 +3 0.541627942 1 +4 0.000395369 18 +3 0.215837621 1 +4 0.000316576 24 +3 0.311575327 1 +4 0.000375469 19 +3 0.399886694 1 +4 0.000335074 20 +3 0.863526521 1 +4 0.000439261 19 +3 0.699983695 1 +4 0.110027389 33 +3 5.894499112 1 +4 0.000451518 20 +3 0.202621066 1 +4 0.000320801 19 +3 0.155971941 1 +4 0.000410889 20 +3 1.207458435 1 +4 0.000353441 17 +3 0.519857411 1 +4 0.000348953 24 +3 0.335643444 1 +4 0.000335709 20 +3 0.935719660 1 +4 0.000407745 20 +3 0.745725890 1 +4 0.110057260 33 +3 5.096001875 1 +4 0.000375705 18 +3 0.208285701 1 +4 0.000335118 17 +3 0.500229484 1 +4 0.000351746 17 +3 0.082089645 1 +4 0.000304275 17 +3 0.082961955 1 +4 0.000381201 18 +3 0.083131641 1 +4 0.000306994 17 +3 0.083585185 1 +4 0.000395186 18 +3 0.373142920 1 +4 0.000344102 18 +3 0.169563174 1 +4 0.000352400 17 +3 0.229835133 1 +4 0.000324837 17 +3 4.448064965 1 +4 0.000354894 18 +3 0.225338934 1 +4 0.000348300 17 +3 0.293659106 1 +4 0.000321764 17 +3 0.201812583 1 +4 0.000386869 18 +3 0.405460344 1 +4 0.000346744 17 +3 0.500122367 1 +4 0.000358785 17 +3 0.083259233 1 +4 0.000314479 17 +3 0.083574798 1 +4 0.000311706 17 +3 0.082828057 1 +4 0.000319412 17 +3 0.083388392 1 +4 0.000321179 17 +3 0.083681547 1 +4 0.000355028 18 +3 0.466832397 1 +4 0.000344230 17 +3 26.935338372 1 +4 0.000437200 17 +3 0.499741069 1 +4 0.000354244 17 +3 0.082820682 1 +4 0.000311809 17 +3 0.082888909 1 +4 0.000309663 17 +3 0.083270332 1 +4 0.000323716 17 +3 0.083815610 1 +4 0.000312243 17 +3 0.082827600 1 +4 0.000321313 17 +3 0.083498993 1 +4 0.000338685 17 +3 0.082869333 1 +4 0.000321419 18 +3 0.083316232 1 +4 0.000312199 17 +3 5.871279492 1 +4 0.000344698 18 +3 0.249514726 1 +4 0.000383238 19 +3 0.317703189 1 +4 0.000323249 20 +3 0.193482584 1 +4 0.000305137 18 +3 0.949820398 1 +3 0.096099933 1 +3 0.122987696 1 +4 0.000418853 31 +3 0.212453658 1 +4 0.000364048 179 +3 0.287711755 1 +4 0.000331579 41 +3 0.153836709 1 +4 0.000311394 16 +3 0.373422885 1 +4 0.000355467 16 +3 0.263747926 1 +4 0.000343796 16 +3 0.185613747 1 +4 0.000355462 16 +3 0.253735948 1 +4 0.000305528 16 +3 0.185902430 1 +4 0.000346254 16 +3 0.157376420 1 +4 0.000314771 17 +3 0.145911915 1 +4 0.000322312 16 +3 0.101681818 1 +4 0.000309979 18 +3 0.137425196 1 +4 0.000309656 18 +3 0.373925187 1 +4 0.000365363 24 +3 0.191397497 1 +4 0.000334851 31 +3 0.152638766 1 +4 0.000332264 31 +3 0.062935512 1 +4 0.000317057 31 +3 0.191640837 1 +4 0.000332105 31 +3 0.111562845 1 +4 0.000334212 31 +3 0.087713075 1 +4 0.000307308 31 +3 0.023895233 1 +4 0.000376620 31 +3 0.071305173 1 +4 0.000314625 31 +3 0.135882091 1 +4 0.000331895 31 +3 0.112892436 1 +4 0.000318745 32 +3 0.398540363 2 +4 0.000347929 36 +3 0.145543747 1 +4 0.000310408 18 +3 0.181733383 1 +4 0.000310710 19 +3 0.225791287 1 +4 0.000358431 20 +3 0.293422000 1 +4 0.000413438 19 +3 0.287674279 1 +4 0.000331060 20 +3 1.751776737 1 +4 0.000386746 18 +3 0.255480713 1 +4 0.000355248 17 +3 0.193905578 1 +4 0.000354053 18 +3 0.277552573 1 +3 0.056022450 1 +4 0.000337430 28 +3 0.215669320 1 +4 0.000392293 18 +3 0.751567284 1 +4 0.000343946 18 +3 0.159544512 1 +4 0.000339343 18 +3 0.738907235 1 +4 0.110079893 37 +3 0.046918166 1 +4 0.000346342 17 +3 1.951583337 1 +4 0.000336705 17 +3 0.271900166 1 +4 0.000329704 17 +3 0.201801219 1 +4 0.000320399 17 +3 0.181508584 1 +4 0.000311770 17 +3 0.169907266 1 +4 0.000367005 17 +3 0.661357828 1 +4 0.000358258 17 +3 2.167868078 1 +4 0.000422447 19 +3 0.201708762 1 +4 0.000321464 20 +3 0.285464595 1 +4 0.000333990 18 +3 1.951700809 1 +4 0.000347358 4 +3 0.391721772 1 +4 0.000337571 18 +3 0.185483810 1 +4 0.000353506 19 +3 0.213953442 1 +4 0.000308516 20 +3 1.199619712 1 +4 0.000420574 4 +3 1.935588071 1 +4 0.000340007 17 +3 0.500493774 1 +4 0.000344335 19 +3 0.082886485 1 +4 0.000376775 20 +3 0.083138078 1 +4 0.000321539 17 +3 0.083191881 1 +4 0.000305872 19 +3 0.083334596 1 +4 0.000308127 16 +3 0.083456869 1 +4 0.000337756 20 +3 0.083357583 1 +4 0.000327672 19 +3 0.245553300 1 +4 0.000334643 21 +3 0.217664280 1 +4 0.000336961 17 +3 0.189667138 1 +4 0.000313081 18 +3 0.169903078 1 +4 0.000322471 20 +3 0.149403068 1 +4 0.000373311 17 +3 0.583752446 1 +4 0.000365052 9 +3 0.311420326 1 +4 0.000334050 1 +3 0.113709736 1 +4 0.000328754 1 +3 0.269629311 1 +4 0.000334443 1 +3 0.199817057 1 +4 0.000336559 13 +4 0.000338588 45 +3 1.063427309 1 +4 0.000394966 41 +3 0.500115589 1 +4 0.000345806 20 +3 0.083139629 1 +4 0.000358336 17 +3 0.082598810 1 +4 0.000345737 19 +3 0.084031462 1 +4 0.000343220 20 +3 0.208172960 1 +4 0.000333316 19 +3 0.353593933 1 +4 0.000364028 20 +3 1.638053347 1 +4 0.000376336 4 +3 0.455382229 1 +4 0.000333648 17 +3 0.247648687 1 +4 0.000335276 31 +3 0.711882600 1 +4 0.000350656 39 +4 0.708294247 18 +3 0.319934314 1 +4 0.110026734 31 +3 31.510486412 1 +4 0.000365444 19 +3 0.217423519 1 +4 0.000342183 20 +3 0.165727326 1 +4 0.000373901 18 +3 0.193576422 1 +4 0.000389807 20 +3 0.501809418 1 +4 0.000370361 18 +3 0.185479186 1 +4 0.000353245 17 +3 0.165738100 1 +4 0.000391552 17 +3 0.185568811 1 +4 0.000326827 17 +3 0.389645144 1 +3 0.079955068 1 +4 0.000362696 7 +3 0.239817965 1 +4 0.000337478 17 +3 0.499804687 1 +4 0.000329867 18 +3 0.083927622 1 +4 0.000336878 19 +3 0.082239166 1 +4 0.000320152 20 +3 0.083317108 1 +4 0.000311769 17 +3 0.083328906 1 +4 0.000349950 19 +3 10.398342245 1 +4 0.000339689 20 +3 0.190926873 1 +4 0.000343843 17 +3 0.193983113 1 +4 0.000311998 17 +3 0.181405177 1 +4 0.000335518 18 +3 0.743747351 1 +3 0.080750263 1 +4 0.000362917 29 +3 0.983969402 2 +4 0.000361177 28 +3 0.326649869 1 +4 0.000392960 6 +3 0.185789164 1 +4 0.000325462 4 +3 0.157535507 1 +4 0.000411977 4 +3 0.129429124 1 +4 0.000316986 4 +3 0.134168711 1 +4 0.000349959 4 +3 0.161309787 1 +4 0.000338609 4 +3 0.117658051 1 +4 0.000363040 4 +3 0.249687333 1 +4 0.000333827 4 +3 0.397558284 1 +4 0.000342014 4 +3 0.143659469 1 +4 0.000318067 24 +3 0.223862839 1 +4 0.000406197 27 +3 0.159432209 1 +4 0.000353186 27 +3 0.183718252 1 +4 0.000352853 27 +3 0.560775341 2 +4 0.000342059 36 +3 0.366510501 1 +4 0.000346896 17 +3 0.169856402 1 +4 0.000338191 15 +3 0.181495702 1 +4 0.000381002 9 +3 0.959741177 1 +3 0.063922857 1 +4 0.000342183 29 +3 0.231615735 1 +4 0.000340924 13 +3 0.135678664 1 +4 0.000323864 16 +3 0.111820454 1 +4 0.000345612 17 +3 0.111566508 1 +4 0.000389733 18 +3 0.415649943 2 +4 0.000341770 28 +3 0.137739006 1 +4 0.000318061 18 +3 0.445512459 1 +3 0.072001743 1 +4 0.000404452 33 +3 0.159687980 1 +4 0.000323236 18 +3 0.087563053 1 +4 0.000315358 18 +3 0.095820094 1 +4 0.000368675 18 +3 0.207459649 1 +4 0.000327594 18 +3 0.143768333 1 +4 0.000349465 18 +3 0.511556634 1 +4 0.000336677 18 +3 0.137695863 1 +4 0.000335991 18 +3 0.397707766 1 +4 0.000343216 18 +3 0.423783351 2 +4 0.000347446 28 +3 1.055613217 1 +4 0.000340383 17 +3 0.215749254 1 +4 0.000342298 33 +3 0.199529985 1 +4 0.000397427 18 +3 0.191675036 1 +4 0.000346706 18 +3 0.359683867 2 +4 0.000369961 12 +3 0.119499816 1 +4 0.000316543 1 +3 0.071884463 1 +4 0.000337752 1 +4 0.000406056 71 +3 16.864636688 1 +4 0.000417982 39 +3 1.982761857 1 +4 0.000364483 16 +3 0.201773522 1 +4 0.000370579 19 +3 0.197459498 1 +4 0.000330729 20 +3 0.185686403 1 +4 0.000365432 20 +3 0.325699985 1 +3 0.279889565 1 +3 0.122194256 1 +4 0.000397331 158 +3 0.141506476 1 +4 0.000328477 41 +3 0.161643732 1 +4 0.000402495 16 +3 0.133583723 1 +4 0.000327938 16 +3 0.146028919 1 +4 0.000349062 16 +3 0.117267672 1 +4 0.000323723 16 +3 0.121732123 1 +4 0.000382146 17 +3 0.181705721 1 +4 0.000361214 16 +3 0.295675391 1 +4 0.000433182 164 +3 36.441560549 1 +4 0.000394892 41 +3 0.176818774 1 +4 0.000337521 16 +3 0.157633029 1 +4 0.000312926 16 +3 0.185768636 1 +4 0.000395215 16 +3 0.381511190 1 +4 0.000334361 16 +3 0.167888328 1 +4 0.000342384 18 +3 0.153562610 1 +4 0.000304993 17 +3 0.181654295 1 +4 0.000423831 18 +3 0.161419461 1 +4 0.000311281 17 +3 0.141734011 1 +4 0.000325034 17 +3 0.169768560 1 +4 0.000328403 18 +3 0.149646269 1 +4 0.000346239 18 +3 0.319604919 1 +4 0.000331568 18 +3 0.431854030 1 +4 0.000383382 18 +3 0.500341945 1 +4 0.000361535 17 +3 0.082386950 1 +4 0.000334650 17 +3 0.082928473 1 +4 0.000324967 17 +3 0.083439928 1 +4 0.000338704 17 +3 0.082800886 1 +4 0.000320995 17 +3 0.083070466 1 +4 0.000375476 17 +3 0.083388393 1 +4 0.000332583 17 +3 0.083681173 1 +4 0.000338640 17 +3 0.732952042 1 +4 0.000336557 17 +3 0.477571104 1 +4 0.000341230 4 +3 0.111584609 1 +4 0.000329798 39 +3 0.807798820 1 +4 0.000371883 31 +3 1.879777050 1 +4 0.000346880 38 +3 0.575594195 2 +4 0.000403331 34 +3 0.279481085 1 +4 0.000341609 17 +3 0.193731862 1 +4 0.000353646 17 +3 0.133635967 1 +4 0.000326808 17 +3 0.199653806 1 +4 0.000343865 18 +3 0.217632124 1 +4 0.000327499 17 +3 0.333914145 1 +4 0.000346748 17 +3 0.201475101 1 +4 0.000325034 17 +3 0.253845553 1 +4 0.000353298 17 +3 0.217519276 1 +4 0.000317614 17 +3 0.197699767 1 +4 0.000341367 17 +3 0.279697713 1 +4 0.000347395 4 +3 4.391931838 1 +4 0.000382826 9 +3 0.159420283 1 +4 0.000335654 1 +3 0.111719368 1 +4 0.000347944 1 +4 0.000972742 10 +4 0.000403494 61 +3 2.110386452 1 +4 0.000369178 39 +3 17.034834764 1 +4 0.000383986 19 +3 0.497234888 1 +4 0.000337602 20 +3 0.084271274 1 +4 0.000325667 21 +3 0.082062227 1 +4 0.000307956 20 +3 0.083458142 1 +4 0.000378024 18 +3 0.083199922 1 +4 0.000337838 17 +3 0.082989013 1 +4 0.000313158 19 +3 0.082832977 1 +4 0.000348033 19 +3 0.083541463 1 +4 0.000328121 19 +3 0.082929197 1 +4 0.000313910 18 +3 0.083452781 1 +4 0.000309767 17 +3 0.082767924 1 +4 0.000311219 19 +3 0.083015240 1 +4 0.000346502 20 +3 0.082732345 1 +4 0.000313155 19 +3 0.083514591 1 +4 0.000374006 37 +3 0.083202819 1 +4 0.000344767 46 +3 0.082762877 1 +4 0.000359216 94 +3 0.083311882 1 +4 0.000376838 152 +3 0.082723059 1 +4 0.000363037 47 +3 0.083441576 1 +4 0.000382240 98 +3 0.083381556 1 +4 0.000379171 152 +3 0.082387028 1 +4 0.000371299 86 +3 0.083603851 1 +4 0.000352149 38 +3 13.187291173 1 +4 0.000364475 20 +3 0.201591490 1 +4 0.000341083 19 +3 0.181550902 1 +4 0.000331003 16 +3 0.351762681 1 +4 0.000348213 16 +3 0.218037835 1 +4 0.000314279 19 +3 0.141360603 1 +4 0.000334775 16 +3 0.217421174 1 +4 0.000347537 16 +3 1.613955996 1 +4 0.000399838 20 +3 0.153400809 1 +4 0.000326442 4 +3 0.605790128 1 +4 0.000375715 16 +3 0.159963188 1 +4 0.000369091 20 +3 0.175264072 1 +4 0.000390057 17 +3 0.201687192 1 +4 0.000344551 16 +3 0.157495908 1 +4 0.000339017 17 +3 0.169631706 1 +4 0.000328428 16 +3 0.325859306 1 +4 0.000351315 16 +3 0.201655096 1 +4 0.000338171 16 +3 0.197485573 1 +4 0.000406494 18 +3 0.375701536 1 +4 0.000333841 19 +3 8.552199557 1 +4 0.000384966 16 +3 0.499368787 1 +4 0.000326486 17 +3 0.083035429 1 +4 0.000395329 17 +3 0.082744859 1 +4 0.000316918 16 +3 0.083822819 1 +4 0.000348257 16 +3 2.153854370 1 +4 0.000359777 16 +3 0.454970727 1 +4 0.000381231 16 +3 2.903628235 1 +4 0.000397139 4 +3 0.137652738 1 +4 0.000370089 4 +3 14.879197379 1 +4 0.000588898 762 +3 5.222678102 1 +4 0.000550454 793 +3 0.153450247 1 +4 0.000348693 4 +3 1.341483527 1 +4 0.000389025 17 +3 0.199684507 1 +4 0.000320075 24 +3 0.119439232 1 +4 0.000384750 34 +3 0.143774044 1 +4 0.000316257 34 +3 0.079693380 1 +4 0.000378889 34 +3 0.111870144 1 +4 0.000321397 34 +3 0.191442427 1 +4 0.000335188 35 +3 0.495698254 2 +4 0.000347889 34 +3 0.135636537 1 +4 0.000331297 17 +3 0.169760444 1 +4 0.000355278 17 +3 0.165496749 1 +4 0.000346968 17 +3 0.153680419 1 +4 0.000318333 17 +3 0.125792663 1 +4 0.000339694 17 +3 0.183624102 1 +4 0.000334578 4 +3 0.153758616 1 +4 0.000342895 4 +3 0.165566675 1 +4 0.000329560 4 +3 0.137908416 1 +4 0.000404009 7 +3 0.349276207 1 +4 0.000346136 5 +3 18.160593708 1 +4 0.000363397 19 +3 0.337569975 1 +4 0.000330696 20 +3 0.165697402 1 +4 0.000342986 20 +3 0.169507433 1 +4 0.000333203 19 +3 0.413625250 1 +4 0.000359561 20 +3 0.271674243 1 +4 0.000361874 17 +3 0.169540245 1 +4 0.000346444 17 +3 0.173734662 1 +4 0.000349677 17 +3 0.169738408 1 +4 0.000351974 17 +3 0.197583944 1 +4 0.000319564 18 +3 0.185640509 1 +4 0.000343136 17 +3 0.285756461 1 +4 0.000326809 17 +3 0.232292994 1 +4 0.000388610 17 +3 0.110906483 1 +4 0.000307183 24 +3 0.623734540 2 +4 0.000376785 33 +3 0.223759608 1 +4 0.000342357 24 +3 0.160654122 1 +4 0.000315471 32 +3 0.134793593 1 +4 0.000329562 32 +3 0.167385993 1 +4 0.000319999 32 +3 0.087692138 1 +4 0.000358351 32 +3 0.199660073 1 +4 0.000344751 33 +3 0.407927178 2 +4 0.000420648 36 +3 0.543366155 1 +4 0.000340478 17 +3 0.375853191 1 +4 0.000378380 18 +3 0.217433113 1 +4 0.000328987 17 +3 1.405781702 1 +4 0.000347724 4 +3 0.137652772 1 +4 0.000364203 4 +3 2.253770331 1 +4 0.000337139 17 +3 0.257778530 1 +4 0.000387409 17 +3 3.269870180 1 +4 0.000343585 17 +3 0.271446679 1 +3 0.095813564 1 +4 0.000386545 28 +3 0.359667828 1 +4 0.000342076 18 +3 0.143686060 1 +4 0.000393273 18 +3 0.095738892 1 +4 0.000330771 19 +3 6.037626129 1 +4 0.110016314 38 +3 23.541898745 1 +4 0.000366452 17 +3 0.094576810 1 +4 0.000364105 18 +3 0.439953748 1 +4 0.000334744 17 +3 0.143475210 1 +4 0.000412452 17 +3 0.499995276 1 +4 0.000361066 18 +3 0.083070390 1 +4 0.000359463 17 +3 0.083581776 1 +4 0.000306816 17 +3 0.083458877 1 +4 0.000343769 18 +3 0.082669993 1 +4 0.000315571 17 +3 0.083198248 1 +4 0.000384370 17 +3 0.083694700 1 +4 0.000314496 18 +3 0.082887020 1 +4 0.000375129 17 +3 0.083594365 1 +4 0.000312188 17 +3 20.247243326 1 +4 0.000431676 23 +3 0.239385283 1 +4 0.000340447 23 +3 0.399672296 1 +4 0.000362638 24 +3 0.295931090 1 +4 0.000348452 19 +3 0.359425905 2 +4 0.000382605 36 +3 0.154451375 1 +4 0.000362061 19 +3 0.148799278 1 +4 0.000368235 20 +3 0.279663320 1 +4 0.000353554 24 +3 0.295672037 1 +4 0.000346773 19 +3 0.623692871 2 +4 0.000390137 10 +3 0.167677853 1 +4 0.000353614 1 +3 0.135699710 1 +4 0.000381724 1 +4 0.000311595 71 +3 35.888691525 1 +4 0.000380571 39 +3 5.423523165 1 +4 0.000341236 17 +3 0.217798218 1 +4 0.000344187 19 +3 0.397690449 1 +4 0.000366442 20 +3 2.513732807 1 +4 0.000387679 17 +3 0.197384328 1 +4 0.000331356 19 +3 0.335674728 1 +4 0.000339958 20 +3 0.185593608 1 +4 0.000311937 17 +3 1.334051578 1 +3 0.359853017 1 +3 0.155216835 1 +4 0.000430781 184 +3 0.140258689 1 +4 0.000335231 41 +3 0.169686067 1 +4 0.000345717 16 +3 0.157818890 1 +4 0.000347461 16 +3 0.303708008 1 +4 0.000444404 233 +3 4.759801138 1 +4 0.000363526 41 +3 0.499823451 1 +4 0.000347010 16 +3 0.083712879 1 +4 0.000317597 16 +3 0.082796797 1 +4 0.000326708 16 +3 0.083007561 1 +4 0.000341557 16 +3 0.083728222 1 +4 0.000327262 16 +3 0.082587059 1 +4 0.000378164 18 +3 0.082926527 1 +4 0.000327341 16 +3 1.312661937 1 +4 0.000398033 17 +3 0.709613047 1 +4 0.000346253 17 +3 0.169590463 1 +4 0.000412545 16 +3 0.421534122 1 +4 0.000403937 15 +3 0.991714169 1 +4 0.000427131 13 +3 0.241399307 1 +4 0.000356090 17 +3 0.453824047 1 +4 0.000379495 18 +3 0.320876867 1 +4 0.000359400 21 +3 0.782515366 1 +4 0.000389596 17 +3 0.217394721 1 +4 0.000363849 16 +3 3.470053717 1 +4 0.000447022 15 +3 0.345406299 1 +4 0.000347561 9 +3 24.583114102 1 +4 0.000394154 24 +3 0.286974944 1 +4 0.000370130 25 +3 0.135644134 1 +4 0.000373238 26 +3 0.263746811 1 +4 0.000351969 28 +3 0.145520398 1 +4 0.000370469 30 +3 0.093587014 1 +4 0.000329265 29 +3 0.055637504 1 +4 0.000358894 28 +3 0.079593004 1 +4 0.000356934 28 +3 0.175807494 1 +4 0.000369155 28 +3 0.335557147 2 +4 0.000401615 24 +3 0.169616376 1 +4 0.000346995 17 +3 0.365655153 1 +3 0.079819032 1 +4 0.000359693 4 +3 0.351689460 1 +3 0.088197773 1 +4 0.000344617 28 +3 0.111462078 1 +4 0.000376654 18 +3 0.664739248 1 +4 0.110064490 37 +3 3.473586517 1 +4 0.000625635 794 +3 1.015071437 1 +4 0.000386082 34 +3 0.499932551 1 +4 0.000430947 92 +3 0.082826258 1 +4 0.000386639 96 +3 0.082746645 1 +4 0.000372811 93 +3 0.083326197 1 +4 0.000379790 44 +3 0.083016049 1 +4 0.000432717 34 +3 0.083078196 1 +4 0.000361275 76 +3 9.652630453 1 +4 0.000418614 115 +3 0.497876596 1 +4 0.000388240 132 +3 0.082670210 1 +4 0.000418183 44 +3 0.082847437 1 +4 0.000361215 115 +3 0.083045506 1 +4 0.000420881 132 +3 0.083327586 1 +4 0.000358546 44 +3 0.173799235 1 +4 0.000399280 16 +3 0.500016895 1 +4 0.000351978 16 +3 0.082774164 1 +4 0.000347894 16 +3 0.083041816 1 +4 0.000321530 16 +3 0.083247592 1 +4 0.000333520 16 +3 0.083307658 1 +4 0.000353112 16 +3 0.083097481 1 +4 0.000378219 18 +3 0.586188721 1 +4 0.000361755 9 +3 0.135471484 1 +4 0.000324248 1 +3 0.103678962 1 +4 0.000339098 1 +4 0.000603521 69 +3 1.103030135 1 +4 0.000396260 37 +3 0.169851746 1 +4 0.000331487 16 +3 6.261932030 1 +4 0.000339833 16 +3 0.265472283 1 +4 0.000313612 18 +3 0.381799465 1 +4 0.000334484 18 +3 0.951572234 1 +4 0.000348900 17 +3 1.735823832 1 +4 0.000404114 17 +3 0.201548379 1 +4 0.000334137 19 +3 0.197764185 1 +4 0.000410260 18 +3 0.177546445 1 +4 0.000371907 20 +3 2.429781261 1 +4 0.000610228 797 +3 0.879438495 1 +4 0.000585346 869 +3 10.951858610 1 +4 0.000440909 15 +3 10.799940923 1 +4 0.000341886 10 +3 0.303350678 1 +4 0.000343017 1 +3 0.167643177 1 +4 0.000374399 1 +3 0.175754245 1 +4 0.000347929 1 +3 0.647646181 1 +4 0.000353274 1 +3 0.175767904 1 +4 0.000379161 1 +3 0.271525075 1 +4 0.000347821 38 +3 1.639717397 1 +4 0.000588717 732 +3 3.839532834 1 +4 0.000340486 10 +3 0.087734228 1 +4 0.000652134 783 +3 3.535513042 1 +4 0.000356527 19 +3 0.500583414 1 +4 0.000399680 17 +3 0.083518452 1 +4 0.000321724 21 +3 0.083699460 1 +4 0.000391997 20 +3 0.082616070 1 +4 0.000323285 20 +3 0.083314663 1 +4 0.000339676 19 +3 0.083051219 1 +4 0.000339791 16 +3 0.083546343 1 +4 0.000381123 20 +3 0.083323899 1 +4 0.000324578 20 +3 0.082941783 1 +4 0.000349620 17 +3 0.082666144 1 +4 0.000313653 19 +3 0.082949171 1 +4 0.000384689 34 +3 0.083319014 1 +4 0.000363061 76 +3 0.084397062 1 +4 0.000456607 118 +3 0.082312231 1 +4 0.000361616 133 +3 1.734451501 1 +4 0.000426216 47 +3 0.381438416 1 +4 0.000343299 20 +3 0.455708441 1 +3 0.122319633 1 +4 0.000364578 29 +3 0.245415055 1 +4 0.000343142 39 +3 0.500119816 1 +4 0.000342403 19 +3 0.083415591 1 +4 0.000325276 15 +3 0.083065498 1 +4 0.000321760 18 +3 0.083456733 1 +4 0.000371619 20 +3 0.083754254 1 +4 0.000325312 17 +3 0.082940409 1 +4 0.000332374 20 +3 0.082932899 1 +4 0.000312083 18 +3 0.083389380 1 +4 0.000315540 18 +3 0.083010926 1 +4 0.000317392 20 +3 0.082698803 1 +4 0.000315490 20 +3 0.083225849 1 +4 0.000330847 19 +3 0.082970489 1 +4 0.000337374 19 +3 0.083452587 1 +4 0.000341626 17 +3 0.083398248 1 +4 0.000383430 19 +3 0.573224781 1 +4 0.000391364 109 +3 0.871546645 1 +4 0.000360210 17 +3 0.577727169 1 +4 0.000331132 16 +3 0.229592433 1 +4 0.000362804 16 +3 1.057743977 1 +4 0.000350083 17 +3 1.765762623 1 +4 0.000428124 16 +3 1.383694692 1 +4 0.000358331 17 +3 0.297640829 1 +4 0.000327893 16 +3 4.910395239 1 +4 0.000406035 31 +3 1.397314945 21 +4 0.000359083 37 +3 1.609793354 1 +4 0.000384455 17 +3 1.696416598 1 +4 0.109980578 35 +3 13.121523751 1 +4 0.000366600 16 +3 0.809510869 1 +4 0.000352286 19 +3 0.317591826 1 +4 0.000394635 16 +3 0.143487508 1 +4 0.000321175 15 +3 0.217761934 1 +4 0.000319186 17 +3 0.149758961 1 +4 0.000324585 17 +3 0.161655829 1 +4 0.000324805 16 +3 0.325490170 1 +4 0.000367580 16 +3 0.391654555 1 +4 0.000365332 4 +3 0.159725048 1 +4 0.000383846 16 +3 0.161781642 1 +4 0.000363862 16 +3 0.133365775 1 +4 0.000316864 16 +3 0.113801837 1 +4 0.000380328 16 +3 0.117553141 1 +4 0.000313111 16 +3 0.145746732 1 +4 0.000370316 16 +3 0.301631901 1 +4 0.000324591 4 +3 0.223737158 1 +4 0.000420746 16 +3 0.295476548 1 +4 0.000341334 16 +3 0.767843686 1 +4 0.000394438 16 +3 0.695710039 1 +4 0.000332074 16 +3 0.471539808 1 +4 0.000386183 16 +3 0.495629753 1 +4 0.000364721 16 +3 0.169471254 1 +4 0.000395600 17 +3 0.157824880 1 +4 0.000343854 16 +3 0.439781914 1 +4 0.000356489 16 +3 0.111383855 1 +4 0.000325492 4 +3 0.185756624 1 +4 0.000356705 4 +3 0.117635696 1 +4 0.000335667 6 +3 0.151711751 1 +4 0.000414281 23 +3 0.231635316 1 +4 0.000328243 24 +3 0.087619785 1 +4 0.000356361 24 +3 0.223603835 1 +4 0.000338573 24 +3 0.479888257 1 +4 0.000351910 16 +3 0.071516472 1 +4 0.000333981 17 +3 0.167572694 1 +4 0.000344816 25 +3 0.103655085 1 +4 0.000349044 24 +3 0.031695949 1 +4 0.000326415 24 +3 0.774499266 1 +4 0.110011972 32 +3 0.035262855 1 +4 0.000332976 30 +3 0.168385201 1 +4 0.000354280 24 +3 0.494758039 2 +4 0.000380367 33 +3 0.303743033 1 +3 0.139108924 1 +4 0.000390353 47 +3 8.332910848 1 +4 0.000343885 10 +3 0.143572664 1 +4 0.000304229 1 +3 0.071928794 1 +4 0.000353615 1 +4 0.000389971 70 +3 4.743276758 1 +4 0.000417445 36 +3 0.499719386 1 +4 0.000360638 17 +3 0.083358699 1 +4 0.000352661 20 +3 0.082721814 1 +4 0.000313192 17 +3 3.870979071 1 +4 0.000383594 17 +3 0.498026409 1 +4 0.000375845 19 +3 0.083003383 1 +4 0.000386986 17 +3 0.083129783 1 +4 0.000326125 20 +3 0.083434987 1 +4 0.000323584 17 +3 0.084191069 1 +4 0.000320855 17 +3 0.081883819 1 +4 0.000322254 19 +3 0.083758626 1 +4 0.000327114 16 +3 0.084057046 1 +4 0.000392717 21 +3 0.082125748 1 +4 0.000322579 17 +3 0.083188434 1 +4 0.000311301 17 +3 0.084080430 1 +4 0.000373902 19 +3 0.082827532 1 +4 0.000358945 119 +3 0.083087590 1 +4 0.000373025 133 +3 0.083085520 1 +4 0.000383822 47 +3 0.082890926 1 +4 0.000432347 34 +3 0.083149409 1 +4 0.000365709 74 +3 0.083323885 1 +4 0.000360498 72 +3 0.082904465 1 +4 0.000363469 92 +3 0.083277200 1 +4 0.000353641 47 +3 0.083035549 1 +4 0.000364001 34 +3 0.083024694 1 +4 0.000354147 85 +3 0.436548943 1 +4 0.000391764 17 +3 0.501119745 1 +4 0.000334290 18 +3 0.082300439 1 +4 0.000338687 20 +3 0.083169014 1 +4 0.000322771 18 +3 0.082941715 1 +4 0.000309774 17 +3 0.083080152 1 +4 0.000331539 17 +3 0.083061608 1 +4 0.000316191 18 +3 0.083320427 1 +4 0.000363945 20 +3 0.254308068 1 +4 0.000313941 19 +3 0.392092048 1 +4 0.000561957 754 +3 4.767660373 1 +4 0.000562641 699 +3 1.224209205 1 +4 0.000584624 755 +3 1.086712767 1 +4 0.000554301 858 +3 173.398125109 1 +4 0.000597114 751 +3 3.710424528 1 +4 0.000434863 92 +3 0.499993413 1 +4 0.000383464 96 +3 0.084353418 1 +4 0.000379985 93 +3 0.082259439 1 +4 0.000359586 44 +3 0.083467923 1 +4 0.000352713 34 +3 0.082973101 1 +4 0.000356854 76 +3 0.083846608 1 +4 0.000371618 115 +3 25.122087962 1 +4 0.000567705 880 +3 7.942980934 1 +4 0.000356889 15 +3 0.500276063 1 +4 0.000385987 15 +3 0.083330134 1 +4 0.000317600 15 +3 0.082887076 1 +4 0.000314367 15 +3 0.083197735 1 +4 0.000324356 15 +3 0.083567058 1 +4 0.000337583 15 +3 0.082868538 1 +4 0.000310929 17 +3 0.083759940 1 +4 0.000324532 18 +3 0.082131535 1 +4 0.000349180 16 +3 0.083376306 1 +4 0.000311864 17 +3 0.083677997 1 +4 0.000324080 16 +3 0.083654014 1 +4 0.000313726 16 +3 0.083737061 1 +4 0.000314814 18 +3 0.082964153 1 +4 0.000336715 16 +3 0.082726858 1 +4 0.000312325 16 +3 0.083101948 1 +4 0.000348739 16 +3 0.083329035 1 +4 0.000320928 16 +3 0.083216977 1 +4 0.000319246 18 +3 0.082672314 1 +4 0.000307806 16 +3 0.084325873 1 +4 0.000348140 17 +3 0.082422366 1 +4 0.000363604 44 +3 0.083049231 1 +4 0.000363395 97 +3 0.082753897 1 +4 0.000393840 91 +3 0.083559486 1 +4 0.000386767 44 +3 0.082939324 1 +4 0.000373976 95 +3 0.082706022 1 +4 0.000386850 92 +3 0.083500496 1 +4 0.000358572 44 +3 0.885104924 1 +4 0.000421535 34 +3 39.951501347 1 +4 0.000583653 755 +3 0.926849683 1 +4 0.000617545 735 +3 0.559514961 1 +4 0.000566334 818 +3 0.959282192 1 +4 0.000479931 72 +3 0.499546453 1 +4 0.000396574 62 +3 0.083434377 1 +4 0.000398163 37 +3 40.722109863 1 +4 0.000577903 859 +3 1.430611693 1 +4 0.000391510 15 +3 0.500163171 1 +4 0.000337607 15 +3 0.083759610 1 +4 0.000359738 17 +3 0.082655315 1 +4 0.000343770 17 +3 0.082732761 1 +4 0.000335851 15 +3 0.082743430 1 +4 0.000319388 16 +3 0.083822318 1 +4 0.000352233 15 +3 0.083089759 1 +4 0.000321641 17 +3 0.082825352 1 +4 0.000349164 18 +3 0.083791797 1 +4 0.000325299 16 +3 0.083068212 1 +4 0.000370780 16 +3 0.083765591 1 +4 0.000323828 16 +3 0.082813122 1 +4 0.000339110 16 +3 0.083608168 1 +4 0.000322280 18 +3 0.083010845 1 +4 0.000341757 16 +3 9.471316892 1 +4 0.000343512 17 +3 0.498328117 1 +4 0.000368632 16 +3 0.083500772 1 +4 0.000364604 16 +3 0.083649960 1 +4 0.000343547 16 +3 0.083296348 1 +4 0.000348931 16 +3 0.084231077 1 +4 0.000367471 16 +3 0.081395597 1 +4 0.000362010 92 +3 0.083224218 1 +4 0.000388863 44 +3 0.083188442 1 +4 0.000366450 34 +3 0.083088798 1 +4 0.000405215 93 +3 15.687256348 1 +4 0.000365620 16 +3 0.499769431 1 +4 0.000377466 18 +3 0.082966183 1 +4 0.000326121 16 +3 0.083061395 1 +4 0.000345310 16 +3 0.082797922 1 +4 0.000323222 16 +3 0.083003183 1 +4 0.000322430 16 +3 0.083640542 1 +4 0.000343474 16 +3 0.082662134 1 +4 0.000329010 16 +3 0.083433826 1 +4 0.000326679 16 +3 0.717295792 1 +4 0.000362489 17 +3 9.246256414 1 +3 0.121762406 1 +4 0.000372802 29 +3 0.261669317 1 +4 0.000374347 103 +3 0.471606299 1 +4 0.000349599 18 +3 0.177723317 1 +4 0.000320525 18 +3 0.149531376 1 +4 0.000317570 17 +3 0.145788692 1 +4 0.000327977 17 +3 0.261597392 1 +4 0.000354466 18 +3 0.360741810 1 +4 0.000357309 17 +3 0.200460328 1 +4 0.000321081 17 +3 0.149905846 1 +4 0.000357241 17 +3 6.279812516 1 +4 0.000353334 4 +3 0.599555710 1 +4 0.000335743 17 +3 0.127714321 1 +3 0.080017049 1 +4 0.000382513 28 +3 0.639577091 1 +4 0.000358401 18 +3 0.767003151 1 +4 0.109989259 37 +3 0.187151499 1 +4 0.000346591 40 +3 0.287392683 1 +4 0.000385092 40 +3 0.343723079 2 +4 0.000368831 33 +3 0.463491583 1 +4 0.000435988 59 +3 0.327520206 1 +4 0.000348395 18 +3 4.636741822 7 +4 0.000401747 25 +3 0.339403889 1 +4 0.000331128 17 +3 33.096554304 2 +4 0.000410601 36 +7 0.000507670 TSTP +7 33.592008232 CONT +4 0.000786179 7 +4 0.000280514 799 +3 2.606784744 1 +4 0.000379428 31 +3 4.594248745 20 +4 0.000361507 37 +3 0.325405936 1 +4 0.000357059 17 +3 7.476120404 34 +4 0.000555940 52 +3 0.325399978 1 +4 0.000542024 17 +3 4.543750298 34 +4 0.000453705 98 +3 4.538399418 1 +3 0.034736034 1 +4 0.000347439 9 +3 0.111485082 1 +4 0.000389472 1 +3 0.191836691 1 +4 0.000349003 43 +3 0.623558211 1 +4 0.000440117 33 +3 0.143477527 1 +4 0.000352203 17 +3 0.231866390 1 +4 0.000362754 18 +3 0.159597752 1 +4 0.000336335 18 +3 0.167693314 1 +4 0.000347364 19 +3 0.207554391 1 +4 0.000341936 15 +3 0.343822076 1 +4 0.000344344 16 +3 0.215594862 1 +4 0.000368821 17 +3 0.135544701 1 +4 0.000334504 17 +3 0.047720903 1 +4 0.000328578 17 +3 0.183610492 1 +4 0.000331143 17 +3 0.271651176 1 +4 0.000376779 17 +3 0.503763620 2 +4 0.000394028 36 +3 37.745595101 1 +4 0.000349121 19 +3 0.217034267 1 +4 0.000399334 20 +3 0.205427082 1 +4 0.000354892 16 +3 1.065863721 1 +4 0.000425449 19 +3 0.533513377 1 +4 0.000380448 20 +3 0.567672251 1 +3 0.130101959 1 +4 0.000424973 29 +3 0.269547621 1 +4 0.000352307 41 +3 0.161465729 1 +4 0.000365436 20 +3 0.149596147 1 +4 0.000333491 20 +3 0.153692873 1 +4 0.000313810 15 +3 0.133632562 1 +4 0.000321132 20 +3 0.311801949 1 +4 0.000361249 104 +3 0.639725752 1 +3 0.135963947 1 +4 0.000352421 84 +3 0.311597013 1 +3 0.064147385 1 +4 0.000357800 29 +3 1.630121451 7 +4 0.000369118 25 +3 0.313043225 2 +4 0.000350825 37 +3 0.255962410 1 +3 0.047636991 1 +4 0.000408675 6 +3 1.608788858 1 +4 0.000456490 18 +3 1.238824509 1 +4 0.000384430 25 +3 4.331991931 36 +4 0.000410721 95 +3 0.971262804 1 +3 0.079976027 1 +4 0.000361427 28 +3 0.287589060 1 +4 0.000339987 19 +3 2.168861266 4 +4 0.000371567 28 +3 1.252918183 5 +4 0.000370132 23 +3 0.699263778 1 +4 0.110142043 33 +3 0.199951622 1 +4 0.000324229 22 +3 0.145600189 1 +4 0.000345335 20 +3 0.149617621 1 +4 0.000318206 16 +3 0.153737423 1 +4 0.000312236 19 +3 0.133659447 1 +4 0.000325207 20 +3 0.129660650 1 +4 0.000317376 20 +3 0.133666439 1 +4 0.000389246 47 +3 0.161655933 1 +4 0.000362612 99 +3 0.117684704 1 +4 0.000437356 94 +3 0.177589087 1 +4 0.000369371 47 +3 0.285712479 1 +4 0.000324828 20 +3 0.360734950 1 +3 0.112810885 1 +4 0.000351088 29 +3 0.245748660 1 +4 0.000356700 43 +3 0.153487510 1 +4 0.000317802 19 +3 0.157776976 1 +4 0.000397700 20 +3 0.161456001 1 +4 0.000324479 20 +3 0.141774119 1 +4 0.000336573 19 +3 0.153774037 1 +4 0.000386267 20 +3 0.141530271 1 +4 0.000359167 20 +3 0.153608292 1 +4 0.000322263 19 +3 0.333868354 1 +4 0.000409765 20 +3 0.311476384 1 +4 0.000372037 100 +3 2.152494115 1 +3 0.079338693 1 +4 0.000362088 29 +3 0.315948467 7 +4 0.000515412 67 +3 0.323213155 2 +4 0.000377947 33 +3 0.535531343 1 +3 0.047994706 1 +4 0.000354636 6 +3 2.440374530 1 +4 0.000373870 24 +3 3.805683567 39 +4 0.000449189 135 +3 1.001622387 1 +4 0.000369665 62 +3 0.479049305 2 +4 0.000365282 34 +3 0.143687740 1 +4 0.000360857 24 +3 0.159547482 1 +4 0.000343495 19 +3 1.880106562 9 +4 0.000356396 33 +3 0.627014310 1 +4 0.110003044 33 +3 13.303015767 1 +4 0.000429375 17 +3 0.193335351 1 +4 0.000328035 21 +3 0.485715287 1 +4 0.000337050 22 +3 9.129944515 1 +4 0.000391862 17 +3 0.498215899 1 +4 0.000338218 22 +3 0.082904375 1 +4 0.000355741 20 +3 0.082657933 1 +4 0.000328584 16 +3 0.084061572 1 +4 0.000314004 19 +3 0.082824895 1 +4 0.000324312 20 +3 0.083443491 1 +4 0.000334772 20 +3 0.082809770 1 +4 0.000334535 19 +3 0.082798218 1 +4 0.000313383 21 +3 0.243187561 1 +4 0.000365955 20 +3 0.500230870 1 +4 0.000341683 20 +3 0.083274854 1 +4 0.000325193 20 +3 0.082818560 1 +4 0.000308637 19 +3 0.083960978 1 +4 0.000333325 20 +3 0.426000229 1 +4 0.000336973 20 +3 0.213830366 1 +3 0.500687773 1 +4 0.000446693 97 +3 0.082796026 1 +3 0.083635363 1 +4 0.000355972 48 +3 0.082901407 1 +3 0.084268407 1 +4 0.000398718 30 +3 0.082863130 1 +3 0.083385320 1 +4 0.000346105 97 +3 0.083059996 1 +3 0.083058962 1 +4 0.000381019 89 +3 0.083075946 1 +3 0.206334017 1 +4 0.000373633 91 +3 0.181859768 1 +3 0.169812993 1 +4 0.000375620 49 +3 0.165644564 1 +3 0.185971061 1 +4 0.000363444 92 +3 0.165789845 1 +3 0.385925308 1 +4 0.000391649 101 +3 0.365499576 1 +4 0.000350679 18 +3 0.500122316 1 +4 0.000344882 16 +3 0.082779027 1 +4 0.000333228 16 +3 0.082804862 1 +4 0.000310371 16 +3 0.082768243 1 +4 0.000428173 16 +3 0.083085458 1 +4 0.000322093 17 +3 0.082817450 1 +4 0.000373640 44 +3 0.082831867 1 +4 0.000374277 34 +3 0.083265891 1 +4 0.000400726 54 +3 0.082799250 1 +4 0.000359395 71 +3 0.083042042 1 +4 0.000421075 112 +3 0.205828346 1 +4 0.000350861 16 +3 0.500128122 1 +4 0.000374088 16 +3 0.082996870 1 +4 0.000316414 16 +3 0.083574926 1 +4 0.000330608 18 +3 0.083434733 1 +4 0.000319073 16 +3 0.082945777 1 +4 0.000327451 17 +3 0.083062480 1 +4 0.000326098 16 +3 12.468055977 1 +4 0.000403075 16 +3 0.229340834 1 +4 0.000334437 16 +3 0.170011338 1 +4 0.000350252 16 +3 305.080853416 1 +4 0.000357297 16 +3 0.499712144 1 +4 0.000390246 16 +3 0.082811528 1 +4 0.000342959 16 +3 0.082280939 1 +4 0.000605643 16 +3 0.083090027 1 +4 0.000350823 17 +3 0.082792526 1 +4 0.000353048 16 +3 0.082663170 1 +4 0.000369943 16 +3 0.083655848 1 +4 0.000418055 18 +3 0.083146383 1 +4 0.000405476 16 +3 0.082986955 1 +4 0.000338767 16 +3 0.083275055 1 +4 0.000521216 58 +3 0.082562989 1 +4 0.000640961 34 +3 0.083339019 1 +4 0.000398237 61 +3 0.082783475 1 +4 0.000397557 63 +3 0.185961846 1 +4 0.000350742 16 +3 0.153606324 1 +4 0.000351134 16 +3 0.150396884 1 +4 0.000351210 18 +3 0.136918460 1 +4 0.000371616 16 +3 0.117674373 1 +4 0.000356828 16 +3 0.145572057 1 +4 0.000367855 16 +3 0.309608021 1 +4 0.000435564 32 +3 0.080303026 1 +4 0.000348265 18 +3 0.167081174 1 +4 0.000362195 18 +3 0.287604394 1 +4 0.000365589 18 +3 0.119596079 1 +4 0.000332452 17 +3 0.423673342 1 +4 0.000366852 18 +3 0.160327894 1 +4 0.000360262 18 +3 0.158978615 1 +4 0.000364156 18 +3 0.575597191 1 +4 0.000344260 17 +3 0.111804373 1 +4 0.000347689 18 +3 0.439457400 2 +4 0.000358797 31 +3 0.281796283 1 +4 0.000352656 17 +3 0.357515641 1 +4 0.000370017 21 +3 0.559558022 1 +4 0.000448963 31 +3 0.079815133 1 +4 0.000348358 18 +3 0.591688138 2 +4 0.000374344 32 +3 0.327539528 1 +4 0.000330647 9 +3 0.143633680 1 +4 0.000590716 1 +3 0.087503013 1 +4 0.000756019 11 +4 0.000400148 61 +3 31.448295918 1 +4 0.000629257 883 +3 5.111258039 1 +4 0.000351808 17 +3 0.499703034 1 +4 0.000400652 18 +3 0.082635319 1 +4 0.000540967 17 +3 0.082868149 1 +4 0.000494295 17 +3 0.082901520 1 +4 0.000313138 18 +3 0.083421936 1 +4 0.000373402 20 +3 0.083218793 1 +4 0.000328879 17 +3 0.083214530 1 +4 0.000346025 17 +3 0.082578627 1 +4 0.000346003 18 +3 8.150269658 1 +4 0.000363903 18 +3 0.213378491 1 +4 0.000461823 20 +3 0.186770439 1 +4 0.000581424 18 +3 0.164286182 1 +4 0.000380816 16 +3 4.903982535 1 +4 0.000367656 17 +3 0.153510666 1 +4 0.000341938 18 +3 0.149697119 1 +4 0.000343747 19 +3 0.211556218 1 +4 0.000342054 17 +3 0.195592296 1 +4 0.000378550 20 +3 0.463600866 1 +3 0.106134844 1 +4 0.000357633 30 +3 0.261639119 1 +4 0.000384154 36 +3 0.145573011 1 +4 0.000357779 18 +3 0.677693415 1 +4 0.000439066 20 +3 0.145508251 1 +4 0.000342164 18 +3 0.149604994 1 +4 0.000364306 16 +3 0.161842107 1 +4 0.000355461 18 +3 0.221457848 1 +4 0.000361987 17 +3 0.311692567 1 +4 0.000369625 22 +3 0.879888862 1 +4 0.000711855 830 +3 1.271520325 1 +4 0.000610571 862 +3 1.279280274 1 +4 0.000383892 18 +3 0.499390638 1 +4 0.000348084 18 +3 0.083076480 1 +4 0.000413453 18 +3 0.083421410 1 +4 0.000354474 18 +3 0.082785003 1 +4 0.000367550 18 +3 0.082898553 1 +4 0.000341109 17 +3 0.083529978 1 +4 0.000385285 19 +3 0.083015081 1 +4 0.000339409 20 +3 0.082823787 1 +4 0.000429733 21 +3 0.083276952 1 +4 0.000352359 19 +3 0.083412063 1 +4 0.000367975 17 +3 0.082673286 1 +4 0.000343524 20 +3 0.721130396 1 +3 0.154070246 1 +4 0.000379984 84 +3 0.229604850 1 +3 0.170532585 1 +4 0.000436692 117 +3 0.285020611 1 +3 0.170262550 1 +4 0.000389631 74 +3 0.197440319 1 +3 0.121861653 1 +4 0.000376338 46 +3 0.197838152 1 +3 0.113796320 1 +4 0.000378746 39 +3 0.349874483 1 +4 0.000398965 10 +3 0.199647430 1 +4 0.000331110 1 +3 0.071427202 1 +4 0.000348580 1 +4 0.000415405 70 +3 2.887476526 1 +4 0.000583736 861 +3 5.975968449 1 +4 0.000599183 878 +3 1.639218505 1 +4 0.000676829 840 +3 18.640117849 1 +4 0.000708879 878 +3 1.351029379 1 +4 0.000338065 18 +3 0.551726408 1 +4 0.000638251 708 +3 1.592390050 1 +4 0.000614038 17 +3 0.499281201 1 +4 0.000361723 18 +3 0.082802459 1 +4 0.000331499 15 +3 0.082807536 1 +4 0.000364739 15 +3 0.083525030 1 +4 0.000333271 15 +3 0.083423790 1 +4 0.000431876 15 +3 0.082820704 1 +4 0.000334049 15 +3 0.083016323 1 +4 0.000374775 15 +3 0.083125769 1 +4 0.000453713 17 +3 0.082969191 1 +4 0.000428278 18 +3 0.083106971 1 +4 0.000319947 16 +3 1.419992144 1 +4 0.000550351 570 +3 1.263381917 1 +4 0.000390523 76 +3 0.185466776 1 +4 0.000397981 65 +3 0.173625432 1 +4 0.000416718 36 +3 0.519672264 1 +4 0.000353401 17 +3 0.177834237 1 +4 0.000342628 15 +3 8.141768786 1 +4 0.000534125 663 +3 2.503599942 1 +4 0.000580856 741 +3 0.711629519 1 +4 0.000690980 716 +3 0.591114578 1 +4 0.000781048 597 +3 0.487249694 1 +4 0.000577707 733 +3 3.063293774 1 +4 0.000333000 16 +3 0.500323845 1 +4 0.000417908 18 +3 0.082467932 1 +4 0.000337739 16 +3 0.082923122 1 +4 0.000454304 16 +3 0.082945644 1 +4 0.000330324 18 +3 0.083710325 1 +4 0.000365034 16 +3 0.083364206 1 +4 0.000433299 17 +3 0.083042008 1 +4 0.000342279 16 +3 0.083093016 1 +4 0.000400053 17 +3 0.082978936 1 +4 0.000351761 18 +3 2.063541504 1 +4 0.000395230 54 +3 0.287753625 1 +4 0.000378037 38 +3 0.359454900 1 +4 0.000361308 19 +3 0.111878081 1 +4 0.000458391 17 +3 3.319525627 1 +4 0.000335753 18 +3 0.223942086 1 +4 0.000385710 18 +3 0.127326902 1 +4 0.000334250 18 +3 0.135655063 1 +4 0.000365659 17 +3 0.479710733 1 +4 0.000346918 17 +3 2.327788491 1 +4 0.000347750 18 +3 0.175614082 1 +4 0.000383315 18 +3 0.119598238 1 +4 0.000337943 18 +3 0.071602147 1 +4 0.000395307 18 +3 0.328027592 1 +4 0.000367378 18 +3 0.119221737 1 +4 0.000337344 18 +3 0.129844131 1 +4 0.000343188 18 +3 0.109624618 1 +4 0.000334550 18 +3 0.239511917 1 +4 0.000385675 19 +3 0.191870639 1 +4 0.000452720 18 +3 0.351475579 1 +4 0.000440246 17 +3 0.121703509 1 +4 0.000364897 18 +3 0.093347207 1 +4 0.000344195 19 +3 0.135668364 1 +4 0.000341657 17 +3 0.248582905 1 +4 0.000347392 18 +3 0.007185995 1 +4 0.000356981 18 +3 0.839249703 1 +4 0.000482206 17 +3 0.139523516 1 +4 0.000378338 17 +3 0.115728849 1 +4 0.000341072 18 +3 0.087463961 1 +4 0.000341446 18 +3 0.103741610 1 +4 0.000467615 17 +3 1.031668138 1 +4 0.000373832 18 +3 0.111444149 1 +4 0.000341171 18 +3 0.135576625 1 +4 0.000360623 18 +3 0.095768198 1 +4 0.000389785 18 +3 0.071643746 1 +4 0.000382010 17 +3 0.111541595 1 +4 0.000337322 19 +3 0.119745737 1 +4 0.000367651 18 +3 0.152010598 1 +4 0.000336790 18 +3 0.071249469 1 +4 0.000355612 18 +3 0.111595064 1 +4 0.000347300 18 +3 0.127714645 1 +4 0.000395856 18 +3 0.167639654 1 +4 0.000350440 18 +3 0.175765275 1 +4 0.000433003 18 +3 0.759538185 1 +4 0.000359089 18 +3 0.709730548 1 +4 0.109927658 33 +3 4.268095613 1 +4 0.000426077 61 +3 14.006783454 53 +4 0.000444446 71 +3 0.936872940 2 +3 0.151954890 1 +4 0.000383324 39 +3 0.471870533 1 +4 0.000369988 22 +3 1.175527431 1 +4 0.000429277 62 +3 0.239737011 1 +4 0.000341658 40 +3 0.439415420 2 +4 0.000383170 33 +3 0.175640302 1 +4 0.000349671 18 +3 0.169845963 1 +4 0.000433399 18 +3 0.197402764 1 +4 0.000346099 17 +3 0.161737299 1 +4 0.000359958 17 +3 0.157603293 1 +4 0.000746578 18 +3 0.185302491 1 +4 0.000515689 17 +3 0.293429490 1 +4 0.000369115 17 +3 51.473362785 2 +4 0.000339224 18 +3 0.320202308 1 +4 0.000376746 61 +3 0.935101651 2 +4 0.000353311 9 +3 0.111679022 1 +4 0.000316888 1 +3 0.167660090 1 +4 0.000323413 1 +3 0.191624800 1 +4 0.000319812 1 +3 0.031835341 1 +4 0.000373940 1 +3 0.127624294 1 +4 0.000367299 1 +3 0.081461257 1 +4 0.000311281 1 +3 0.069641656 1 +4 0.000295870 1 +3 0.055794153 1 +4 0.000295469 1 +3 0.335808944 1 +4 0.000319378 1 +4 0.000324449 39 +3 0.223383309 1 +4 0.000385035 21 +3 0.220343199 339 +4 0.000652037 372 +4 0.000353694 167 +3 0.506204321 2 +4 0.000364502 32 +3 0.169938430 1 +4 0.000364254 47 +3 0.181399879 1 +4 0.000405858 34 +3 0.185574231 1 +4 0.000362139 57 +3 0.149529480 1 +4 0.000386950 18 +3 0.137724101 1 +4 0.000361077 18 +3 0.157610025 1 +4 0.000349608 20 +3 0.169682124 1 +4 0.000329677 12 +3 0.181623016 1 +4 0.000355865 18 +3 0.231693664 1 +4 0.000328066 15 +3 0.103674216 1 +4 0.000411816 17 +3 0.185557476 1 +4 0.000351002 17 +3 0.693724611 1 +3 0.063986470 1 +4 0.000414948 4 +3 3.599898900 1 +4 0.000366572 6 +3 0.487570874 1 +3 0.080006699 1 +4 0.000328093 5 +3 0.807685354 1 +4 0.000391036 25 +3 1.007602547 1 +4 0.000336740 17 +3 0.495687132 1 +4 0.000388623 4 +3 0.377692091 1 +4 0.000381859 4 +3 0.197468637 1 +4 0.000381306 4 +3 0.177657772 1 +4 0.000334142 4 +3 0.149706863 1 +4 0.000371475 4 +3 0.161661316 1 +4 0.000329386 4 +3 1.093766694 1 +4 0.000420679 24 +3 4.439891434 10 +4 0.000348675 37 +3 0.352440612 1 +4 0.000403922 16 +3 0.446694400 1 +4 0.000401831 17 +3 0.479474969 1 +4 0.000375148 18 +3 0.503577308 1 +4 0.000339713 19 +3 0.151622771 1 +4 0.000390220 18 +3 0.119655893 1 +4 0.000327642 28 +3 0.095751225 1 +4 0.000334422 26 +3 0.271708489 1 +4 0.000401127 25 +3 1.479669755 1 +4 0.000379663 24 +3 0.111444615 1 +4 0.000347160 25 +3 0.007708330 1 +4 0.000390990 26 +3 0.223674227 1 +4 0.000327520 28 +3 0.143656115 1 +4 0.000344246 28 +3 0.095909278 1 +4 0.000319979 29 +3 0.127422801 1 +4 0.000406591 28 +3 0.359643369 1 +4 0.000333786 28 +3 0.327801354 1 +4 0.000378689 28 +3 0.063505708 1 +4 0.000332085 28 +3 0.111747253 1 +4 0.000337853 28 +3 0.127691320 1 +4 0.000319370 28 +3 0.079634322 1 +4 0.000373251 28 +3 0.896332843 1 +4 0.000359424 28 +3 3.653371335 12 +4 0.000369213 40 +3 0.593809187 1 +4 0.000376704 28 +3 5.631641259 12 +4 0.000391907 62 +3 2.632260317 1 +4 0.000363200 27 +3 1.094876417 1 +4 0.000392616 27 +3 0.047462202 1 +4 0.000323871 27 +3 0.223743446 1 +4 0.000385249 27 +3 0.103613398 1 +4 0.000329889 27 +3 0.063570291 1 +4 0.000363991 27 +3 0.055665091 1 +4 0.000321541 29 +3 0.119674787 1 +4 0.000339864 28 +3 1.071411539 1 +4 0.110001408 33 +3 1.122489595 1 +4 0.000350324 31 +3 0.207610556 1 +4 0.000360506 28 +3 0.271567088 1 +4 0.000338646 28 +3 0.151734822 1 +4 0.000371033 28 +3 0.103646643 1 +4 0.000337889 28 +3 0.055549958 1 +4 0.000331959 28 +3 0.071686557 1 +4 0.000324418 28 +3 0.153778079 1 +4 0.000318098 28 +3 0.719215427 1 +4 0.110062736 31 +3 0.152536689 1 +4 0.000325753 17 +3 0.727619168 1 +4 0.000368041 23 +3 6.023891164 1 +4 0.000336216 22 +3 0.095570673 1 +4 0.000318568 16 +3 0.499855446 1 +4 0.000353077 18 +3 0.082638388 1 +4 0.000326471 18 +3 0.082879773 1 +4 0.000315071 17 +3 0.083689718 1 +4 0.000333563 17 +3 0.083360147 1 +4 0.000393187 18 +3 0.083148721 1 +4 0.000322239 17 +3 0.083354258 1 +4 0.000329533 17 +3 0.082806829 1 +4 0.000339056 16 +3 0.629283940 1 +4 0.000340408 11 +3 0.389693443 1 +4 0.000353240 15 +3 0.265630733 1 +4 0.000321777 17 +3 0.181760862 1 +4 0.000380341 17 +3 0.500533616 1 +4 0.000338907 17 +3 0.082780232 1 +4 0.000308097 18 +3 0.083082240 1 +4 0.000322838 17 +3 0.082938916 1 +4 0.000311577 17 +3 0.609047833 1 +4 0.000360384 19 +3 0.281657639 1 +4 0.000341025 14 +3 0.253757988 1 +4 0.000368631 57 +3 0.215391235 1 +4 0.000331700 18 +3 0.177775992 1 +4 0.000330974 18 +3 0.173604257 1 +4 0.000320234 19 +3 0.500281398 1 +4 0.000333548 20 +3 0.083166069 1 +4 0.000351326 17 +3 0.083450551 1 +4 0.000328254 16 +3 0.083462620 1 +4 0.000342748 17 +3 0.083735805 1 +4 0.000319693 20 +3 0.082628406 1 +4 0.000308331 20 +3 0.083855967 1 +4 0.000324968 20 +3 0.082664905 1 +4 0.000308269 21 +3 0.243994363 1 +4 0.000439045 20 +3 0.197383047 1 +4 0.000357385 20 +3 1.168840173 1 +4 0.000444723 20 +3 0.184593663 1 +4 0.000330398 18 +3 0.141457719 1 +4 0.000338424 17 +3 0.161879283 1 +4 0.000319779 19 +3 0.253472046 1 +3 0.106079505 1 +4 0.000355040 29 +3 0.262307417 1 +4 0.000345156 40 +3 0.499552302 1 +4 0.000327899 17 +3 0.082863917 1 +4 0.000309780 20 +3 0.083328104 1 +4 0.000316051 20 +3 0.083075176 1 +4 0.000336459 21 +3 0.083178617 1 +4 0.000301976 20 +3 0.083526705 1 +4 0.000321293 20 +3 0.082815633 1 +4 0.000309968 20 +3 0.082956521 1 +4 0.000321659 17 +3 0.082694681 1 +4 0.000314372 20 +3 0.083698296 1 +4 0.000321880 16 +3 0.286269190 1 +4 0.000394631 17 +3 0.205612385 1 +4 0.000318983 19 +3 0.439725478 1 +4 0.000417959 92 +3 0.751637278 1 +4 0.000346364 40 +3 0.263542843 1 +4 0.000348710 94 +3 0.487682780 1 +4 0.000325684 18 +3 0.169702256 1 +4 0.000326697 17 +3 0.181639480 1 +4 0.000380232 17 +3 0.185691871 1 +4 0.000319615 18 +3 0.173642179 1 +4 0.000331672 15 +3 0.185625540 1 +4 0.000348856 9 +3 3.133919522 1 +3 0.087839815 1 +4 0.000409867 29 +3 0.479718852 1 +4 0.000363015 13 +3 0.096415306 1 +4 0.000357976 16 +3 0.190844518 1 +4 0.000336645 18 +3 0.071557006 1 +4 0.000339644 17 +3 0.079679438 1 +4 0.000345309 19 +3 0.623703198 2 +4 0.000436476 28 +3 0.457657334 1 +4 0.000341136 17 +3 0.277631894 1 +3 0.056041376 1 +4 0.000334450 5 +3 0.575568521 1 +4 0.000382138 6 +3 37.135276709 1 +4 0.109949460 1 +3 0.532250295 1 +4 0.000382436 17 +3 0.487109631 1 +4 0.000347002 17 +3 0.169619784 1 +4 0.000475929 17 +3 0.365596129 1 +4 0.000336175 17 +3 0.279601149 1 +3 0.055955606 1 +4 0.000368805 43 +3 0.215822365 1 +4 0.000335052 42 +3 11.816224383 1 +4 0.000418215 20 +3 0.273365040 1 +4 0.000342733 19 +3 6.333922854 1 +4 0.000360305 20 +3 0.217709489 1 +4 0.000409785 20 +3 0.245465986 1 +4 0.000341101 20 +3 0.311678496 1 +4 0.000371672 20 +3 1.199840369 1 +3 0.159795890 1 +3 0.121940449 1 +4 0.000340981 30 +3 0.285755030 1 +4 0.000386875 109 +3 0.367693758 1 +4 0.000333904 43 +3 0.169692707 1 +4 0.000372716 18 +3 0.173550378 1 +4 0.000337946 17 +3 0.177683749 1 +4 0.000411044 17 +3 0.165552334 1 +4 0.000328781 18 +3 0.169847364 1 +4 0.000343848 17 +3 0.349475197 1 +4 0.000338459 17 +3 0.199688020 1 +3 0.048091986 1 +4 0.000373727 69 +3 0.183600558 1 +3 0.071954096 1 +4 0.000341226 69 +3 0.143583093 1 +3 0.072123557 1 +4 0.000351541 70 +3 0.143624734 1 +3 0.071961404 1 +4 0.000345451 21 +3 0.159839162 1 +3 0.055884309 1 +4 0.000407696 105 +3 0.143631378 1 +3 0.072088178 1 +4 0.000421948 4 +3 0.159495000 1 +3 0.055895829 1 +4 0.000337136 4 +3 0.167754686 1 +3 0.056028754 1 +4 0.000406078 4 +3 0.223455056 1 +3 0.031991668 1 +4 0.000387841 5 +3 0.400327077 1 +3 0.063267058 1 +4 0.000353785 4 +3 0.383868089 1 +3 0.079890355 1 +4 0.000333697 4 +3 0.455722661 1 +4 0.000398118 17 +3 0.167692715 1 +4 0.000337065 4 +3 0.383631375 1 +3 0.087948554 1 +4 0.000343360 4 +3 0.191610058 1 +3 0.056338319 1 +4 0.000357270 4 +3 0.335332459 1 +4 0.000332694 4 +3 0.191988912 1 +4 0.000388017 24 +3 0.255408656 1 +4 0.000327531 27 +3 0.311964670 1 +4 0.000329936 27 +3 0.535282635 1 +4 0.000351203 25 +3 0.647773276 2 +4 0.000455207 36 +3 0.391515669 1 +4 0.000351281 17 +3 0.169667094 1 +4 0.000405985 15 +3 0.149563591 1 +4 0.000334695 9 +3 0.441740673 1 +4 0.000380755 16 +3 0.333631683 1 +4 0.000341236 17 +3 0.263603265 1 +4 0.000353596 17 +3 0.207649137 1 +4 0.000346167 4 +3 0.145751757 1 +4 0.000332387 7 +3 0.109543845 1 +4 0.000311179 24 +3 0.183897677 1 +4 0.000328809 20 +3 0.007351151 1 +4 0.000312790 20 +3 0.129932470 1 +4 0.000339756 22 +3 0.397882668 1 +4 0.000351199 17 +3 0.191341819 1 +4 0.000365951 18 +3 0.135882881 1 +4 0.000329121 20 +3 0.143446050 1 +4 0.000319704 20 +3 0.199607207 1 +4 0.000351943 20 +3 0.167824352 1 +4 0.000315567 20 +3 0.247614467 1 +4 0.000342691 20 +3 0.055736817 1 +4 0.000307130 21 +3 0.063593990 1 +4 0.000331799 20 +3 0.015658267 1 +4 0.000312669 20 +3 0.543777302 1 +4 0.000406003 20 +3 0.757150037 1 +4 0.110005761 33 +3 8.530119335 1 +4 0.109944528 1 +3 37.460552135 1 +3 0.097390628 1 +4 0.000319727 21 +3 1.408422266 1 +4 0.000364515 16 +3 0.200914972 1 +4 0.000369363 19 +3 0.253657346 1 +4 0.000311340 20 +3 0.145663954 1 +4 0.000402758 20 +3 1.141692288 1 +3 0.144013908 1 +3 0.122031340 1 +4 0.000500023 30 +3 0.181343851 1 +4 0.000381788 118 +3 0.159761862 1 +4 0.000369254 43 +3 0.153674795 1 +4 0.000330265 18 +3 0.173816829 1 +4 0.000349210 17 +3 0.169495023 1 +4 0.000341292 17 +3 0.181618874 1 +4 0.000352165 18 +3 0.217642100 1 +4 0.000347284 17 +3 0.229581941 1 +4 0.000395292 17 +3 0.103730075 1 +3 0.080645875 1 +4 0.000334303 27 +3 0.199303016 1 +4 0.000314887 18 +3 0.095439448 1 +4 0.000409778 18 +3 0.119587852 1 +4 0.000327680 18 +3 0.103733059 1 +4 0.000326631 24 +3 0.271534140 2 +4 0.000416677 36 +3 0.159607458 1 +4 0.000328158 15 +3 0.162032829 1 +4 0.000336834 9 +3 0.909222034 1 +3 0.072113027 1 +4 0.000401278 4 +3 0.295626428 1 +3 0.055830914 1 +4 0.000342416 6 +3 0.551895662 1 +3 0.079965287 1 +4 0.000383645 7 +3 0.415814232 1 +4 0.000398259 7 +3 1.095530830 1 +4 0.000332068 24 +3 0.249480319 1 +4 0.000367411 16 +3 0.069703592 1 +4 0.000309604 17 +3 0.031736612 1 +4 0.000332510 19 +3 0.135653206 1 +4 0.000344851 19 +3 0.151760722 1 +4 0.000414377 20 +3 0.135442232 1 +4 0.000320695 19 +3 0.215735795 1 +4 0.000379862 19 +3 0.143675662 1 +4 0.000333069 19 +3 0.119611034 1 +4 0.000388026 19 +3 0.095667408 1 +4 0.000322488 19 +3 0.391754973 2 +4 0.000406533 9 +3 0.095435400 1 +4 0.000352384 1 +3 0.103698735 1 +4 0.000337172 1 +4 0.000406655 71 +3 2.807345891 1 +4 0.000352232 39 +3 0.193837807 1 +4 0.000430656 17 +3 0.277359668 1 +4 0.000492549 14 +3 0.207629890 1 +3 0.096070940 1 +4 0.000406128 21 +3 0.201357121 1 +3 0.062198393 1 +4 0.000509318 4 +3 0.647524515 1 +3 0.058847717 1 +4 0.001006521 5 +3 0.268140710 1 +4 0.000355018 9 +3 0.127573024 1 +4 0.000314944 1 +3 0.087755708 1 +4 0.000373545 1 +4 0.000733677 71 +3 25.680327100 2 +4 0.000415360 40 +3 0.500168461 1 +4 0.000345733 17 +3 0.082014980 1 +4 0.000343734 17 +3 0.082732160 1 +4 0.000308449 16 +3 0.083085216 1 +4 0.000347725 17 +3 0.083293791 1 +4 0.000335752 20 +3 0.083300563 1 +4 0.000333679 20 +3 0.082744557 1 +4 0.000336053 20 +3 0.083491280 1 +4 0.000332338 21 +3 0.379409860 1 +3 0.500660526 1 +4 0.000392326 56 +3 0.082903979 1 +3 0.083893553 1 +4 0.000359338 109 +3 0.082775650 1 +3 0.083271789 1 +4 0.000351209 50 +3 0.082798483 1 +3 0.083266529 1 +4 0.000380645 79 +3 0.083243559 1 +3 0.083454583 1 +4 0.000356844 37 +3 0.083466983 1 +3 0.083394091 1 +4 0.000347213 30 +3 0.082976787 1 +3 0.083665025 1 +4 0.000350425 46 +3 0.083447438 1 +3 0.496309135 1 +4 0.000396465 76 +3 0.413792647 1 +4 0.000332448 10 +3 0.127516669 1 +4 0.000319480 1 +3 0.135976584 1 +4 0.000330092 1 +4 0.000371342 70 +3 0.615159903 1 +4 0.000381340 37 +3 0.193423073 1 +4 0.000311446 16 +3 0.197763128 1 +4 0.000365698 16 +3 0.201717774 1 +4 0.000326641 16 +3 0.165578714 1 +4 0.000378396 16 +3 0.561741684 1 +4 0.000330516 16 +3 31.791327930 1 +4 0.000410781 16 +3 0.144878230 1 +4 0.000313374 16 +3 0.166528198 1 +4 0.000355110 16 +3 0.255128716 1 +4 0.000327253 18 +3 0.623592858 1 +4 0.000398111 56 +3 0.484581327 482 +4 0.000648644 327 +4 0.000281574 297 +3 0.474031925 2 +4 0.000390452 51 +3 0.499760537 1 +4 0.000362859 57 +3 0.147600416 1 +4 0.000328532 18 +3 0.499730413 1 +4 0.000367052 20 +3 0.082609608 1 +4 0.000308948 20 +3 0.083518076 1 +4 0.000336197 17 +3 0.083368597 1 +4 0.000363839 20 +3 0.083226698 1 +4 0.000314125 14 +3 0.083626568 1 +4 0.000320239 20 +3 0.083315917 1 +4 0.000311907 20 +3 0.082827275 1 +4 0.000348916 20 +3 0.083415597 1 +4 0.000308781 20 +3 0.084330134 1 +4 0.000372289 18 +3 0.082708926 1 +4 0.000318105 19 +3 0.083442131 1 +4 0.000309499 19 +3 0.082831846 1 +4 0.000324884 19 +3 0.083502220 1 +4 0.000310053 16 +3 0.083391652 1 +4 0.000336717 18 +3 0.312867040 1 +4 0.000343477 19 +3 0.967726339 1 +3 0.183872709 1 +3 0.114021623 1 +4 0.000351377 30 +3 0.421787047 1 +4 0.000331517 42 +3 0.177689750 1 +4 0.000331284 19 +3 0.165569011 1 +4 0.000315404 20 +3 0.649914652 1 +4 0.000356583 19 +3 0.498184093 1 +4 0.000340550 18 +3 0.083446321 1 +4 0.000323868 20 +3 0.081995170 1 +4 0.000313058 20 +3 0.083345668 1 +4 0.000321728 20 +3 0.083106825 1 +4 0.000311740 20 +3 0.083763827 1 +4 0.000342292 17 +3 0.083422989 1 +4 0.000343899 17 +3 0.083296303 1 +4 0.000382450 20 +3 0.386287427 1 +4 0.000340438 17 +3 0.303729371 1 +4 0.000390762 139 +3 1.743796971 1 +4 0.000366338 43 +3 0.249498115 1 +4 0.000349871 18 +3 0.229570730 1 +4 0.000331705 17 +3 15.760889770 1 +4 0.000409383 92 +3 0.248996787 1 +4 0.000555008 47 +3 0.237465819 1 +4 0.000370083 20 +3 0.201728425 1 +4 0.000330774 18 +3 1.597483199 1 +4 0.000359256 17 +3 0.187300351 1 +4 0.000325557 18 +3 0.196007135 1 +4 0.000402731 17 +3 0.271755807 1 +4 0.000330358 17 +3 0.135391799 1 +3 0.064279766 1 +4 0.000345506 29 +3 0.471782423 2 +4 0.000401253 29 +3 0.295480571 1 +3 0.615908125 2 +4 0.000351774 17 +3 0.423865831 1 +4 0.000414001 24 +3 0.167449862 1 +4 0.000337963 90 +3 0.143709501 1 +4 0.000399620 90 +3 0.351544993 2 +4 0.000433133 97 +3 0.175501386 1 +4 0.000364540 17 +3 0.247753373 1 +3 0.071950244 1 +4 0.000350965 29 +3 0.199788929 1 +4 0.000362167 18 +3 0.327454931 1 +4 0.000340203 18 +3 0.415799497 1 +4 0.000388320 17 +3 0.039693974 1 +4 0.000325919 18 +3 0.159589337 1 +4 0.000354441 18 +3 0.167737055 1 +4 0.000329736 18 +3 0.135529240 1 +4 0.000323341 18 +3 0.111785235 1 +4 0.000370118 18 +3 0.327533134 2 +4 0.000359409 79 +3 0.153678584 1 +4 0.000342212 17 +3 0.373732092 1 +4 0.000344131 28 +4 0.000335541 99 +3 0.607480075 1 +4 0.000421897 28 +3 0.503372723 1 +4 0.000353922 73 +3 0.231700166 1 +4 0.000387482 74 +3 0.087547841 1 +4 0.000343386 75 +3 0.967852369 1 +4 0.000357882 77 +3 0.119760772 1 +4 0.000327700 77 +3 0.495430199 2 +4 0.000409435 22 +3 1.455670962 1 +3 0.136049650 1 +4 0.000407127 9 +3 0.607658736 1 +4 0.000334196 1 +3 0.111608823 1 +4 0.000422528 138 +3 0.847566104 1 +4 0.000337607 18 +3 0.239593294 1 +4 0.000453913 13 +3 0.815744351 1 +3 0.095810438 1 +4 0.000563110 29 +3 0.335618566 1 +4 0.000473371 13 +3 0.063541474 1 +4 0.000356626 16 +3 0.127674719 1 +4 0.000572425 18 +3 0.135320159 1 +4 0.000468512 18 +3 0.167562653 1 +4 0.000349390 19 +3 0.423803062 1 +4 0.000356501 23 +3 0.151579025 1 +4 0.000365639 23 +3 0.184373685 1 +4 0.000494081 23 +3 0.166790569 1 +4 0.000351437 23 +3 0.143673253 1 +4 0.000340845 23 +3 0.143583097 1 +4 0.000329542 23 +3 1.061800155 1 +4 0.110035826 33 +3 11.230177681 1 +4 0.109894286 1 +3 0.144779688 1 +4 0.000313719 18 +3 0.499170658 1 +4 0.000355520 20 +3 0.082890827 1 +4 0.000326134 20 +3 0.082812159 1 +4 0.000353703 17 +3 0.083534823 1 +4 0.000321899 20 +3 0.083823155 1 +4 0.000328459 17 +3 0.083063504 1 +4 0.000326317 20 +3 0.082630883 1 +4 0.000349978 20 +3 0.082977332 1 +4 0.000362105 20 +3 0.082647748 1 +4 0.000538387 20 +3 0.083605349 1 +4 0.000352822 18 +3 0.083226123 1 +4 0.000341422 18 +3 0.432770428 1 +3 0.500922303 1 +4 0.000402545 55 +3 0.082605686 1 +3 0.083208646 1 +4 0.000365150 65 +3 0.083378933 1 +3 0.083849630 1 +4 0.000385798 104 +3 0.398970997 1 +3 0.438007413 1 +4 0.000393754 38 +3 6.970020862 1 +3 0.125928496 1 +4 0.000363261 36 +3 20.400806501 1 +4 0.000457508 15 +3 0.499017393 1 +4 0.000333411 16 +3 0.082977503 1 +4 0.000339093 15 +3 0.083176300 1 +4 0.000338799 15 +3 0.083177846 1 +4 0.000390102 15 +3 0.083624712 1 +4 0.000325837 18 +3 0.471595615 1 +4 0.000389240 16 +3 0.181397975 1 +4 0.000406234 16 +3 0.183472337 1 +4 0.000328933 16 +3 0.201743125 1 +4 0.000345084 16 +3 1.157743437 1 +3 0.167917005 1 +3 0.114115602 1 +4 0.000348750 29 +3 0.205470455 1 +4 0.000412451 168 +3 0.239697388 1 +4 0.000335225 41 +3 0.153641480 1 +4 0.000406105 16 +3 0.173497615 1 +4 0.000328928 16 +3 0.169690697 1 +4 0.000389667 16 +3 0.437681597 1 +4 0.000331343 18 +3 0.167688715 1 +4 0.000340679 18 +3 0.186123336 1 +4 0.000324602 17 +3 0.181070872 1 +4 0.000391565 17 +3 0.185935537 1 +4 0.000351646 17 +3 0.205541082 1 +3 0.079898558 1 +4 0.000347454 4 +3 0.183833396 1 +4 0.000350846 6 +3 0.255464528 1 +4 0.000356907 17 +3 0.103755323 1 +4 0.000338515 18 +3 0.201671821 1 +4 0.000391423 18 +3 0.149456132 1 +4 0.000311397 17 +3 0.185895976 1 +4 0.000348917 17 +3 1.766458957 1 +3 0.111748001 1 +4 0.000342213 29 +3 3.009475648 13 +4 0.000366756 50 +3 3.533449180 2 +4 0.000377710 35 +3 0.193494105 1 +4 0.000372244 20 +3 0.245805875 1 +4 0.000360129 38 +3 0.215558489 1 +4 0.000355014 19 +3 0.169780542 1 +4 0.000328647 20 +3 0.157458487 1 +4 0.000396414 17 +3 0.137650747 1 +4 0.000347145 17 +3 0.126381715 1 +4 0.000320292 17 +3 0.121045758 1 +4 0.000313152 17 +3 0.141670376 1 +4 0.000323232 17 +3 0.129670629 1 +4 0.000357552 18 +3 0.134123742 1 +4 0.000321029 16 +3 0.199272519 1 +3 0.154085494 1 +4 0.000405687 114 +3 3.414143106 1 +3 0.145794378 1 +4 0.000366336 38 +3 0.773973986 1 +4 0.000346917 9 +3 0.263659920 1 +4 0.000331238 1 +3 0.063057300 1 +4 0.000312699 1 +3 0.039609940 1 +4 0.000310816 1 +3 0.199833113 1 +4 0.000354866 1 +3 0.183408742 1 +4 0.000321901 1 +3 0.151895847 1 +4 0.000312409 1 +3 0.143668554 1 +4 0.000345163 42 +3 4.816406965 1 +4 0.000356929 17 +3 0.169107106 1 +4 0.000320840 18 +3 0.133669171 1 +4 0.000307794 17 +3 0.153798546 1 +4 0.000375121 17 +3 0.221497804 1 +3 0.080011551 1 +4 0.000339785 29 +3 0.135585549 1 +4 0.000366028 18 +3 0.416084841 1 +4 0.000345946 17 +3 0.119140269 1 +4 0.000385091 18 +3 0.071633955 1 +4 0.000339052 18 +3 0.063691059 1 +4 0.000335902 18 +3 0.199683965 1 +4 0.000337395 18 +3 0.183745149 1 +4 0.000363842 18 +3 0.055538150 1 +4 0.000354163 18 +3 0.121754583 1 +4 0.000405515 42 +3 0.221720024 2 +4 0.000341910 24 +3 0.129582201 1 +4 0.000342469 17 +3 0.237651901 1 +3 0.064652588 1 +4 0.000357747 33 +3 0.134849167 1 +4 0.000360703 19 +3 0.135710909 1 +4 0.000316010 18 +3 0.095563112 1 +4 0.000387194 18 +3 0.120230822 1 +4 0.000339029 18 +3 0.055130444 1 +4 0.000409056 18 +3 1.374432178 1 +4 0.109982395 37 +3 48.370700967 1 +4 0.109937620 1 +3 0.356890712 1 +4 0.000327038 18 +3 0.407155126 1 +4 0.000352911 24 +3 0.255744725 1 +4 0.000335455 34 +3 0.135529116 1 +4 0.000330631 33 +3 0.143803776 1 +4 0.000311379 33 +3 0.487583780 1 +4 0.000342134 33 +3 0.671346413 1 +4 0.109925140 33 +3 4.546670271 1 +3 0.143813430 1 +3 0.122041644 1 +4 0.000413285 31 +3 0.237567793 1 +4 0.000397703 174 +3 0.639827081 1 +4 0.000348563 43 +3 0.201765239 1 +4 0.000413365 18 +3 0.197467535 1 +4 0.000325038 17 +3 0.185511784 1 +4 0.000363859 17 +3 0.317787633 1 +4 0.000360147 17 +3 0.185639356 1 +4 0.000394657 17 +3 0.149574807 1 +4 0.000313383 18 +3 0.287591136 1 +3 0.088011658 1 +4 0.000363159 4 +3 0.199715538 1 +3 0.064018271 1 +4 0.000358743 4 +3 0.519699010 1 +4 0.000408737 4 +3 0.255615399 1 +4 0.000360562 17 +3 0.423601363 1 +4 0.000382063 4 +3 0.719940695 1 +4 0.000436410 17 +3 0.287256454 1 +4 0.000327343 18 +3 0.209763170 1 +4 0.000341903 17 +3 0.229558968 1 +4 0.000324724 17 +3 0.201843917 1 +4 0.000387559 18 +3 0.277373847 1 +3 0.072253667 1 +4 0.000386864 29 +3 0.135401781 1 +4 0.000369952 18 +3 0.135684962 1 +4 0.000336159 18 +3 0.079554769 1 +4 0.000345051 18 +3 0.103783530 1 +4 0.000325816 18 +3 0.071570269 1 +4 0.000316469 18 +3 0.455813369 2 +4 0.000351968 40 +3 0.359747698 1 +4 0.000331253 20 +3 0.203367315 1 +4 0.000322835 19 +3 0.180023613 1 +4 0.000341577 20 +3 0.231451705 1 +4 0.000405716 17 +3 0.185669610 1 +4 0.000339183 18 +3 0.165678940 1 +4 0.000313232 18 +3 0.146003186 1 +4 0.000311441 17 +3 0.597478758 1 +4 0.000337850 19 +3 0.201801336 1 +4 0.000318510 20 +3 0.149506466 1 +4 0.000313023 17 +3 0.162112343 1 +4 0.000351940 17 +3 0.109200955 1 +4 0.000327850 17 +3 0.137872830 1 +4 0.000333502 18 +3 0.117568342 1 +4 0.000333679 16 +3 0.311639974 1 +3 0.162003130 1 +4 0.000379755 75 +3 0.261545399 1 +3 0.122065898 1 +4 0.000456392 104 +3 0.117453068 1 +4 0.000373602 15 +3 1.409741982 1 +4 0.000446896 19 +3 0.181656097 1 +4 0.000329522 16 +3 0.169639882 1 +4 0.000373205 16 +3 0.165528402 1 +4 0.000335128 16 +3 9.040562010 1 +4 0.000370820 16 +3 0.161235472 1 +4 0.000332626 18 +3 0.157502963 1 +4 0.000419027 18 +3 0.138188933 1 +4 0.000314842 17 +3 0.157156218 1 +4 0.000379167 17 +3 0.153473962 1 +4 0.000315378 18 +3 0.133800302 1 +4 0.000388554 17 +3 0.145594867 1 +4 0.000337298 17 +3 0.277627903 1 +3 0.072079917 1 +4 0.000347425 33 +3 0.103483251 1 +4 0.000356924 19 +3 0.135734917 1 +4 0.000323910 18 +3 0.199753900 1 +4 0.000334302 17 +3 0.063635876 1 +4 0.000341138 18 +3 0.183611705 1 +4 0.000364358 18 +3 0.119829742 1 +4 0.000337920 18 +3 0.263566945 1 +4 0.000333138 18 +3 0.063997843 1 +4 0.000328836 18 +3 0.055383715 1 +4 0.000317688 18 +3 0.716639951 1 +4 0.110075430 33 +3 0.805765447 1 +4 0.000508410 17 +3 0.222761693 1 +4 0.000394105 17 +3 0.185504503 1 +4 0.000321400 18 +3 1.677965485 1 +3 0.039881330 1 +4 0.000369242 4 +3 0.199610204 1 +4 0.000347055 6 +3 5.135801847 2 +4 0.000452682 12 +3 0.288286666 1 +4 0.000394276 19 +3 0.168847062 1 +4 0.000343905 37 +3 0.501746799 1 +4 0.000419846 85 +3 0.575522020 1 +4 0.000385413 104 +3 0.279741971 1 +4 0.000389606 38 +3 0.703500287 1 +4 0.000347354 35 +3 0.367655223 1 +4 0.000440241 17 +3 0.169886001 1 +4 0.000322410 19 +3 0.165459397 1 +4 0.000343386 20 +3 0.783680443 1 +3 1.728216886 2 +4 0.000360084 18 +3 0.170121193 1 +4 0.000340091 18 +3 0.236945841 1 +4 0.000355168 17 +3 0.175714857 1 +4 0.000334692 17 +3 0.567775846 1 +4 0.000380103 17 +3 0.127481824 1 +4 0.000316456 24 +3 0.111589708 1 +4 0.000357462 22 +3 0.127897662 1 +4 0.000314507 22 +3 0.191536188 1 +4 0.000362848 22 +3 0.167705788 1 +4 0.000352659 22 +3 0.095456418 1 +4 0.000356951 22 +3 0.103850853 1 +4 0.000349034 22 +3 0.744244200 1 +4 0.000355774 17 +3 0.319046499 1 +4 0.000442546 17 +3 0.143575233 1 +4 0.000360203 17 +3 0.183669560 1 +4 0.000358766 17 +3 0.183618884 1 +4 0.000353155 17 +3 0.071676335 1 +4 0.000406601 18 +3 0.135535452 1 +4 0.000424665 17 +3 0.135675891 1 +4 0.000400942 22 +3 0.407376145 2 +4 0.000442732 36 +3 0.201778282 1 +4 0.000379741 19 +3 0.165544242 1 +4 0.000363140 20 +3 0.881872514 1 +4 0.000443857 17 +3 0.709387659 1 +4 0.000355279 17 +3 0.185624354 1 +4 0.000430600 17 +3 0.165649264 1 +4 0.000342672 18 +3 0.209736385 1 +4 0.000368710 18 +3 0.925502720 1 +3 0.103977414 1 +4 0.000346841 33 +3 3.192451814 1 +4 0.000363895 19 +3 0.126932545 1 +4 0.000319243 18 +3 0.199693950 1 +4 0.000339547 17 +3 0.111660863 1 +4 0.000331957 18 +3 0.247850101 1 +4 0.000338948 18 +3 0.175556736 1 +4 0.000389250 18 +3 0.231664064 1 +4 0.000337667 18 +3 0.071549899 1 +4 0.000315591 18 +3 0.071706185 1 +4 0.000309370 18 +3 0.375803703 2 +4 0.000395729 10 +3 0.127643695 1 +4 0.000307878 1 +3 0.071834668 1 +4 0.000355001 1 +4 0.000417061 71 +3 0.375146422 1 +4 0.000339288 39 +3 0.151503993 1 +4 0.000321562 17 +3 0.169772264 1 +4 0.000325145 18 +3 1.045757585 1 +3 0.095851424 1 +4 0.000379875 21 +3 0.167626919 1 +4 0.000353220 6 +3 1.975821698 1 +4 0.000408611 17 +3 0.177503624 1 +4 0.000334285 19 +3 0.173754324 1 +4 0.000328232 20 +3 0.703659513 1 +4 0.000322992 17 +3 0.456054539 1 +4 0.000342364 4 +3 0.169341293 1 +4 0.000360693 4 +3 0.141649340 1 +4 0.000346621 7 +3 4.439967084 1 +4 0.000355890 20 +3 0.185564983 1 +4 0.000336582 21 +3 0.181527451 1 +4 0.000375780 21 +3 0.185605030 1 +4 0.000333384 20 +3 0.133758247 1 +4 0.000319822 19 +3 1.890366705 1 +4 0.000424785 20 +3 0.268973084 1 +4 0.000383056 17 +3 0.135742214 1 +4 0.000324542 17 +3 0.185611026 1 +4 0.000329502 17 +3 0.157585660 1 +4 0.000319498 18 +3 0.137843567 1 +4 0.000322983 18 +3 0.421548220 1 +4 0.000347243 18 +3 0.167696564 1 +4 0.000363056 31 +3 0.183842979 1 +4 0.000363409 28 +3 0.543684667 1 +4 0.000396383 17 +3 0.199383764 1 +4 0.000354674 18 +3 3.312107842 15 +4 0.000361784 43 +3 0.575321321 2 +4 0.000410440 33 +3 0.193579312 1 +4 0.000343675 20 +3 0.165802683 1 +4 0.000390893 20 +3 0.155701490 1 +4 0.000336779 21 +3 0.155391198 1 +4 0.000442939 19 +3 0.192317929 1 +3 0.167344553 1 +3 0.153916527 1 +4 0.000442250 57 +3 1.965674558 1 +4 0.000451457 40 +3 0.499764594 1 +4 0.000396980 15 +3 0.082979766 1 +4 0.000325901 15 +3 0.083061258 1 +4 0.000394347 15 +3 0.082997320 1 +4 0.000349944 15 +3 0.082916734 1 +4 0.000353710 15 +3 0.082907630 1 +4 0.000321255 15 +3 0.084252453 1 +4 0.000385319 77 +3 0.082080906 1 +4 0.000348032 78 +3 0.082745791 1 +4 0.000444184 72 +3 0.082981982 1 +4 0.000346113 36 +3 0.083731417 1 +4 0.000385605 46 +3 0.082942554 1 +4 0.000378678 100 +3 0.083760268 1 +4 0.000439603 88 +3 0.082953919 1 +4 0.000360369 44 +3 0.174291698 1 +4 0.000337277 15 +3 0.500579794 1 +4 0.000402079 15 +3 0.083593537 1 +4 0.000343839 15 +3 0.083042831 1 +4 0.000330159 17 +3 0.083311131 1 +4 0.000383417 17 +3 0.083070405 1 +4 0.000322192 15 +3 0.082817202 1 +4 0.000324962 16 +3 0.082955668 1 +4 0.000352557 15 +3 0.551931053 1 +4 0.000422846 16 +3 2.029544042 1 +4 0.000380646 53 +3 0.263684538 1 +4 0.000403640 36 +3 1.071617388 2 +4 0.000404052 120 +3 0.879674421 1 +4 0.000392763 41 +3 0.500303514 1 +4 0.000344169 16 +3 0.084517571 1 +4 0.000383004 16 +3 0.081634254 1 +4 0.000357732 16 +3 1.142049302 1 +4 0.000390219 16 +3 0.221699701 1 +4 0.000424641 16 +3 0.521657225 1 +4 0.000350753 16 +3 0.581563664 1 +4 0.000367152 17 +3 0.257531636 1 +4 0.000395919 16 +3 0.229855554 1 +4 0.000345921 16 +3 0.499956178 1 +4 0.000387651 16 +3 0.083525574 1 +4 0.000328273 16 +3 0.083559651 1 +4 0.000448435 92 +3 0.082634412 1 +4 0.000371538 44 +3 0.084196617 1 +4 0.000374507 34 +3 0.082463247 1 +4 0.000368721 54 +3 0.225010916 1 +4 0.000343039 16 +3 0.217584858 1 +4 0.000343449 18 +3 0.165678539 1 +4 0.000323934 16 +3 0.521585543 1 +4 0.000374796 16 +3 1.421720860 1 +4 0.000342931 16 +3 0.623662268 1 +4 0.000356870 16 +3 0.415818209 1 +4 0.000338788 16 +3 0.185610370 1 +4 0.000327341 16 +3 56.863558864 2 +4 0.000372835 17 +3 0.500188793 1 +4 0.000338762 16 +3 0.082791915 1 +4 0.000373587 16 +3 0.082892994 1 +4 0.000310608 16 +3 0.083644957 1 +4 0.000323414 16 +3 0.082564517 1 +4 0.000316353 16 +3 0.082823382 1 +4 0.000327113 17 +3 0.420762239 1 +4 0.000341057 16 +3 0.725683280 1 +4 0.000347385 16 +3 0.169601783 1 +4 0.000349340 17 +3 0.149560568 1 +4 0.000310762 16 +3 0.296088444 1 +4 0.000367454 52 +3 0.111316743 1 +4 0.000342702 16 +3 0.159628313 1 +4 0.000317998 16 +3 0.487871378 1 +4 0.000351865 17 +3 0.015419206 1 +4 0.000327941 17 +3 0.183829312 1 +4 0.000369127 17 +3 1.016087062 1 +4 0.000342832 14 +3 0.359359352 1 +4 0.000348427 20 +3 0.015437651 1 +4 0.000321955 18 +3 0.159885333 1 +4 0.000340734 16 +3 0.671697063 1 +4 0.000354526 16 +3 0.271587848 1 +4 0.000326924 20 +3 0.247596505 1 +4 0.000360905 14 +3 0.167722031 1 +4 0.000326457 1 +3 0.224174607 1 +4 0.000419383 16 +3 0.215153787 1 +4 0.000333891 16 +3 0.391504699 1 +4 0.000333100 19 +3 0.103595519 1 +4 0.000394378 17 +3 0.279805680 1 +4 0.000404785 18 +3 0.159573060 1 +4 0.000390699 18 +3 0.095574834 1 +4 0.000331628 18 +3 0.111597223 1 +4 0.000318922 17 +3 0.135793057 1 +4 0.000363708 18 +3 0.087540509 1 +4 0.000336322 17 +3 0.159752029 1 +4 0.000390604 18 +3 0.087611800 1 +4 0.000383487 18 +3 0.056742351 1 +4 0.000465323 19 +3 0.104304822 1 +4 0.000356671 18 +3 0.085617326 1 +4 0.000358310 18 +3 0.071768679 1 +4 0.000304527 18 +3 0.087588588 1 +4 0.000401929 18 +3 0.095604151 1 +4 0.000315903 17 +3 0.103694046 1 +4 0.000346116 18 +3 0.087606667 1 +4 0.000375860 18 +3 0.079815608 1 +4 0.000340996 18 +3 0.232588017 1 +4 0.000325128 18 +3 0.254726895 1 +4 0.000353367 19 +3 0.111576060 1 +4 0.000339386 18 +3 0.095602835 1 +4 0.000339095 18 +3 0.103790138 1 +4 0.000339718 18 +3 0.087671506 1 +4 0.000415849 18 +3 0.985995502 1 +4 0.110005593 33 +3 2.607663495 1 +4 0.000374918 19 +3 0.225767927 1 +4 0.000345812 21 +3 0.277624993 1 +4 0.000404794 17 +3 0.407409999 1 +4 0.000343714 17 +3 0.201843922 1 +4 0.000373062 20 +3 0.173597223 1 +4 0.000400054 20 +3 0.185479258 1 +4 0.000322413 17 +3 0.717710421 1 +4 0.000344428 17 +3 0.209787831 1 +4 0.000395843 17 +3 0.525563477 1 +4 0.000337454 31 +3 0.479842633 1 +4 0.000379006 54 +3 0.143380297 1 +4 0.000333983 53 +3 0.047700484 1 +4 0.000405173 53 +3 0.143889187 1 +4 0.000341593 53 +3 0.055310108 1 +4 0.000335033 53 +3 0.223859077 1 +4 0.000345699 49 +3 0.367648069 2 +4 0.000413740 34 +3 0.201608958 1 +4 0.000355101 19 +3 1.117664776 1 +4 0.000363813 21 +3 0.201520385 1 +4 0.000366371 17 +3 0.525715747 1 +3 0.216059662 1 +3 0.139194879 1 +4 0.000420538 177 +3 0.980364282 1 +4 0.000359846 10 +3 0.143577346 1 +4 0.000324217 1 +3 0.103734730 1 +4 0.000388367 1 +4 0.000325011 70 +3 34.000539382 2 +4 0.000409555 38 +3 0.170109040 1 +4 0.000332830 17 +3 0.133255641 1 +4 0.000337807 16 +3 0.161597428 1 +4 0.000350663 16 +3 0.117553372 1 +4 0.000335532 16 +3 0.145851410 1 +4 0.000366825 16 +3 0.557738013 1 +4 0.000375498 54 +3 0.503544954 1 +4 0.000354412 35 +3 0.196026505 312 +4 0.000580006 327 +4 0.000364241 109 +3 0.482383695 2 +4 0.000418500 36 +3 0.225817667 1 +4 0.000331601 14 +3 0.149639782 1 +4 0.000322562 20 +3 0.399640121 1 +4 0.000352179 14 +3 0.185857789 1 +4 0.000364838 21 +3 0.133867146 1 +4 0.000362586 10 +3 0.255247637 1 +3 0.138165075 1 +4 0.000359884 38 +3 0.325583677 1 +4 0.000355319 14 +3 0.500205808 1 +4 0.000355091 15 +3 0.083618019 1 +4 0.000398399 14 +3 0.087175131 1 +4 0.000318895 14 +3 0.185452694 1 +4 0.000374563 15 +3 0.157599866 1 +4 0.000323648 14 +3 0.153792848 1 +4 0.000368093 14 +3 0.125478695 1 +4 0.000318600 14 +3 0.153909002 1 +4 0.000408088 14 +3 0.117457249 1 +4 0.000342417 18 +3 0.500068003 1 +4 0.000349528 16 +3 0.082970902 1 +4 0.000324961 16 +3 0.083438608 1 +4 0.000341588 16 +3 0.083172836 1 +4 0.000363292 16 +3 0.083089491 1 +4 0.000389105 17 +3 0.863300330 1 +4 0.000378973 15 +3 0.285475036 1 +4 0.000375948 15 +3 0.256278631 1 +4 0.000584535 894 +3 0.446763867 1 +4 0.000404832 16 +3 0.500276476 1 +4 0.000363390 16 +3 0.083456225 1 +4 0.000336862 17 +3 0.082927433 1 +4 0.000328319 16 +3 0.083688812 1 +4 0.000339892 16 +3 0.082802915 1 +4 0.000358656 18 +3 0.082716245 1 +4 0.000348332 16 +3 0.082738342 1 +4 0.000357387 16 +3 0.083145079 1 +4 0.000328128 16 +3 0.082874154 1 +4 0.000322745 16 +3 0.083506173 1 +4 0.000314595 16 +3 0.082634175 1 +4 0.000309010 16 +3 0.113315995 1 +4 0.000351674 18 +3 2.711790189 1 +3 0.121811708 1 +4 0.000342354 30 +3 1.350780677 1 +4 0.000484288 43 +3 0.499582593 1 +4 0.000364018 17 +3 0.082898191 1 +4 0.000411469 19 +3 0.082727601 1 +4 0.000316052 20 +3 0.083071661 1 +4 0.000344978 17 +3 0.083232812 1 +4 0.000314568 19 +3 0.082802022 1 +4 0.000650484 16 +3 0.082775725 1 +4 0.000390980 20 +3 0.082924623 1 +4 0.000372701 17 +3 0.082767449 1 +4 0.000413153 18 +3 0.082665069 1 +4 0.000335966 19 +3 0.083807830 1 +4 0.000323808 20 +3 0.082809994 1 +4 0.000442159 97 +3 0.083449431 1 +4 0.000360868 47 +3 0.082590256 1 +4 0.000410985 119 +3 0.083417111 1 +4 0.000363701 110 +3 0.082967041 1 +4 0.000441623 47 +3 0.083131456 1 +4 0.000353412 72 +3 0.083159443 1 +4 0.000398348 115 +3 0.082743335 1 +4 0.000361302 87 +3 0.173665158 1 +4 0.000346653 18 +3 0.500511599 1 +4 0.000381397 17 +3 0.082614069 1 +4 0.000344279 19 +3 0.083045344 1 +4 0.000389864 20 +3 0.083123871 1 +4 0.000325308 17 +3 0.083441137 1 +4 0.000311326 19 +3 0.083141430 1 +4 0.000396549 20 +3 0.082617036 1 +4 0.000319848 17 +3 0.083321903 1 +4 0.000365649 19 +3 0.082906019 1 +4 0.000325418 20 +3 0.083867395 1 +4 0.000387734 18 +3 0.082253100 1 +4 0.000327111 17 +3 5.209306135 1 +4 0.000356936 17 +3 0.499498038 1 +4 0.000338429 18 +3 0.083248941 1 +4 0.000349050 19 +3 0.082998680 1 +4 0.000338105 20 +3 0.083409580 1 +4 0.000370794 17 +3 0.248980850 1 +4 0.000336665 17 +3 0.500064336 1 +4 0.000378903 19 +3 0.083450003 1 +4 0.000327997 20 +3 0.083058283 1 +4 0.000348129 18 +3 0.342141965 1 +4 0.000344336 17 +3 2.309742734 1 +4 0.000361916 32 +3 0.023594273 1 +4 0.000341553 17 +3 0.455682228 1 +4 0.000391532 19 +3 0.239511887 1 +4 0.000330122 18 +3 0.095768258 1 +4 0.000318396 18 +3 0.191721877 1 +4 0.000330911 18 +3 0.071563823 1 +4 0.000317252 18 +3 0.055776677 1 +4 0.000334562 18 +3 0.239666474 1 +4 0.000316451 36 +3 0.359606042 2 +3 0.130090139 1 +4 0.000333990 30 +3 0.277709067 1 +4 0.000407820 43 +3 0.499829756 1 +4 0.000372602 21 +3 0.083237824 1 +4 0.000358203 19 +3 0.082780471 1 +4 0.000314001 20 +3 0.083331423 1 +4 0.000364130 20 +3 0.082893794 1 +4 0.000313460 19 +3 0.241005525 1 +4 0.000560889 16 +3 0.172332582 1 +4 0.000362109 17 +3 0.161543688 1 +4 0.000383005 19 +3 0.141590926 1 +4 0.000316806 20 +3 0.831752554 1 +4 0.000452418 173 +3 0.431577690 1 +4 0.000357268 112 +3 0.255558635 2 +4 0.000368567 34 +3 0.153660452 1 +4 0.000311132 17 +3 0.181775527 1 +4 0.000403350 114 +3 0.161501956 1 +4 0.000406326 85 +3 0.157630278 1 +4 0.000440968 44 +3 0.175647759 1 +4 0.000337343 16 +3 0.169626426 1 +4 0.000363192 16 +3 0.157530000 1 +4 0.000394097 16 +3 0.145792064 1 +4 0.000346868 17 +3 0.341531021 1 +4 0.000334808 14 +3 0.295732817 1 +4 0.000407270 14 +3 2.871705613 1 +3 0.095882751 1 +4 0.000343000 29 +3 0.231720463 1 +4 0.000344213 18 +3 0.119827603 1 +4 0.000329884 16 +3 0.111545685 1 +4 0.000376956 13 +3 0.087503250 1 +4 0.000330464 11 +3 0.343792660 2 +4 0.000351276 41 +3 0.500314061 1 +4 0.000349806 16 +3 0.083047818 1 +4 0.000333175 12 +3 0.082653704 1 +4 0.000318647 17 +3 0.083646378 1 +4 0.000379608 93 +3 0.082873806 1 +4 0.000389031 88 +3 0.083588092 1 +4 0.000348052 47 +3 0.082953785 1 +4 0.000418760 34 +3 0.083057976 1 +4 0.000363325 83 +3 0.082940781 1 +4 0.000363256 87 +3 0.083293536 1 +4 0.000377127 87 +3 0.082681683 1 +4 0.000362138 87 +3 0.272565953 1 +4 0.000435778 17 +3 0.499770637 1 +4 0.000340514 17 +3 0.083160135 1 +4 0.000358875 18 +3 0.082910009 1 +4 0.000334212 14 +3 0.083181014 1 +4 0.000344586 18 +3 0.083669914 1 +4 0.000373685 20 +3 0.082643920 1 +4 0.000399210 17 +3 0.083361848 1 +4 0.000346453 19 +3 0.082790860 1 +4 0.000341810 20 +3 0.083299434 1 +4 0.000312008 17 +3 0.083016580 1 +4 0.000347551 19 +3 0.082919542 1 +4 0.000314294 20 +3 0.313175103 1 +3 0.146080553 1 +4 0.000344070 30 +3 0.229642077 1 +4 0.000339589 43 +3 0.137635985 1 +4 0.000326642 19 +3 0.133717887 1 +4 0.000321032 17 +3 0.145653934 1 +4 0.000369265 19 +3 0.133492222 1 +4 0.000312544 20 +3 0.137737194 1 +4 0.000321177 17 +3 0.117801793 1 +4 0.000333762 19 +3 0.343597995 1 +4 0.000380476 85 +3 0.287646986 1 +4 0.000361537 52 +3 0.231510696 2 +4 0.000336455 34 +3 0.175869250 1 +4 0.000383886 15 +3 0.119538844 1 +4 0.000334277 13 +3 0.351730609 1 +3 0.095873721 1 +4 0.000372055 28 +3 0.175831831 1 +4 0.000360643 18 +3 0.151492854 1 +4 0.000393452 16 +3 0.087491223 1 +4 0.000345820 13 +3 0.121899184 1 +4 0.000363901 11 +3 0.197590595 1 +4 0.000350851 13 +3 0.008260737 1 +4 0.000353771 16 +3 0.127012728 1 +4 0.000339277 17 +3 0.327792032 1 +4 0.000381745 14 +3 0.123116629 1 +4 0.000374609 11 +3 0.236049131 1 +4 0.000386290 13 +3 0.047514475 1 +4 0.000406455 13 +3 0.263703469 2 +4 0.000370569 33 +3 0.500296560 1 +4 0.000360875 20 +3 0.082780693 1 +4 0.000416335 12 +3 0.082633911 1 +4 0.000381199 84 +3 0.083575166 1 +4 0.000418162 86 +3 0.082666881 1 +4 0.000376174 81 +3 0.083380645 1 +4 0.000371076 94 +3 0.083205627 1 +4 0.000371207 35 +3 0.082737781 1 +4 0.000481356 56 +3 0.083041576 1 +4 0.000423818 72 +3 0.071806079 1 +4 0.000339931 19 +3 0.500183823 1 +4 0.000385364 17 +3 0.082827724 1 +4 0.000353565 17 +3 0.083656119 1 +4 0.000341832 20 +3 0.082794864 1 +4 0.000338655 14 +3 0.083175690 1 +4 0.000316477 20 +3 0.082761809 1 +4 0.000403365 20 +3 0.082924047 1 +4 0.000317314 20 +3 0.082885107 1 +4 0.000347656 19 +3 0.082790687 1 +4 0.000331263 20 +3 0.083246887 1 +4 0.000326722 18 +3 0.083814619 1 +4 0.000331605 18 +3 0.082931200 1 +4 0.000331613 20 +3 0.083060683 1 +4 0.000378291 16 +3 0.083759840 1 +4 0.000322280 18 +3 0.083622004 1 +4 0.000361180 19 +3 0.308971204 1 +4 0.000319377 16 +3 0.868939444 1 +3 0.103877213 1 +3 0.105874567 1 +4 0.000334379 30 +3 0.261832718 1 +4 0.000348964 42 +3 0.161559851 1 +4 0.000366215 18 +3 0.149614795 1 +4 0.000344224 19 +3 0.137701948 1 +4 0.000358859 17 +3 0.125690550 1 +4 0.000337707 19 +3 0.137576502 1 +4 0.000322554 17 +3 0.214943184 1 +4 0.000355615 20 +3 0.262553259 1 +4 0.000392429 177 +3 0.879507130 1 +4 0.000382009 43 +3 0.499698962 1 +4 0.000356425 18 +3 0.082880019 1 +4 0.000346907 17 +3 0.626329712 1 +4 0.000359114 17 +3 0.197623254 1 +4 0.000329710 18 +3 0.185875211 1 +4 0.000351555 17 +3 0.989598679 1 +4 0.000360673 17 +3 11.816695526 1 +3 0.079221270 1 +4 0.000364779 29 +3 0.271784652 1 +4 0.000358693 18 +3 0.103629336 1 +4 0.000396262 18 +3 0.136661000 1 +4 0.000355047 18 +3 0.136461950 1 +4 0.000346455 18 +3 0.109841872 1 +4 0.000366960 18 +3 0.063581292 1 +4 0.000463782 18 +3 0.583768705 2 +4 0.000388785 28 +3 0.121456522 1 +4 0.000369572 17 +3 0.229573850 1 +3 0.080078948 1 +4 0.000376905 29 +3 0.168466698 1 +4 0.000367279 18 +3 0.086775728 1 +4 0.000376735 19 +3 0.143609462 1 +4 0.000386832 18 +3 0.087614344 1 +4 0.000364885 18 +3 0.191548043 1 +4 0.000456479 18 +3 0.135645856 1 +4 0.000381937 54 +3 0.047636999 1 +4 0.000359263 54 +3 0.215682793 1 +4 0.000375939 95 +3 0.600259093 2 +4 0.000518686 36 +7 0.000524969 TSTP +7 0.934500773 CONT +4 0.000608780 7 +4 0.000283100 902 +3 12.831529799 2 +4 0.000406864 19 +3 0.193942526 1 +4 0.000331562 19 +3 0.141002438 1 +4 0.000349896 16 +3 0.154083839 1 +4 0.000318132 20 +3 0.269538392 1 +3 0.137867205 1 +4 0.000367111 97 +3 2.573897292 1 +3 0.121815978 1 +4 0.000423477 30 +3 0.125502227 1 +4 0.000342705 14 +3 0.177671569 1 +4 0.000392414 18 +3 0.165702251 1 +4 0.000355251 16 +3 0.161611438 1 +4 0.000358127 17 +3 0.157739165 1 +4 0.000399045 16 +3 0.201530843 1 +4 0.000385973 18 +3 0.181540334 1 +4 0.000344512 18 +3 0.177678136 1 +4 0.000372884 17 +3 0.133790538 1 +4 0.000328319 17 +3 0.177633734 1 +4 0.000381932 18 +3 0.134352460 1 +4 0.000326386 17 +3 0.144902210 1 +4 0.000422863 17 +3 0.149559996 1 +4 0.000338509 18 +3 0.153694128 1 +4 0.000338244 17 +3 4.206426919 1 +3 0.103717321 1 +4 0.000360936 33 +3 0.619710519 16 +4 0.000530304 67 +3 0.822678487 1 +4 0.110011343 33 +3 2.430491651 1 +4 0.000383286 17 +3 0.489593323 1 +4 0.000336921 17 +3 0.261771486 1 +3 0.055956088 1 +4 0.000425498 30 +3 1.317893619 6 +4 0.000381459 24 +3 0.513259308 2 +4 0.000379054 53 +3 0.251556729 6 +4 0.000429874 6 +3 0.123850490 1 +4 0.000376758 43 +3 0.455590257 1 +4 0.000373481 17 +3 0.009327020 1 +4 0.000336126 18 +3 0.895963662 1 +4 0.000447140 18 +3 0.589748576 1 +3 0.071809754 1 +4 0.000350926 4 +3 0.199565306 1 +4 0.000413549 4 +3 0.319747540 1 +4 0.000350618 17 +3 0.201699161 1 +4 0.000347274 18 +3 1.549587898 1 +4 0.000352369 18 +3 0.177712722 1 +4 0.000339430 19 +3 0.149611635 1 +4 0.000330970 16 +3 0.145801068 1 +4 0.000337969 20 +3 0.317648862 1 +4 0.000421408 15 +4 0.018480285 86 +3 0.485114517 1 +4 0.000499266 39 +3 0.201386408 1 +4 0.000462504 18 +3 0.189506678 1 +4 0.000355374 16 +3 0.170158573 1 +4 0.000436753 17 +3 0.965253218 1 +4 0.000369171 17 +3 0.185558447 1 +4 0.000345242 16 +3 0.149548076 1 +4 0.000345254 16 +3 0.155337511 1 +4 0.000346110 14 +3 0.332079954 1 +3 0.153896742 1 +4 0.000394003 65 +3 0.189619752 1 +4 0.000359015 14 +3 0.201770281 1 +4 0.000322599 18 +3 0.165592397 1 +4 0.000371551 16 +3 0.169598000 1 +4 0.000372484 17 +3 0.141619226 1 +4 0.000426226 16 +3 0.499911586 1 +4 0.000358731 18 +3 0.083382753 1 +4 0.000369646 18 +3 0.082957105 1 +4 0.000327406 17 +3 0.082715862 1 +4 0.000349219 17 +3 0.082762668 1 +4 0.000334275 18 +3 0.083555638 1 +4 0.000430642 17 +3 0.083462271 1 +4 0.000330495 18 +3 0.083430157 1 +4 0.000377314 18 +3 0.083701151 1 +4 0.000322508 17 +3 0.494763645 1 +4 0.000433546 18 +3 0.215492413 1 +4 0.000384989 31 +3 0.815854569 1 +4 0.000391280 28 +3 0.583465415 1 +4 0.000394001 17 +3 0.591890813 1 +4 0.000386881 18 +3 67.177561192 2 +4 0.105917815 49 +3 0.038088666 1 +4 0.000352776 17 +3 0.199862087 1 +4 0.000339868 16 +3 0.151309765 1 +4 0.000355404 17 +3 0.320348551 1 +4 0.000358010 16 +3 0.185209753 1 +4 0.000413594 16 +3 0.125500032 1 +4 0.000329879 15 +3 0.464186187 1 +4 0.000389574 19 +3 0.143198480 1 +4 0.000386303 16 +3 0.335490147 1 +4 0.000343078 19 +3 0.127700355 1 +4 0.000331710 17 +3 0.119411202 1 +4 0.000343321 18 +3 0.167759692 1 +4 0.000375966 18 +3 0.119802854 1 +4 0.000354809 18 +3 0.119509308 1 +4 0.000324820 17 +3 0.143667106 1 +4 0.000382790 18 +3 0.103673680 1 +4 0.000335793 17 +3 0.135643969 1 +4 0.000340830 18 +3 0.119781457 1 +4 0.000414540 18 +3 0.151559279 1 +4 0.000376428 19 +3 0.103502352 1 +4 0.000343095 18 +3 0.327918937 1 +4 0.000369007 18 +3 0.191386211 1 +4 0.000323451 18 +3 0.055833584 1 +4 0.000339316 18 +3 0.183497133 1 +4 0.000341701 18 +3 2.759884215 1 +4 0.000353817 17 +3 1.343698374 1 +4 0.000398678 18 +3 0.263597194 1 +4 0.000351283 18 +3 0.136171086 1 +4 0.000323570 18 +3 0.383311119 1 +4 0.000368396 17 +3 0.129580242 1 +4 0.000326319 17 +3 0.125535686 1 +4 0.000356268 18 +3 0.119521654 1 +4 0.000334366 17 +3 0.071742130 1 +4 0.000373644 19 +3 0.103629767 1 +4 0.000352929 17 +3 0.143690325 1 +4 0.000332635 18 +3 0.111666624 1 +4 0.000331586 18 +3 0.087678783 1 +4 0.000335957 17 +3 0.087739242 1 +4 0.000345426 18 +3 0.087665513 1 +4 0.000329670 18 +3 0.135534046 1 +4 0.000408805 18 +3 0.063614214 1 +4 0.000326288 17 +3 0.503854866 1 +4 0.000386003 18 +3 0.079473988 1 +4 0.000341047 19 +3 0.007840380 1 +4 0.000339496 18 +3 0.183870771 1 +4 0.000329080 18 +3 0.063320318 1 +4 0.000322379 18 +3 0.135725119 1 +4 0.000358219 18 +3 0.111524351 1 +4 0.000343725 18 +3 0.359700050 2 +4 0.000378278 37 +3 0.343740597 1 +4 0.000348623 18 +3 0.185974011 1 +4 0.000324519 17 +3 0.221497352 1 +4 0.000348255 18 +3 61.266181291 1 +4 0.000354372 31 +3 0.551303471 1 +4 0.000368484 29 +3 0.599410219 1 +4 0.000400874 29 +3 0.127552920 1 +4 0.000362578 29 +3 0.071716928 1 +4 0.000344303 29 +3 0.087544652 1 +4 0.000340316 29 +3 0.722100185 1 +4 0.110021264 31 +3 20.680890782 1 +4 0.000373634 20 +3 0.185089699 1 +4 0.000362602 19 +3 0.165544295 1 +4 0.000352237 16 +3 0.257714646 1 +4 0.000382170 17 +3 4.566358379 1 +3 0.169459880 1 +4 0.000375644 75 +3 0.190699375 1 +3 0.152920201 1 +4 0.000380041 106 +3 0.205688285 1 +3 0.154039503 1 +4 0.000492548 38 +3 0.189318760 1 +3 0.124691703 1 +4 0.000364730 47 +3 1.411224968 1 +4 0.000369994 9 +3 0.167522151 1 +4 0.000349130 1 +3 0.143891438 1 +4 0.000383205 1 +4 0.000545951 10 +4 0.000360470 60 +3 1.470625810 1 +4 0.000386167 35 +3 0.153570765 1 +4 0.000350691 18 +3 0.149620068 1 +4 0.000365596 16 +3 0.137623239 1 +4 0.000387301 16 +3 0.149520210 1 +4 0.000415206 17 +3 0.151625465 1 +4 0.000371854 28 +3 0.080573318 1 +4 0.000357410 17 +3 0.110579480 1 +4 0.000325456 18 +3 0.239863880 1 +4 0.000385086 18 +3 0.183564586 1 +4 0.000366174 18 +3 0.087765549 1 +4 0.000427781 19 +3 0.239509128 1 +4 0.000346854 18 +3 0.007633165 1 +4 0.000373394 18 +3 0.087639180 1 +4 0.000337988 18 +3 0.319775512 1 +4 0.000505715 17 +3 0.161491658 1 +4 0.000352871 17 +3 0.085589099 1 +4 0.000370120 17 +3 0.184838360 1 +4 0.000409714 18 +3 0.094224328 1 +4 0.000370512 18 +3 0.047660818 1 +4 0.000328388 18 +3 0.111610547 1 +4 0.000404627 18 +3 0.055751577 1 +4 0.000325479 18 +3 0.127599689 1 +4 0.000375926 18 +3 0.071769878 1 +4 0.000327629 18 +3 0.087684664 1 +4 0.000416728 17 +3 0.111457791 1 +4 0.000327898 18 +3 0.087812327 1 +4 0.000351461 19 +3 0.055612649 1 +4 0.000328030 18 +3 0.072130867 1 +4 0.000369877 18 +3 0.167161278 1 +4 0.000329555 18 +3 0.087618415 1 +4 0.000413663 18 +3 0.063484181 1 +4 0.000352491 17 +3 0.567916037 1 +4 0.000387987 18 +3 0.103339604 1 +4 0.000330244 18 +3 0.103795367 1 +4 0.000370998 18 +3 0.095640338 1 +4 0.000342275 17 +3 1.007620119 1 +4 0.000417762 19 +3 0.063692281 1 +4 0.000343725 18 +3 0.193859611 1 +4 0.000369170 18 +3 0.085516875 1 +4 0.000350647 18 +3 0.111527754 1 +4 0.000404490 18 +3 0.639826877 1 +4 0.000376295 18 +3 0.135447001 1 +4 0.000358152 18 +3 0.239822952 1 +4 0.000348368 17 +3 0.138692136 1 +4 0.000337824 17 +3 0.220537966 1 +4 0.000384335 18 +3 0.063512962 1 +4 0.000341670 18 +3 0.135704602 1 +4 0.000330981 18 +3 0.327799432 1 +4 0.000380412 36 +4 0.705157028 18 +3 0.019950283 1 +4 0.110054367 29 +3 2.316470417 1 +4 0.000419398 10 +3 0.095529461 1 +4 0.000330058 1 +3 0.111813412 1 +4 0.000463456 1 +4 0.000412210 71 +3 2.943675520 1 +4 0.000400463 39 +3 2.063298340 1 +4 0.000355686 19 +3 0.185555546 1 +4 0.000362504 18 +3 0.165455731 1 +4 0.000345161 20 +3 0.153747794 1 +4 0.000330354 19 +3 0.301780484 1 +4 0.000382464 20 +3 0.177433698 1 +4 0.000348824 20 +3 0.133755788 1 +4 0.000339111 18 +3 0.233597558 1 +4 0.000335806 19 +3 0.773747586 1 +3 0.272072108 1 +3 0.113925233 1 +4 0.000355719 31 +3 0.237636070 1 +4 0.000413470 284 +3 0.223648251 1 +4 0.000386499 41 +3 0.161577638 1 +4 0.000347935 17 +3 0.141694835 1 +4 0.000323027 16 +3 0.161769830 1 +4 0.000321395 16 +3 0.133603573 1 +4 0.000358816 16 +3 0.129628258 1 +4 0.000324973 18 +3 15.158245983 2 +4 0.000381351 17 +3 0.144128400 1 +4 0.000402588 17 +3 0.311178227 1 +3 0.071831442 1 +4 0.000370743 29 +3 0.215685324 1 +4 0.000337607 18 +3 0.127651179 1 +4 0.000407826 17 +3 0.087480453 1 +4 0.000371903 13 +3 0.079895733 1 +4 0.000341664 11 +3 0.175686154 1 +4 0.000346960 11 +3 0.183434115 1 +4 0.000425501 13 +3 0.183686290 1 +4 0.000371790 16 +3 0.119704637 1 +4 0.000422827 19 +3 0.658458051 1 +4 0.110009419 33 +3 4.095778374 1 +4 0.000412939 17 +3 0.499871945 1 +4 0.000365514 17 +3 0.083258950 1 +4 0.000457382 17 +3 0.083555168 1 +4 0.000333139 19 +3 0.082757480 1 +4 0.000427081 34 +3 0.082955737 1 +4 0.000369778 57 +3 0.083140434 1 +4 0.000400397 72 +3 0.168959595 1 +4 0.000427643 19 +3 0.500214531 1 +4 0.000366360 18 +3 0.082637030 1 +4 0.000321226 18 +3 0.083382411 1 +4 0.000321180 18 +3 0.083317085 1 +4 0.000352069 17 +3 0.083060249 1 +4 0.000326548 17 +3 0.083291726 1 +4 0.000320362 17 +3 0.769933000 1 +4 0.000393975 17 +3 0.919667510 1 +4 0.000352380 17 +3 0.311512747 1 +4 0.000342246 17 +3 0.201904768 1 +4 0.000337561 17 +3 0.149354708 1 +4 0.000330234 17 +3 0.161865319 1 +4 0.000344640 19 +3 0.197546984 1 +4 0.000398805 16 +3 0.263704802 1 +4 0.000365442 18 +3 0.209456425 1 +4 0.000346204 18 +3 0.149810929 1 +4 0.000326993 17 +3 0.145647497 1 +4 0.000336915 17 +3 0.117654947 1 +4 0.000326396 17 +3 0.711858350 1 +3 0.215794237 1 +3 0.098692624 1 +4 0.000352279 30 +3 0.245072663 1 +4 0.000413162 152 +3 0.343589827 1 +4 0.000353535 43 +3 0.217628262 1 +4 0.000388389 17 +3 0.285641658 1 +4 0.000349375 17 +3 0.169616288 1 +4 0.000329603 18 +3 0.181998092 1 +4 0.000355735 17 +3 0.185294964 1 +4 0.000335426 17 +3 0.197804731 1 +4 0.000561390 18 +3 0.167404808 1 +4 0.000356999 18 +3 0.185860111 1 +4 0.000339021 17 +3 0.781427426 1 +4 0.000345923 17 +3 0.185697121 1 +4 0.000347099 18 +3 0.413672727 1 +3 0.072009864 1 +4 0.000367795 29 +3 1.239791419 1 +4 0.000372411 18 +3 0.071340348 1 +4 0.000349935 18 +3 0.087787090 1 +4 0.000341787 18 +3 0.064184380 1 +4 0.000373641 18 +3 0.343127607 2 +4 0.000363811 40 +3 0.495728208 1 +3 0.153866919 1 +4 0.000381217 117 +3 0.317668622 1 +4 0.000343528 18 +3 0.201756661 1 +4 0.000357579 18 +3 0.181438883 1 +4 0.000431407 17 +3 0.169782035 1 +4 0.000355737 17 +3 0.158459464 1 +4 0.000368564 18 +3 0.168862312 1 +4 0.000353069 17 +3 0.309583374 1 +4 0.000341940 17 +3 6.528430103 1 +3 0.055462031 1 +4 0.000367215 29 +3 0.351596495 1 +4 0.000434845 18 +3 0.055556172 1 +4 0.000345054 18 +3 0.127601700 1 +4 0.000369145 18 +3 0.119719841 1 +4 0.000352897 18 +3 0.071669428 1 +4 0.000421346 18 +3 0.263567769 2 +4 0.000393053 28 +3 0.153564993 1 +4 0.000338198 17 +3 0.229730832 1 +3 0.063895311 1 +4 0.000359651 33 +3 0.127722731 1 +4 0.000449988 18 +3 0.103515795 1 +4 0.000359790 18 +3 0.151624155 1 +4 0.000389670 18 +3 0.151650854 1 +4 0.000371329 18 +3 0.624624544 2 +4 0.000416918 29 +3 0.168504380 1 +4 0.000421755 17 +3 10.654173843 2 +4 0.000352326 18 +3 0.424138296 1 +3 0.055311738 1 +4 0.000356667 4 +3 0.183672243 1 +3 0.047968635 1 +4 0.000396462 4 +3 0.183787577 1 +3 0.063925096 1 +4 0.000358036 4 +3 0.319605460 1 +3 0.071929449 1 +4 0.000465348 4 +3 0.223722878 1 +4 0.000363252 10 +3 0.183587733 1 +4 0.000433712 14 +3 0.647630308 1 +3 0.063895585 1 +4 0.000417815 4 +3 0.535615893 1 +3 0.064012416 1 +4 0.000348669 4 +3 0.175726381 1 +4 0.000365969 17 +3 0.169966104 1 +4 0.000357277 17 +3 0.133255650 1 +4 0.000403378 17 +3 0.137644548 1 +4 0.000350718 18 +3 0.229589398 1 +4 0.000365216 20 +3 0.463682245 1 +4 0.000350292 17 +3 0.503710571 1 +3 0.071984253 1 +4 0.000365719 28 +3 0.239651030 1 +4 0.000371735 18 +3 0.135639150 1 +4 0.000347031 18 +3 0.375716854 1 +4 0.000353884 18 +3 0.145568976 1 +4 0.000359135 18 +3 0.141844499 1 +4 0.000342832 24 +3 0.055394243 1 +4 0.000427838 23 +3 0.055635519 1 +4 0.000326181 23 +3 0.591843859 2 +4 0.000389100 35 +3 0.499738355 1 +4 0.000369830 16 +3 0.083117755 1 +4 0.000333179 20 +3 0.082622531 1 +4 0.000326263 20 +3 0.082752732 1 +4 0.000351052 20 +3 0.082639690 1 +4 0.000397694 19 +3 0.083120133 1 +4 0.000365561 16 +3 0.084210436 1 +4 0.000333697 20 +3 0.082058788 1 +4 0.000410842 21 +3 0.083103481 1 +4 0.000345452 17 +3 0.083358651 1 +4 0.000425225 86 +3 0.082712757 1 +4 0.000367934 47 +3 0.330067959 1 +4 0.000525402 20 +3 0.191546795 1 +4 0.000484461 18 +3 0.161572675 1 +4 0.000409905 13 +3 0.229427039 1 +3 0.072238531 1 +4 0.000384219 28 +3 0.199416678 1 +4 0.000369245 13 +3 0.159740429 1 +4 0.000359174 16 +3 0.103384937 1 +4 0.000342926 17 +3 0.111719927 1 +4 0.000334395 18 +3 0.191704946 1 +4 0.000351843 24 +3 0.135694345 1 +4 0.000385816 23 +3 0.183679105 1 +4 0.000341780 23 +3 0.135643465 1 +4 0.000409507 23 +3 0.263719585 2 +4 0.000430565 36 +3 0.745526976 1 +4 0.000349700 17 +3 0.221526461 1 +3 0.154139252 1 +4 0.000363741 40 +3 0.197648612 1 +4 0.000380234 18 +3 0.145592219 1 +4 0.000347438 18 +3 0.497692162 1 +4 0.000559334 17 +3 0.083258084 1 +4 0.000366159 17 +3 0.082714433 1 +4 0.000363401 18 +3 0.284743957 1 +4 0.000380457 17 +3 0.983705644 1 +4 0.000455424 17 +3 4.128251235 1 +3 0.055263603 1 +4 0.000392117 29 +3 0.311678075 1 +4 0.000364203 17 +3 0.183681414 1 +4 0.000440272 18 +3 0.055707892 1 +4 0.000336896 18 +3 0.127524254 1 +4 0.000347727 18 +3 0.119410661 1 +4 0.000362210 17 +3 0.352201070 2 +4 0.000382496 28 +3 0.161470026 1 +4 0.000366634 17 +3 0.981529955 1 +3 0.071904396 1 +4 0.000375458 33 +3 1.687914699 1 +4 0.000375000 18 +3 0.095554075 1 +4 0.000395143 18 +3 0.335928270 1 +4 0.000415245 19 +3 0.151152635 1 +4 0.000403090 18 +3 0.223691617 1 +4 0.000382719 16 +3 0.095596121 1 +4 0.000552478 13 +3 0.479860646 2 +4 0.000394744 29 +3 0.145244202 1 +4 0.000428117 11 +3 0.334356045 1 +3 0.047245638 1 +4 0.000364391 29 +3 0.231474679 1 +4 0.000366527 11 +3 0.127831282 1 +4 0.000348438 13 +3 0.119706825 1 +4 0.000413701 16 +3 0.159493916 1 +4 0.000337168 18 +3 0.063503681 1 +4 0.000413528 18 +3 0.017324370 1 +4 0.000363635 19 +3 0.037925101 1 +4 0.000359329 34 +3 0.447799378 1 +4 0.000354927 17 +3 0.155150106 1 +4 0.000358097 18 +3 0.548165767 1 +4 0.000435383 19 +3 0.709231736 1 +4 0.110013539 39 +3 2.317003920 1 +4 0.000370810 18 +3 0.137062672 1 +4 0.000451671 17 +3 0.269450345 1 +3 0.055962476 1 +4 0.000376465 28 +3 0.143660940 1 +4 0.000324800 18 +3 0.047648307 1 +4 0.000324962 18 +3 0.159709120 1 +4 0.000330247 18 +3 0.055824884 1 +4 0.000344909 18 +3 0.175503094 1 +4 0.000417635 29 +3 0.071590626 1 +4 0.000343271 29 +3 0.183678892 1 +4 0.000381034 29 +3 0.319724383 2 +4 0.000383703 24 +3 0.191668805 1 +4 0.000371153 4 +3 0.631573623 1 +4 0.000351948 9 +3 3.567896880 1 +4 0.000413212 1 +3 0.351539578 1 +4 0.000365350 1 +3 0.191536273 1 +4 0.000372288 43 +3 1.055699949 1 +4 0.000397684 4 +3 1.199544502 1 +4 0.000366758 20 +3 1.959891454 1 +4 0.000383916 4 +3 0.391505464 1 +4 0.000517804 21 +4 0.000377686 41 +3 0.623122013 1 +4 0.000404023 43 +3 0.500068594 1 +4 0.000367278 19 +3 0.082673669 1 +4 0.000414010 17 +3 0.083212499 1 +4 0.000361841 20 +3 0.083398609 1 +4 0.000378938 20 +3 0.083503493 1 +4 0.000339474 20 +3 0.083548955 1 +4 0.000350817 19 +3 0.082922183 1 +4 0.000380499 16 +3 0.082633674 1 +4 0.000419267 20 +3 0.346679965 1 +4 0.000345699 9 +3 0.127600231 1 +4 0.000348823 1 +3 0.079852974 1 +4 0.000384659 1 +4 0.000487278 71 +3 1.047053399 1 +4 0.000371454 35 +3 0.201577612 1 +4 0.000346492 18 +3 0.141620220 1 +4 0.000434290 20 +3 0.161725379 1 +4 0.000349536 17 +3 0.381540104 1 +4 0.000458714 20 +3 0.255538554 1 +4 0.000362273 20 +3 0.217589396 1 +4 0.000442248 17 +3 0.197745827 1 +4 0.000361737 19 +3 0.217592627 1 +4 0.000417554 16 +3 0.237510507 1 +4 0.000365859 18 +3 0.185442213 1 +4 0.000383843 20 +3 0.157776099 1 +4 0.000388969 17 +3 0.145656120 1 +4 0.000432544 20 +3 0.725571649 1 +3 0.224026841 1 +3 0.130120797 1 +4 0.000463027 195 +3 0.413944645 1 +4 0.000590754 739 +3 3.767186937 1 +4 0.000401657 17 +3 0.501150681 1 +4 0.000383413 17 +3 0.083052650 1 +4 0.000406041 18 +3 0.082919414 1 +4 0.000341142 17 +3 0.083048449 1 +4 0.000389613 18 +3 0.083058567 1 +4 0.000341517 20 +3 0.083738747 1 +4 0.000401697 17 +3 0.083487118 1 +4 0.000318078 19 +3 0.082386624 1 +4 0.000349825 20 +3 0.083549970 1 +4 0.000348323 17 +3 0.083216984 1 +4 0.000357428 19 +3 2.002381804 1 +4 0.000472399 182 +3 0.391433807 1 +4 0.000415113 41 +3 0.153619892 1 +4 0.000339569 16 +3 0.157579095 1 +4 0.000381298 16 +3 0.137710185 1 +4 0.000331000 15 +3 0.237609414 1 +3 0.154038387 1 +4 0.000386302 28 +3 0.085678700 1 +4 0.000342804 15 +3 0.137577797 1 +4 0.000325385 17 +3 0.125663214 1 +4 0.000339410 16 +3 0.129648391 1 +4 0.000371056 16 +3 0.133745687 1 +4 0.000344839 16 +3 0.121870473 1 +4 0.000344271 16 +3 0.141414753 1 +4 0.000349286 16 +3 0.279635191 1 +4 0.000368680 83 +3 0.919741389 1 +4 0.000372528 16 +3 0.185634184 1 +4 0.000334268 18 +3 0.149643991 1 +4 0.000381864 16 +3 0.178813890 1 +4 0.000340575 16 +3 0.132512157 1 +4 0.000326605 16 +3 0.207669487 1 +3 0.130001555 1 +4 0.000373613 30 +3 0.101685025 1 +4 0.000359406 16 +3 0.169496704 1 +4 0.000347369 16 +3 0.117830690 1 +4 0.000346260 15 +3 0.271560924 1 +4 0.000378261 70 +3 0.335674560 1 +4 0.000334295 17 +3 0.319680454 1 +4 0.000381445 17 +3 0.111605973 1 +4 0.000330906 16 +3 0.351541311 1 +3 0.055960494 1 +4 0.000350943 27 +3 0.231761623 1 +4 0.000365793 17 +3 0.071605203 1 +4 0.000375718 17 +3 0.063717020 1 +4 0.000426567 17 +3 0.167512881 1 +4 0.000373898 17 +3 0.215669475 1 +4 0.000387267 18 +3 0.119543451 1 +4 0.000350589 18 +3 0.119698085 1 +4 0.000383518 18 +3 0.063626059 1 +4 0.000331352 18 +3 0.151709723 1 +4 0.000444992 18 +3 0.415446226 2 +4 0.000358904 10 +3 0.111754384 1 +4 0.000375156 1 +3 0.087635169 1 +4 0.000352317 1 +4 0.000356910 70 +3 0.647287901 1 +4 0.000418985 38 +3 0.500906857 1 +4 0.000359649 21 +3 0.082239879 1 +4 0.000401465 19 +3 0.082678794 1 +4 0.000349987 20 +3 6.253213528 1 +4 0.000594687 818 +3 0.943207476 1 +4 0.000359186 18 +3 0.500411947 1 +4 0.000363800 17 +3 0.082935185 1 +4 0.000364544 19 +3 0.083270215 1 +4 0.000324230 16 +3 0.082879840 1 +4 0.000328773 16 +3 0.394701064 1 +4 0.000342138 16 +3 0.498004689 1 +4 0.000343189 18 +3 0.084036201 1 +4 0.000328291 19 +3 0.082809036 1 +4 0.000320226 18 +3 0.083381699 1 +4 0.000356306 19 +3 0.082845594 1 +4 0.000362854 17 +3 0.082591044 1 +4 0.000330810 20 +3 0.274046350 1 +4 0.000358247 17 +3 1.663733384 1 +4 0.000385247 17 +3 0.169387535 1 +4 0.000338773 18 +3 0.453821805 1 +4 0.000364475 17 +3 0.815670849 1 +4 0.000397658 21 +3 3.463852526 1 +4 0.000372814 10 +3 0.135519697 1 +4 0.000323566 1 +3 0.087713390 1 +4 0.000342568 1 +4 0.000308209 14 +4 0.000365143 57 +3 0.366888761 1 +4 0.000410446 39 +3 0.500676434 1 +4 0.000348263 17 +3 0.083090874 1 +4 0.000434494 19 +3 0.082830339 1 +4 0.000324887 16 +3 0.083566806 1 +4 0.000402301 20 +3 0.083173820 1 +4 0.000334397 18 +3 0.082730980 1 +4 0.000393689 17 +3 0.082825052 1 +4 0.000341337 19 +3 0.083170302 1 +4 0.000377153 14 +3 0.083072838 1 +4 0.000390173 56 +3 0.082999886 1 +4 0.000439470 75 +3 0.082762651 1 +4 0.000395232 113 +3 0.082620995 1 +4 0.000397350 61 +3 0.082871001 1 +4 0.000373226 34 +3 0.083575770 1 +4 0.000409959 63 +3 0.082917348 1 +4 0.000372697 69 +3 0.163160664 1 +4 0.000430026 22 +3 0.499891634 1 +4 0.000363031 17 +3 0.083667974 1 +4 0.000358611 18 +3 0.083655556 1 +4 0.000331308 20 +3 0.082933196 1 +4 0.000406880 17 +3 0.083358936 1 +4 0.000338614 20 +3 0.082833576 1 +4 0.000352971 17 +3 0.083692508 1 +4 0.000408021 18 +3 0.082857776 1 +4 0.000367410 20 +3 0.083019645 1 +4 0.000332219 17 +3 21.927781806 1 +4 0.000441868 10 +3 0.502837059 1 +4 0.000350164 1 +3 0.151681189 1 +4 0.000353626 1 +3 0.151622397 1 +4 0.000311634 1 +3 0.087826712 1 +4 0.000353519 1 +3 0.151558813 1 +4 0.000327227 1 +3 0.231730506 1 +4 0.000651083 903 +3 32.501930553 1 +4 0.109975552 1 +3 0.028943050 1 +4 0.000370553 17 +3 0.193248641 1 +4 0.000388154 19 +3 0.197569088 1 +4 0.000387741 19 +3 0.337809277 1 +4 0.000368492 16 +3 1.509640262 1 +4 0.000364843 16 +3 0.169678380 1 +4 0.000390517 16 +3 0.149422705 1 +4 0.000422957 17 +3 0.177633505 1 +4 0.000350401 16 +3 0.149621210 1 +4 0.000384687 16 +3 0.327694270 1 +4 0.000358998 22 +3 0.911712189 1 +4 0.000401784 38 +3 0.504510471 1 +4 0.000396015 38 +3 0.526653542 2 +4 0.000493199 32 +3 0.169493494 1 +4 0.000336623 16 +3 0.149703387 1 +4 0.000357534 17 +3 0.105766267 1 +4 0.000329302 16 +3 0.245599159 1 +4 0.000406078 16 +3 0.575618562 1 +4 0.000364879 16 +3 0.311608382 1 +4 0.000349871 16 +3 0.185596270 1 +4 0.000398002 16 +3 1.365688778 1 +4 0.000363466 16 +3 0.255699476 1 +4 0.000359577 16 +3 0.153604076 1 +4 0.000329306 16 +3 0.389581420 1 +4 0.000348745 30 +3 0.335840754 1 +4 0.000400729 43 +3 0.447431650 2 +4 0.000390504 30 +3 0.185734624 1 +4 0.000385907 16 +3 0.285715442 1 +4 0.000366225 16 +3 0.319421703 1 +4 0.000358107 16 +3 0.207748026 1 +4 0.000353624 23 +3 0.143468126 1 +4 0.000390232 40 +3 0.199737673 1 +4 0.000360893 40 +3 0.151876766 1 +4 0.000363927 40 +3 0.103505994 1 +4 0.000400039 40 +3 0.127470683 1 +4 0.000351737 40 +3 0.087789128 1 +4 0.000364161 40 +3 0.103384124 1 +4 0.000355439 40 +3 0.127838284 1 +4 0.000363215 40 +3 0.647731652 2 +4 0.000391568 10 +3 0.095454269 1 +4 0.000345634 1 +3 0.119803172 1 +4 0.000395598 1 +4 0.000411305 70 +3 2.687757586 1 +4 0.000771462 909 +3 0.831467981 1 +4 0.003215880 778 +3 11.679345950 1 +3 0.021098554 1 +4 0.000353074 16 +3 0.500492644 1 +4 0.000350399 15 +3 16.339427653 2 +4 0.000483019 18 +3 0.234059151 1 +4 0.000399213 17 +3 0.181245736 1 +4 0.000373271 16 +3 0.377574752 1 +4 0.000399487 15 +3 0.213541131 1 +4 0.000363939 15 +3 0.455592358 1 +4 0.000368419 15 +3 0.217860660 1 +4 0.000362396 15 +3 0.829822342 1 +3 0.199520605 1 +3 0.122077648 1 +4 0.000371995 29 +3 0.301692078 1 +4 0.000429013 168 +3 0.263429942 1 +4 0.000439329 42 +3 0.185772461 1 +4 0.000367660 17 +3 0.173522004 1 +4 0.000351702 16 +3 0.169723295 1 +4 0.000353912 16 +3 0.181558878 1 +4 0.000346110 17 +3 0.360811073 1 +4 0.000384036 16 +3 0.406733402 1 +3 0.071723810 1 +4 0.000435085 4 +3 0.183594255 1 +3 0.064832901 1 +4 0.000364702 4 +3 0.182897521 1 +3 0.063976876 1 +4 0.000447247 4 +3 0.183453955 1 +3 0.063996744 1 +4 0.000368818 4 +3 0.199914064 1 +3 0.055782650 1 +4 0.000429917 4 +3 0.527557291 1 +3 0.081236809 1 +4 0.000396926 4 +3 0.958840513 1 +4 0.000419130 4 +3 0.239238446 1 +4 0.000358296 16 +3 0.383668436 1 +4 0.000430813 4 +3 0.311593779 1 +4 0.000372858 16 +3 0.255700878 1 +4 0.000468984 17 +3 0.170610780 1 +4 0.000348450 16 +3 0.180469947 1 +4 0.000550694 17 +3 0.201643938 1 +4 0.000372859 16 +3 0.229538559 1 +4 0.000382536 16 +3 0.185532139 1 +4 0.000356124 16 +3 0.261601985 1 +4 0.000387245 16 +3 0.135920173 1 +4 0.000364712 4 +3 0.137582828 1 +4 0.000406378 7 +3 0.101406308 1 +4 0.000378019 23 +3 0.127611094 1 +4 0.000416266 19 +3 0.063597802 1 +4 0.000351139 19 +3 0.135777101 1 +4 0.000383814 19 +3 0.071872137 1 +4 0.000347966 19 +3 0.183497136 1 +4 0.000388051 19 +3 0.087333908 1 +4 0.000347077 20 +3 0.167728912 1 +4 0.000446104 19 +3 0.152024080 1 +4 0.000347542 19 +3 0.055241445 1 +4 0.000385482 19 +3 0.719955348 1 +4 0.109930592 32 +3 4.609864082 1 +4 0.000458471 18 +3 0.185496737 1 +4 0.000353455 19 +3 0.173481209 1 +4 0.000412202 16 +3 0.185800042 1 +4 0.000371954 17 +3 0.165563687 1 +4 0.000383396 16 +3 0.455705316 1 +4 0.000519137 16 +3 0.183502619 1 +3 0.087954866 1 +4 0.000398623 4 +3 0.127667464 1 +3 0.048005922 1 +4 0.000556711 4 +3 0.271606905 1 +4 0.000365658 10 +3 0.111439488 1 +4 0.000364614 1 +3 0.119629265 1 +4 0.000356249 1 +4 0.000358164 70 +3 23.456782660 1 +4 0.000420244 39 +3 0.185036269 1 +4 0.000378673 19 +3 0.261464712 1 +4 0.000358112 20 +3 0.185802233 1 +4 0.000354946 16 +3 0.133526698 1 +4 0.000351124 18 +3 0.145720194 1 +4 0.000346442 19 +3 0.141404511 1 +4 0.000347248 19 +3 0.903765278 1 +3 0.160022307 1 +3 0.122095060 1 +4 0.000359637 30 +3 0.229676169 1 +4 0.000458957 160 +3 0.281155229 1 +4 0.000370937 40 +3 0.176037772 1 +4 0.000338887 15 +3 0.141472526 1 +4 0.000364237 15 +3 0.087748400 1 +4 0.000345260 17 +3 0.185814611 1 +4 0.000402835 17 +3 0.157522572 1 +4 0.000354716 16 +3 0.145735709 1 +4 0.000442894 16 +3 0.157390360 1 +4 0.000374352 17 +3 0.519794542 1 +3 0.071877963 1 +4 0.000385470 28 +3 2.666067450 16 +4 0.000385961 42 +3 0.653306438 2 +4 0.000389654 32 +3 0.335636999 1 +3 0.055882266 1 +4 0.000376155 4 +3 0.191644598 1 +4 0.000421996 4 +3 0.159629868 1 +4 0.000380822 17 +3 0.247669348 1 +4 0.000354744 17 +3 0.233607882 1 +4 0.000474290 17 +3 0.237582654 1 +4 0.000391815 18 +3 0.265544774 1 +4 0.000403142 17 +3 2.045831577 1 +3 0.071988213 1 +4 0.000365710 33 +3 0.183567304 1 +4 0.000340983 18 +3 0.135520945 1 +4 0.000339207 18 +3 0.375758029 1 +4 0.000437595 18 +3 0.255608738 1 +4 0.000342984 18 +3 0.231779299 1 +4 0.000385756 18 +3 0.623567503 1 +4 0.000408780 19 +3 0.706978607 1 +3 0.092654921 1 +4 0.000392070 40 +3 0.151447284 1 +4 0.000397522 16 +3 0.177694701 1 +4 0.000349486 16 +3 0.237684625 1 +4 0.000395108 16 +3 0.169524623 1 +4 0.000332610 16 +3 0.109663657 1 +4 0.000393453 4 +3 18.720866665 1 +4 0.000378684 10 +3 0.183076196 1 +4 0.000372289 1 +3 0.143478724 1 +4 0.000321412 1 +3 0.223863235 1 +4 0.000329886 1 +3 0.095739590 1 +4 0.000344349 1 +3 0.255589294 1 +4 0.000381290 42 +3 6.352356328 1 +4 0.000370173 10 +3 0.247069394 1 +4 0.000358856 1 +3 0.111615287 1 +4 0.000352443 1 +3 0.095530677 1 +4 0.000320066 1 +3 0.119880870 1 +4 0.000346334 1 +3 0.071569135 1 +4 0.000389853 1 +3 0.135694663 1 +4 0.000369364 21 +4 0.000400694 626 +3 0.903231822 1 +4 0.000640086 932 +3 0.137505949 1 +4 0.000414885 4 +3 0.293443410 1 +4 0.000342797 10 +3 0.095633509 1 +4 0.000321921 1 +3 0.111824456 1 +4 0.000392877 1 +4 0.000692568 10 +4 0.000315916 61 +3 51.768343604 2 +4 0.000413690 38 +3 0.178048003 1 +4 0.000354008 20 +3 0.181050315 1 +4 0.000399295 16 +3 0.367773466 1 +4 0.000350064 17 +3 0.185496152 1 +4 0.000457337 19 +3 0.165580652 1 +4 0.000373275 20 +3 0.943666684 1 +3 0.143938971 1 +3 0.138092960 1 +4 0.000446899 31 +3 0.189573253 1 +4 0.000434622 166 +3 0.415594353 1 +4 0.000353175 43 +3 0.119498545 1 +4 0.000416279 17 +3 0.153622082 1 +4 0.000325486 17 +3 0.149797383 1 +4 0.000364900 17 +3 0.145463973 1 +4 0.000320115 18 +3 0.245861873 1 +3 0.055899416 1 +4 0.000346184 33 +3 0.145440842 1 +4 0.000330750 18 +3 0.093927827 1 +4 0.000402535 18 +3 0.151636302 1 +4 0.000334025 18 +3 0.137649589 1 +4 0.000327258 18 +3 0.165641957 1 +4 0.000344676 18 +3 0.103530501 1 +4 0.000394530 18 +3 0.119730331 1 +4 0.000344489 18 +3 0.191797816 1 +4 0.000345030 18 +3 0.519553219 1 +4 0.000375999 17 +3 0.271649244 2 +4 0.000369176 40 +3 0.159664026 1 +4 0.000343802 18 +3 0.079615085 1 +4 0.000343537 17 +3 0.145638061 1 +4 0.000343617 18 +3 0.213673268 1 +3 0.072064928 1 +4 0.000393468 29 +3 0.159540889 1 +4 0.000361177 18 +3 0.184772577 1 +4 0.000362006 18 +3 0.182583209 1 +4 0.000390393 18 +3 0.063563677 1 +4 0.000353075 18 +3 0.087721187 1 +4 0.000352908 18 +3 0.063547733 1 +4 0.000347315 19 +3 0.359639301 2 +4 0.000394679 10 +3 0.127782684 1 +4 0.000360020 1 +3 0.071659375 1 +4 0.000364721 1 +4 0.000372040 71 +3 6.634229053 1 +4 0.000421555 39 +3 2.772844912 1 +3 0.183934845 1 +3 0.122103896 1 +4 0.000367222 31 +3 0.206475986 1 +4 0.000393142 162 +3 0.398737041 1 +4 0.000358632 43 +3 0.169656431 1 +4 0.000426268 18 +3 0.141499927 1 +4 0.000324744 17 +3 0.129908896 1 +4 0.000431243 17 +3 0.157477718 1 +4 0.000331106 18 +3 0.169510188 1 +4 0.000371123 17 +3 0.349819526 1 +4 0.000346283 17 +3 0.135620817 1 +3 0.063908244 1 +4 0.000349393 29 +3 0.639705380 1 +4 0.000358994 18 +3 0.079608415 1 +4 0.000349582 18 +3 0.167641208 1 +4 0.000333097 18 +3 0.119635150 1 +4 0.000325893 18 +3 0.335988537 2 +4 0.000388503 40 +3 0.151517652 1 +4 0.000335407 18 +3 0.127531426 1 +4 0.000328917 17 +3 0.169831361 1 +4 0.000355114 18 +3 0.133559681 1 +3 0.063905257 1 +4 0.000385249 29 +3 0.183692948 1 +4 0.000348863 18 +3 0.159623972 1 +4 0.000374389 18 +3 0.063535418 1 +4 0.000350747 18 +3 0.119697622 1 +4 0.000358409 18 +3 0.151553538 1 +4 0.000402518 17 +3 0.629201687 1 +4 0.109983114 38 +3 298.263891899 1 +4 0.000588358 699 +3 1.606355242 1 +4 0.000872215 897 +3 76.011148005 2 +4 0.000390311 10 +3 0.312238015 1 +4 0.000502056 1 +3 0.102935471 1 +4 0.000351174 1 +3 0.127581255 1 +4 0.000380726 1 +3 0.103742863 1 +4 0.000384563 1 +3 0.063444415 1 +4 0.000359179 1 +3 0.359878770 1 +4 0.000473029 315 +3 0.935393460 1 +4 0.000483869 72 +3 0.217488870 1 +4 0.000383700 83 +3 0.197755857 1 +4 0.000399680 37 +3 0.353532689 1 +4 0.000393040 46 +3 0.445939810 1 +4 0.000403231 17 +3 0.193269546 1 +4 0.000384174 19 +3 0.141479206 1 +4 0.000416231 19 +3 0.185773593 1 +4 0.000344559 19 +3 1.013564710 1 +4 0.000371861 19 +3 0.500236837 1 +4 0.000349341 19 +3 0.083152533 1 +4 0.000362027 18 +3 0.083278402 1 +4 0.000337363 17 +3 0.082801903 1 +4 0.000476148 90 +3 0.082979424 1 +4 0.000371072 138 +3 0.082892788 1 +4 0.000404162 48 +3 0.083297138 1 +4 0.000374667 100 +3 0.082743191 1 +4 0.000454006 77 +3 0.171217027 1 +4 0.000357358 16 +3 0.499821948 1 +4 0.000389587 18 +3 0.083044901 1 +4 0.000359768 20 +3 0.083408324 1 +4 0.000361675 16 +3 0.083595084 1 +4 0.000345073 18 +3 0.082858679 1 +4 0.000353379 17 +3 0.083066037 1 +4 0.000364008 19 +3 0.082619739 1 +4 0.000372550 20 +3 0.083322360 1 +4 0.000335888 20 +3 0.659095664 1 +3 0.064103392 1 +4 0.000413047 4 +3 0.199480585 1 +4 0.000369964 6 +3 0.983673021 1 +3 0.192162767 1 +3 0.137843351 1 +4 0.000374780 31 +3 0.253735860 1 +4 0.000416276 35 +3 0.007498793 1 +4 0.000332880 17 +3 0.567618789 2 +4 0.000441430 56 +3 0.791639884 1 +3 0.216076388 1 +3 0.113871034 1 +4 0.000397392 30 +3 0.269670795 1 +4 0.000500106 176 +3 0.575691826 1 +4 0.000411222 43 +3 0.201417974 1 +4 0.000358402 18 +3 0.213703365 1 +4 0.000369426 17 +3 0.233813941 1 +4 0.000335005 17 +3 0.357464711 1 +4 0.000368953 18 +3 0.431768171 1 +4 0.000345909 17 +3 0.119700892 1 +3 0.063770807 1 +4 0.000352332 4 +3 0.167672569 1 +3 0.063967435 1 +4 0.000368483 4 +3 0.143672983 1 +3 0.056030855 1 +4 0.000352227 4 +3 0.160407573 1 +3 0.071172537 1 +4 0.000355767 4 +3 0.159739816 1 +3 0.039912535 1 +4 0.000347316 4 +3 0.447779307 1 +3 0.055839304 1 +4 0.000379150 5 +3 0.279712819 1 +4 0.000386731 4 +3 0.095611959 1 +4 0.000400849 24 +3 0.207798321 1 +4 0.000337390 27 +3 0.087597784 1 +4 0.000389358 27 +3 0.111494118 1 +4 0.000360532 27 +3 0.119583518 1 +4 0.000460045 27 +3 0.079741611 1 +4 0.000374955 27 +3 0.343562146 2 +4 0.000420269 36 +3 0.143619037 1 +4 0.000485945 17 +3 0.161838563 1 +4 0.000410377 17 +3 0.165388957 1 +4 0.000503584 17 +3 0.351458028 1 +4 0.002150537 18 +3 0.181744478 1 +4 0.000567521 4 +3 0.145375184 1 +4 0.000549998 7 +3 0.445548680 1 +4 0.000495244 24 +3 3.452580790 12 +4 0.000391347 32 +3 0.578726807 2 +4 0.000391488 34 +3 0.359677949 1 +4 0.000383036 17 +3 0.011477617 1 +4 0.000333260 16 +3 0.755720694 2 +4 0.000352425 1 +4 0.000440325 31 +3 0.505727615 1 +4 0.000386077 32 +3 0.341197056 1 +4 0.000373183 18 +3 0.295516508 1 +4 0.000360937 18 +3 7.173168110 1 +3 0.026864958 1 +4 0.000303644 11 +3 0.176044754 1 +4 0.000355252 1 +3 0.111242246 1 +4 0.000392288 1 +4 0.000366758 71 +3 3.295308862 1 +4 0.000416904 37 +3 0.401523517 1 +4 0.000360580 20 +3 0.405717920 1 +4 0.000389768 18 +3 0.577791745 1 +4 0.000400066 17 +3 0.181468215 1 +4 0.000401772 18 +3 0.209541880 1 +4 0.000374824 17 +3 0.213643227 1 +4 0.000387221 17 +3 0.327539140 1 +4 0.000439965 23 +3 0.143698704 1 +4 0.000385017 61 +3 0.119542477 1 +4 0.000354853 61 +3 0.095593840 1 +4 0.000456266 61 +3 0.295655918 1 +4 0.000372849 61 +3 0.375733076 1 +4 0.000403936 61 +3 0.119288440 1 +4 0.000337659 61 +3 0.056065244 1 +4 0.000361086 61 +3 0.143433148 1 +4 0.000362130 102 +3 0.087713046 1 +4 0.000372159 69 +3 1.919627989 2 +4 0.000464314 187 +3 3.551728192 1 +4 0.000393181 19 +3 0.201557515 1 +4 0.000372588 20 +3 0.349688057 1 +4 0.000420833 17 +3 4.831747260 1 +3 0.111871581 1 +3 0.114122553 1 +4 0.000354640 31 +3 0.221585743 1 +4 0.000391777 163 +3 0.240467032 1 +4 0.000434937 41 +3 0.152672352 1 +4 0.000344560 16 +3 0.149768362 1 +4 0.000434848 16 +3 0.127472340 1 +4 0.000339760 18 +3 0.178623535 1 +4 0.000353469 18 +3 0.148709804 1 +4 0.000343942 17 +3 0.153727092 1 +4 0.000386014 17 +3 0.142593698 1 +4 0.000368171 18 +3 0.208699427 1 +4 0.000396993 17 +3 0.333603582 1 +4 0.000538131 17 +3 0.135265076 1 +4 0.000339192 24 +3 0.127829179 1 +4 0.000323979 32 +3 0.119545651 1 +4 0.000342267 32 +3 0.119718848 1 +4 0.000346974 32 +3 0.223585570 1 +4 0.000369503 32 +3 0.288598091 2 +4 0.000382734 37 +3 0.286827308 1 +4 0.000406692 17 +3 0.111520326 1 +4 0.000324944 17 +3 0.153897651 1 +4 0.000346842 18 +3 0.197541026 1 +3 0.071959249 1 +4 0.000341812 33 +3 0.151570364 1 +4 0.000366159 18 +3 0.135625141 1 +4 0.000356074 18 +3 0.063913211 1 +4 0.000401265 18 +3 0.135397091 1 +4 0.000357625 17 +3 0.063550006 1 +4 0.000362082 17 +3 0.279790276 2 +4 0.000441836 42 +3 0.145473116 1 +4 0.000368696 19 +3 0.158423711 1 +4 0.000538310 20 +3 0.152974603 1 +4 0.000396211 20 +3 0.229515269 1 +4 0.000358456 19 +3 0.375529290 1 +3 0.122053636 1 +4 0.000396379 86 +3 5.117682119 1 +4 0.000355614 10 +3 0.143687036 1 +4 0.000342123 1 +3 0.103779058 1 +4 0.000338014 1 +4 0.000471743 70 +3 36.697316637 1 +4 0.000360502 36 +7 0.000559521 TSTP +7 1.118239345 CONT +4 0.000607646 7 +4 0.000313754 926 +3 137.956669383 1 +4 0.000608610 896 +3 4.694772644 1 +4 0.000627083 865 +3 0.527194435 1 +4 0.000635130 878 +3 0.743371590 1 +4 0.000677426 934 +3 1.135313487 1 +4 0.000611580 865 +3 31.114191724 1 +4 0.000400871 16 +3 0.498748730 1 +4 0.000370612 17 +3 0.083393608 1 +4 0.000349957 18 +3 0.083228301 1 +4 0.000357796 16 +3 0.083284779 1 +4 0.000421892 16 +3 0.083464480 1 +4 0.000364048 16 +3 0.083115757 1 +4 0.000365411 16 +3 0.545452921 1 +4 0.000375613 18 +3 0.184571070 1 +4 0.000356358 16 +3 2.197804352 1 +4 0.000397371 18 +3 0.201554287 1 +4 0.000400853 18 +3 0.405725695 1 +4 0.000372011 17 +3 2.775555603 1 +4 0.000390934 21 +3 0.501263659 1 +4 0.000381829 4 +3 0.082749646 1 +4 0.000342354 4 +3 0.082921972 1 +4 0.000334667 4 +3 0.084067835 1 +4 0.000353635 4 +3 0.083089249 1 +4 0.000368937 4 +3 0.082963484 1 +4 0.000354061 4 +3 0.242701309 1 +4 0.000354086 4 +3 1.477591715 1 +4 0.000353246 9 +3 0.592358558 1 +4 0.000377591 1 +3 0.174795711 1 +4 0.000321748 1 +3 0.247794938 1 +4 0.000338889 1 +3 0.112209648 1 +4 0.000340485 1 +3 0.135029439 1 +4 0.000341037 1 +3 0.055554909 1 +4 0.000345707 1 +3 0.191736684 1 +4 0.000358563 43 +3 0.319684203 1 +4 0.000365506 17 +3 0.399790968 1 +4 0.000361879 17 +3 0.241394863 1 +4 0.000352882 17 +3 0.725887828 1 +4 0.000477986 17 +3 0.353608370 1 +4 0.000354885 21 +3 0.429584062 1 +4 0.000396938 133 +3 0.279378180 1 +4 0.000358585 17 +3 0.175723038 1 +4 0.000409308 17 +3 4.095816823 1 +3 0.095825766 1 +4 0.000392721 79 +3 0.271896964 1 +3 0.063763870 1 +4 0.000434312 79 +3 12.400029830 2 +4 0.000385072 18 +3 0.500489311 1 +4 0.000381535 18 +3 0.082115608 1 +4 0.000331586 18 +3 0.083558181 1 +4 0.000322628 20 +3 0.082878969 1 +4 0.000412686 17 +3 0.083102007 1 +4 0.000331306 17 +3 0.083058770 1 +4 0.000368108 18 +3 0.083335584 1 +4 0.000328856 18 +3 0.083122443 1 +4 0.000375361 20 +3 0.083140106 1 +4 0.000329073 17 +3 0.535854127 1 +4 0.000363332 17 +3 0.303667929 1 +4 0.000345811 16 +3 0.127414119 1 +4 0.000329253 16 +3 0.575842927 1 +4 0.000372816 18 +3 0.207521448 1 +4 0.000380002 33 +3 0.191680395 1 +4 0.000415139 18 +3 0.239721569 1 +4 0.000359173 18 +3 0.135707566 1 +4 0.000348263 18 +3 0.127456151 1 +4 0.000345213 18 +3 0.113021388 1 +4 0.000349421 18 +3 0.070170448 1 +4 0.000383365 18 +3 0.175705240 1 +4 0.000341282 18 +3 0.039635955 1 +4 0.000448486 18 +3 0.023475627 1 +4 0.000329365 19 +3 0.151772167 1 +4 0.000355765 18 +3 0.151811396 1 +4 0.000345209 18 +3 0.311602242 1 +4 0.000376122 17 +3 0.145722459 1 +4 0.000374938 17 +3 0.141488289 1 +4 0.000411336 18 +3 0.121640620 1 +4 0.000343935 17 +3 0.157504669 1 +4 0.000368814 18 +3 0.095638665 1 +4 0.000335562 18 +3 0.151826083 1 +4 0.000370317 17 +3 0.159537640 1 +4 0.000337397 17 +3 0.200748674 1 +4 0.000433909 17 +3 0.152593300 1 +4 0.000336655 17 +3 0.157635603 1 +4 0.000376891 18 +3 0.137603741 1 +4 0.000350292 17 +3 0.061550084 1 +4 0.000403425 18 +3 0.167783816 1 +4 0.000358165 19 +3 0.159454522 1 +4 0.000356062 18 +3 0.111783645 1 +4 0.000402895 18 +3 0.071540835 1 +4 0.000352165 18 +3 0.079665713 1 +4 0.000441442 18 +3 0.087580841 1 +4 0.000427823 18 +3 0.359989306 1 +4 0.000358601 18 +3 0.239226909 1 +4 0.000373383 17 +3 0.143514814 1 +4 0.000349556 17 +3 0.167751454 1 +4 0.000392330 19 +3 0.159585858 1 +4 0.000355057 17 +3 0.111688172 1 +4 0.000435191 17 +3 0.039591792 1 +4 0.000333307 17 +3 0.079745614 1 +4 0.000380560 17 +3 0.087569485 1 +4 0.000327945 17 +3 0.143716242 1 +4 0.000362228 18 +3 0.151621835 1 +4 0.000377097 18 +3 0.119543924 1 +4 0.000402925 18 +3 0.087366870 1 +4 0.000347471 18 +3 0.087783726 1 +4 0.000351720 19 +3 0.119580802 1 +4 0.000327089 18 +3 1.399803885 1 +4 0.000373000 18 +3 0.135758540 1 +4 0.000388294 18 +3 0.063433900 1 +4 0.000389975 18 +3 0.087873763 1 +4 0.000346176 18 +3 0.015454620 1 +4 0.000345227 18 +3 0.183740784 1 +4 0.000340555 17 +3 0.183687529 1 +4 0.000350207 18 +3 0.087651959 1 +4 0.000354004 18 +3 0.095470793 1 +4 0.000329564 18 +3 0.344080703 1 +4 0.000407214 18 +3 0.375679144 1 +4 0.000386215 18 +3 0.151253567 1 +4 0.000376792 18 +3 0.368260780 1 +4 0.000426592 18 +3 0.463141441 2 +4 0.000372831 39 +3 0.499616728 1 +4 0.000349728 20 +3 0.083258270 1 +4 0.000321692 19 +3 0.082820913 1 +4 0.000371649 17 +3 0.083827042 1 +4 0.000332168 20 +3 0.083185308 1 +4 0.000332464 17 +3 0.083697529 1 +4 0.000339107 17 +3 0.083415893 1 +4 0.000364753 19 +3 0.083598749 1 +4 0.000352820 16 +3 0.083088290 1 +4 0.000427827 21 +3 0.083525197 1 +4 0.000368018 14 +3 0.506039084 1 +4 0.000379518 13 +3 0.095386336 1 +4 0.000367863 16 +3 0.161923430 1 +4 0.000354726 18 +3 0.157560479 1 +4 0.000358988 18 +3 0.423659737 1 +4 0.000353732 17 +3 0.847670925 1 +4 0.000393746 17 +3 0.431620650 1 +4 0.000403175 17 +3 1.167679625 1 +4 0.000387411 79 +3 0.249536457 1 +4 0.000365653 79 +3 0.605670872 1 +4 0.000369650 79 +3 1.783802629 2 +4 0.000379593 18 +3 0.186118123 1 +4 0.000378437 47 +3 0.180976931 1 +4 0.000351710 20 +3 0.217856920 1 +4 0.000408993 17 +3 3.517731838 1 +4 0.000373305 17 +3 0.201450541 1 +4 0.000356815 19 +3 0.245571264 1 +4 0.000341944 20 +3 0.239848248 1 +4 0.000359928 17 +3 0.311511301 1 +4 0.000351362 17 +3 0.161756301 1 +4 0.000334570 18 +3 0.205588500 1 +4 0.000426037 17 +3 0.169868284 1 +4 0.000338882 17 +3 0.109390361 1 +4 0.000355237 23 +3 0.151655281 1 +4 0.000384306 24 +3 0.327530229 1 +4 0.000345480 9 +3 0.127757608 1 +4 0.000403946 1 +3 0.175935105 1 +4 0.000454742 11 +4 0.000420094 61 +3 1.103044519 1 +4 0.000612613 922 +3 0.415175455 1 +4 0.000358090 19 +3 0.527767062 1 +4 0.000379689 16 +3 0.351574936 1 +4 0.000384239 86 +3 0.500235440 1 +4 0.000400092 77 +3 0.082757413 1 +4 0.000376150 77 +3 0.083308781 1 +4 0.000340141 77 +3 0.082992475 1 +4 0.000435990 77 +3 0.178905212 1 +4 0.000364419 77 +3 0.173403319 1 +4 0.000354806 77 +3 0.225831910 1 +4 0.000359714 77 +3 0.749493093 1 +4 0.000391440 22 +3 0.191682853 1 +4 0.000370273 22 +3 0.223780980 1 +4 0.000332007 16 +3 0.217892668 1 +4 0.000356396 17 +3 0.165424257 1 +4 0.000364054 16 +3 0.287407138 1 +4 0.000385048 16 +3 0.113280849 1 +4 0.000358545 22 +3 0.150104957 1 +4 0.000385980 23 +3 0.303582804 1 +4 0.000361146 19 +3 0.743725373 1 +4 0.000360773 16 +3 1.167690376 1 +3 0.087968963 1 +4 0.000380787 4 +3 0.159570709 1 +3 0.072026816 1 +4 0.000350365 4 +3 0.287679924 1 +4 0.000368317 4 +3 0.169859422 1 +4 0.000673128 4 +3 7.632381569 1 +4 0.109950952 1 +3 1.959673015 1 +4 0.000376965 16 +3 1.287215620 1 +3 0.210513588 1 +4 0.000391697 98 +3 0.172921613 1 +3 0.154136665 1 +4 0.000415202 100 +3 0.141822554 1 +3 0.161743453 1 +4 0.000507720 46 +3 0.157412835 1 +3 0.162251948 1 +4 0.000409228 89 +3 0.157538347 1 +3 0.401929979 1 +4 0.000406217 101 +3 0.317547177 1 +4 0.000423142 10 +3 0.151581196 1 +4 0.000518330 1 +3 0.143492974 1 +4 0.000373153 1 +3 0.079624129 1 +4 0.000337376 1 +3 0.047604678 1 +4 0.000383266 1 +3 0.184669164 1 +4 0.000601798 918 +3 3.046839043 1 +4 0.000371088 17 +3 0.145363443 1 +4 0.000371312 18 +3 0.837658318 1 +4 0.000444343 24 +3 0.575418335 1 +4 0.000377676 39 +3 0.055609717 1 +4 0.000364620 39 +3 0.287765120 1 +4 0.000386080 40 +3 0.703784086 2 +4 0.000653224 828 +3 0.319288655 1 +4 0.000622814 874 +3 0.215393969 1 +4 0.000638096 800 +3 0.631478728 1 +4 0.000380618 8 +3 0.151549926 1 +4 0.000337736 1 +3 0.039574688 1 +4 0.000329953 1 +4 0.000375688 632 +3 0.135215715 1 +4 0.000359826 9 +3 0.255687730 1 +4 0.000415834 1 +3 0.135563818 1 +4 0.000346850 1 +3 0.367827358 1 +4 0.000369753 1 +3 0.103438993 1 +4 0.000352540 1 +3 0.103648809 1 +4 0.000327471 1 +3 0.071756608 1 +4 0.000380862 1 +3 0.183704141 1 +4 0.000601790 861 +3 1.415585005 1 +4 0.000682731 1087 +3 0.167337750 1 +4 0.000612615 728 +3 0.455244017 1 +4 0.000448561 31 +4 0.000374506 698 +3 0.745164190 1 +4 0.000372895 21 +3 1.309719317 1 +4 0.000599452 914 +3 0.255336273 1 +4 0.000354554 19 +3 0.825640669 1 +4 0.000387518 21 +3 1.621708460 1 +4 0.000355082 18 +3 0.255636360 1 +4 0.000373358 18 +3 0.199571666 1 +4 0.000368407 17 +3 1.007788881 1 +4 0.000374963 4 +3 0.201587592 1 +4 0.000358092 4 +3 0.133609220 1 +4 0.000452236 4 +3 0.145869939 1 +4 0.000382109 4 +3 0.149274181 1 +4 0.000343534 4 +3 0.145708143 1 +4 0.000351243 4 +3 0.437543032 1 +4 0.000399236 4 +3 0.289909705 1 +4 0.000334891 4 +3 2.605615048 1 +4 0.000409755 18 +3 0.295695513 1 +4 0.000378715 19 +3 0.153513460 1 +4 0.000349889 20 +3 0.213713492 1 +4 0.000411932 21 +3 0.401647731 1 +4 0.000377474 22 +3 0.797560567 1 +4 0.000396681 23 +3 0.425614010 1 +4 0.000359595 24 +3 0.549657260 1 +4 0.000349846 25 +3 2.551724694 1 +4 0.000399019 18 +3 0.499929100 1 +4 0.000352614 17 +3 0.083705797 1 +4 0.000380299 117 +3 0.082983597 1 +4 0.000377553 85 +3 0.082727485 1 +4 0.000455291 34 +3 0.083219394 1 +4 0.000374830 95 +3 0.083604190 1 +4 0.000388504 97 +3 0.169736721 1 +4 0.000350924 17 +3 0.499883640 1 +4 0.000361798 17 +3 0.082699677 1 +4 0.000340410 18 +3 0.082924380 1 +4 0.000368512 20 +3 0.083266795 1 +4 0.000404601 17 +3 0.082798017 1 +4 0.000374351 17 +3 0.082640844 1 +4 0.000347335 18 +3 0.083292975 1 +4 0.000426983 17 +3 0.286914609 1 +4 0.000340747 17 +3 0.295806957 1 +4 0.000376555 4 +3 0.500023921 1 +4 0.000363726 4 +3 0.082953992 1 +4 0.000433494 4 +3 0.082709404 1 +4 0.000336450 4 +3 0.083676007 1 +4 0.000364435 4 +3 0.082964062 1 +4 0.000340507 4 +3 0.082922325 1 +4 0.000365499 4 +3 0.788259159 1 +4 0.000370031 4 +3 1.253521471 1 +4 0.000391511 4 +3 6.599914770 1 +4 0.000380933 18 +3 0.319446621 1 +4 0.000385693 17 +3 3.439896624 1 +4 0.000432834 78 +3 0.500445476 1 +4 0.000417865 78 +3 0.702340298 1 +4 0.000370513 78 +3 0.496989320 1 +4 0.000420677 79 +3 0.083494250 1 +4 0.000359145 78 +3 0.083621482 1 +4 0.000402832 159 +3 0.084331945 1 +4 0.000340128 4 +3 0.742005260 1 +4 0.000404598 4 +3 0.353637154 1 +4 0.000363675 4 +3 5.509918559 1 +4 0.000383274 17 +3 1.479529377 1 +4 0.000380697 78 +3 0.500411556 1 +4 0.000459808 78 +3 0.082778013 1 +4 0.000340857 78 +3 0.083111298 1 +4 0.000404997 78 +3 0.082735630 1 +4 0.000384490 78 +3 0.083630656 1 +4 0.000371814 78 +3 0.359183488 1 +4 0.000355458 78 +3 0.189465730 1 +4 0.000356717 78 +3 0.553740617 1 +4 0.000452195 78 +3 1.621707077 1 +4 0.000382454 18 +3 0.207563026 1 +4 0.000345149 17 +3 0.177616185 1 +4 0.000463753 17 +3 0.133458797 1 +4 0.000328028 16 +3 0.311812562 1 +4 0.000375537 16 +3 0.209715537 1 +4 0.000365633 16 +3 0.213545705 1 +4 0.000386233 22 +3 0.167579291 1 +4 0.000372100 23 +3 0.135611283 1 +4 0.000410175 16 +3 0.209722417 1 +4 0.000362663 16 +3 0.157486100 1 +4 0.000350318 22 +3 0.231957603 1 +4 0.000371729 23 +3 0.512250024 1 +4 0.000429872 16 +3 0.550878919 1 +4 0.000376199 22 +3 0.135440425 1 +4 0.000332319 23 +3 0.170257807 1 +4 0.000325663 17 +3 0.285265098 1 +4 0.000363966 17 +3 0.201519231 1 +4 0.000339678 17 +3 0.181742156 1 +4 0.000331342 17 +3 0.170582676 1 +4 0.000354224 17 +3 0.204709227 1 +4 0.000332339 17 +3 0.521756570 1 +4 0.000364615 17 +3 0.197634097 1 +4 0.000336843 17 +3 0.255701032 1 +4 0.000382266 2 +3 0.159464709 1 +4 0.000368805 17 +3 0.169720266 1 +4 0.000348238 17 +3 0.165632676 1 +4 0.000349272 17 +3 0.351517390 1 +3 0.464418734 1 +4 0.000404631 2 +3 0.743489820 1 +4 0.000405586 17 +3 0.127375207 1 +4 0.000337043 18 +3 0.170141567 1 +4 0.000393307 18 +3 0.333178526 1 +4 0.000357925 17 +3 0.183833666 1 +4 0.000467932 78 +3 0.500190251 1 +4 0.000373160 78 +3 0.082685764 1 +4 0.000385147 78 +3 0.083008182 1 +4 0.000351039 78 +3 0.083037265 1 +4 0.000434460 78 +3 0.082892682 1 +4 0.000355135 78 +3 0.083533921 1 +4 0.000377191 78 +3 0.243935726 1 +4 0.000449754 78 +3 0.213479932 1 +4 0.000382132 78 +3 2.239710334 1 +4 0.000401714 9 +3 0.159516587 1 +4 0.000408303 1 +3 0.063670632 1 +4 0.000355716 1 +4 0.000381180 71 +3 3.663406855 1 +4 0.000379384 37 +3 0.201655132 1 +4 0.000378782 16 +3 0.182043250 1 +4 0.000334297 20 +3 0.153295765 1 +4 0.000329281 17 +3 0.645757822 1 +4 0.000363122 17 +3 0.351475229 1 +4 0.000338047 17 +3 0.231540164 1 +4 0.000365529 17 +3 0.287723036 1 +4 0.000345992 17 +3 0.500168935 1 +4 0.000408512 47 +3 0.082426580 1 +4 0.000367480 92 +3 0.083224488 1 +4 0.000370449 102 +3 0.116669549 1 +4 0.000346915 18 +3 0.500213750 1 +4 0.000350082 19 +3 0.083127552 1 +4 0.000360786 20 +3 0.082980819 1 +4 0.000363822 17 +3 6.310589126 1 +4 0.000394153 17 +3 0.498354169 1 +4 0.000387554 17 +3 0.083219103 1 +4 0.000342153 18 +3 0.083160066 1 +4 0.000360452 20 +3 0.083474179 1 +4 0.000333867 17 +3 0.083153173 1 +4 0.000345219 17 +3 0.082945600 1 +4 0.000324201 18 +3 0.082839985 1 +4 0.000400573 16 +3 0.253944964 1 +4 0.000364001 17 +3 0.303707859 1 +4 0.000380456 23 +3 0.319493883 1 +4 0.000337420 26 +3 0.439684657 2 +4 0.000456120 37 +3 0.231704010 1 +4 0.000364217 17 +3 0.279796722 1 +4 0.000405976 24 +3 0.343401231 1 +4 0.000388183 74 +3 0.303555553 2 +4 0.000394285 36 +3 0.439664416 1 +4 0.000382079 134 +3 0.215740167 1 +4 0.000413677 17 +3 0.154031244 1 +4 0.000370217 19 +3 0.317173508 1 +4 0.000398654 20 +3 0.312109507 1 +4 0.000384129 133 +3 1.311086895 1 +4 0.000468258 17 +3 0.247670264 1 +4 0.000566957 765 +3 2.135572935 1 +4 0.000401778 17 +3 0.559496218 1 +4 0.000356911 17 +3 0.257605602 1 +4 0.000370437 18 +3 0.557561536 1 +4 0.000365280 17 +3 0.183589462 1 +4 0.000407185 24 +3 0.335713990 1 +4 0.000399405 104 +3 0.455592372 2 +4 0.000428032 36 +3 0.201827538 1 +4 0.000396177 47 +3 0.165325141 1 +4 0.000398182 119 +3 0.169743508 1 +4 0.000503484 125 +3 0.197465764 1 +4 0.000403824 47 +3 0.367566207 1 +4 0.000345422 20 +3 0.499948646 1 +4 0.000450718 17 +3 0.082916345 1 +4 0.000334208 19 +3 0.083743043 1 +4 0.000365424 20 +3 0.668027305 1 +4 0.000344319 9 +3 0.127616885 1 +4 0.000389556 1 +3 0.063698609 1 +4 0.000367317 1 +4 0.000308014 14 +4 0.000311920 57 +3 3.103058907 1 +4 0.000420309 37 +3 0.281430416 1 +4 0.000391572 20 +3 0.653620110 1 +4 0.000346649 17 +3 0.441696601 1 +4 0.000351826 19 +3 2.981870284 1 +4 0.000420171 34 +3 0.945760713 1 +4 0.000431728 70 +3 14.926277405 1 +4 0.000381836 17 +3 0.500010040 1 +4 0.000418235 18 +3 0.083287212 1 +4 0.000331118 20 +3 0.083248663 1 +4 0.000425143 17 +3 0.083076968 1 +4 0.000322811 19 +3 0.082702205 1 +4 0.000337987 20 +3 0.575256615 1 +4 0.000363130 17 +3 0.677561508 1 +4 0.000396849 17 +3 0.500089770 1 +4 0.000405668 17 +3 0.082727833 1 +4 0.000337580 17 +3 0.083052744 1 +4 0.000341862 18 +3 0.083609893 1 +4 0.000352462 17 +3 0.082848311 1 +4 0.000321241 17 +3 0.083823926 1 +4 0.000348848 17 +3 0.082284757 1 +4 0.000328215 18 +3 0.083189559 1 +4 0.000355194 17 +3 0.082971342 1 +4 0.000357883 18 +3 0.083156952 1 +4 0.000344987 17 +3 0.082919646 1 +4 0.000320014 18 +3 0.083883272 1 +4 0.000332894 17 +3 0.082801049 1 +4 0.000335230 17 +3 0.083369966 1 +4 0.000331249 18 +3 0.083247646 1 +4 0.000409715 17 +3 0.083043049 1 +4 0.000342522 14 +3 0.084233866 1 +4 0.000339196 16 +3 0.082430678 1 +4 0.000338452 16 +3 0.495768575 1 +4 0.000369233 18 +3 3.663651029 1 +4 0.000357787 17 +3 0.311840767 1 +4 0.000358067 22 +3 0.447516612 1 +4 0.000444672 31 +3 0.527438065 2 +4 0.000368557 24 +3 0.145854319 1 +4 0.000357463 17 +3 0.389686435 1 +4 0.000377187 17 +3 0.295524943 1 +4 0.000347405 31 +3 0.431602915 1 +4 0.000385636 42 +3 0.351714465 1 +4 0.000396298 30 +3 1.175715288 2 +4 0.000417190 37 +3 0.359523623 1 +4 0.000350170 17 +3 0.287663316 1 +4 0.000361177 31 +3 0.287672759 1 +4 0.000377838 43 +3 0.487561501 1 +4 0.000392311 31 +3 0.623635902 2 +4 0.000416460 22 +3 0.231611039 1 +4 0.000358732 24 +3 0.271842044 1 +4 0.000406813 26 +3 0.343370365 2 +4 0.000380928 33 +3 0.170726284 1 +4 0.000380691 17 +3 0.180613035 1 +4 0.000350015 17 +3 0.439559561 1 +4 0.000350252 16 +3 0.169573482 1 +4 0.000362390 18 +3 0.157768876 1 +4 0.000333562 24 +3 0.327944225 1 +4 0.000376491 33 +3 0.823624768 1 +4 0.109929671 33 +3 11.346442722 1 +4 0.000384715 17 +3 0.135385039 1 +4 0.000346971 16 +3 0.153650783 1 +4 0.000366514 18 +3 0.181638007 1 +4 0.000355682 18 +3 0.304121026 1 +4 0.000348081 17 +3 0.185381126 1 +4 0.000349748 17 +3 0.237505223 1 +4 0.000355453 24 +3 1.863642855 1 +4 0.000413811 109 +3 1.328116581 1 +4 0.000406424 109 +3 0.527169793 1 +4 0.000378795 109 +3 0.279499340 1 +4 0.000384060 109 +3 0.695805322 1 +4 0.000379395 109 +3 0.327475776 1 +4 0.000400691 126 +3 0.287808853 1 +4 0.000365527 113 +3 0.811365647 1 +4 0.110066681 33 +3 3.790382320 1 +4 0.000384889 23 +3 2.559652278 1 +3 0.279861622 1 +4 0.000346426 23 +3 0.327756463 1 +4 0.000345382 17 +3 0.169619186 1 +4 0.000355833 18 +3 0.141625037 1 +4 0.000345513 17 +3 0.279692210 1 +4 0.000350600 17 +3 0.135688208 1 +4 0.000339452 23 +3 0.087794348 1 +4 0.000357403 24 +3 4.679945306 1 +4 0.000391928 19 +3 0.369277719 1 +4 0.000362685 20 +3 0.541904679 1 +3 0.169919904 1 +4 0.000407758 146 +3 0.189486320 1 +3 0.154049223 1 +4 0.000376602 116 +3 0.173563108 1 +3 0.122124061 1 +4 0.000379450 64 +3 0.485534711 1 +4 0.000431899 8 +3 0.143536054 1 +4 0.000322833 1 +3 0.103805995 1 +4 0.000353146 1 +4 0.000876790 10 +4 0.000394966 58 +3 0.366300801 1 +4 0.000446745 37 +3 0.169506941 1 +4 0.000361830 16 +3 0.157737806 1 +4 0.000384886 16 +3 0.249607015 1 +4 0.000427266 16 +3 0.181405289 1 +4 0.000362563 16 +3 0.143733834 1 +4 0.000354720 16 +3 0.500558910 1 +4 0.000415658 18 +3 0.083461755 1 +4 0.000349338 18 +3 0.082788023 1 +4 0.000359309 17 +3 0.082908063 1 +4 0.000324597 17 +3 3.224714789 1 +4 0.000379721 17 +3 0.499538503 1 +4 0.000353926 19 +3 0.083267339 1 +4 0.000360067 16 +3 0.083652153 1 +4 0.000335256 20 +3 0.083433569 1 +4 0.000356133 17 +3 0.082976121 1 +4 0.000390926 17 +3 0.083053557 1 +4 0.000419727 17 +3 0.082594671 1 +4 0.000405612 117 +3 0.082932847 1 +4 0.000421645 78 +3 0.082956612 1 +4 0.000375613 34 +3 0.083414152 1 +4 0.000636990 95 +3 0.291714750 1 +4 0.000490907 17 +3 0.499951467 1 +4 0.000568886 18 +3 0.082670852 1 +4 0.000498291 21 +3 0.082713051 1 +4 0.000590882 17 +3 0.083230712 1 +4 0.000519918 17 +3 0.083090766 1 +4 0.000561212 17 +3 1.709356913 1 +4 0.000384305 17 +3 0.499886762 1 +4 0.000363184 17 +3 0.083006562 1 +4 0.000345084 17 +3 0.083533142 1 +4 0.000346778 20 +3 0.083482127 1 +4 0.000365645 16 +3 0.083693772 1 +4 0.000322166 20 +3 0.083716517 1 +4 0.000396755 97 +3 0.082845649 1 +4 0.000373926 98 +3 0.083463729 1 +4 0.000382354 47 +3 0.082898629 1 +4 0.000381183 92 +3 0.083018539 1 +4 0.000389878 101 +3 0.083403555 1 +4 0.000388824 47 +3 0.175108423 1 +4 0.000347562 20 +3 0.217146999 1 +4 0.000350923 17 +3 0.165603007 1 +4 0.000346764 19 +3 0.137694771 1 +4 0.000349303 20 +3 0.157613162 1 +4 0.000382712 17 +3 0.167650866 1 +4 0.000342564 17 +3 0.311745700 1 +4 0.000378919 17 +3 0.153516781 1 +4 0.000389323 17 +3 0.325654480 1 +4 0.000391744 21 +3 0.169688353 1 +4 0.000357614 4 +3 0.157534808 1 +4 0.000353330 4 +3 0.154886136 1 +4 0.000425480 4 +3 0.124415471 1 +4 0.000353887 4 +3 0.137713377 1 +4 0.000385011 4 +3 0.149458119 1 +4 0.000354594 4 +3 0.121685638 1 +4 0.000361286 4 +3 0.973709966 1 +4 0.000376678 17 +3 1.009665186 1 +4 0.000377569 19 +3 0.205524115 1 +4 0.000387418 20 +3 0.495785323 1 +4 0.000385730 4 +3 0.499647967 1 +4 0.000375708 4 +3 0.083155548 1 +4 0.000381245 4 +3 0.083038932 1 +4 0.000350367 4 +3 0.083074377 1 +4 0.000350422 4 +3 0.082811653 1 +4 0.000345684 4 +3 0.082843827 1 +4 0.000429483 4 +3 0.082536445 1 +4 0.000329136 4 +3 0.744076080 1 +4 0.000388774 17 +3 0.303425704 1 +4 0.000346177 18 +3 0.119614101 1 +4 0.000332779 17 +3 0.140024791 1 +4 0.000347506 17 +3 0.107287043 1 +4 0.000413799 23 +3 0.207633584 1 +4 0.000427452 24 +3 0.495798375 1 +4 0.000591242 838 +3 0.415387430 1 +4 0.000400310 18 +3 0.185488924 1 +4 0.000353861 17 +3 0.165759249 1 +4 0.000397123 20 +3 0.169620639 1 +4 0.000359521 16 +3 0.718012984 1 +4 0.000402799 16 +3 0.177357060 1 +4 0.000365666 17 +3 0.325489631 1 +4 0.000397737 16 +3 0.167680709 1 +4 0.000400409 4 +3 0.499983596 1 +4 0.000443905 4 +3 0.082783046 1 +4 0.000424726 4 +3 0.082516554 1 +4 0.000366547 4 +3 0.083271276 1 +4 0.000338383 4 +3 0.083111548 1 +4 0.000445116 4 +3 0.082715200 1 +4 0.000343684 4 +3 0.444670136 1 +4 0.000424947 4 +3 1.461772429 1 +4 0.000372625 16 +3 0.161544881 1 +4 0.000389758 18 +3 0.133779295 1 +4 0.000356464 19 +3 0.375657353 1 +4 0.000409811 4 +3 0.500130550 1 +4 0.000446349 4 +3 0.084072290 1 +4 0.000405097 4 +3 0.081983605 1 +4 0.000433410 4 +3 0.083212407 1 +4 0.000385627 4 +3 0.082625138 1 +4 0.000355126 4 +3 0.082970102 1 +4 0.000433675 4 +3 0.083703605 1 +4 0.000355807 4 +3 0.941974868 1 +4 0.000401594 16 +3 0.287662486 1 +4 0.000370377 17 +3 0.175662421 1 +4 0.000450268 16 +3 0.137429599 1 +4 0.000349171 16 +3 0.117702694 1 +4 0.000364947 22 +3 0.207886655 1 +4 0.000341449 23 +3 1.104204534 1 +4 0.000595586 19 +3 0.499726414 1 +4 0.000412254 17 +3 0.082763129 1 +4 0.000422345 20 +3 0.083462409 1 +4 0.000367752 20 +3 0.083536698 1 +4 0.000350644 21 +3 0.663735900 1 +4 0.000378557 21 +3 0.263573715 1 +4 0.000380666 17 +3 0.047575241 1 +4 0.000343907 16 +3 0.170558034 1 +4 0.000366080 18 +3 0.156796717 1 +4 0.000415633 18 +3 0.359565909 1 +4 0.000389897 18 +3 0.119534956 1 +4 0.000333576 18 +3 0.225726019 1 +4 0.000418449 17 +3 0.205589490 1 +4 0.000353991 4 +3 0.499804267 1 +4 0.000354127 4 +3 0.083319670 1 +4 0.000579498 4 +3 0.082781763 1 +4 0.000385999 4 +3 0.082551312 1 +4 0.000360121 4 +3 0.083515411 1 +4 0.000336331 4 +3 0.084003421 1 +4 0.000330381 4 +3 0.363489014 1 +4 0.000365388 4 +3 0.165517621 1 +4 0.000341948 18 +3 0.201602455 1 +4 0.000426000 19 +3 0.269700353 1 +4 0.000346176 20 +3 0.287606038 1 +4 0.000387541 79 +3 0.500757622 1 +4 0.000381185 79 +3 0.082492019 1 +4 0.000348990 79 +3 0.083543179 1 +4 0.000357938 79 +3 0.083056603 1 +4 0.000356201 79 +3 0.082954796 1 +4 0.000390463 79 +3 0.083051835 1 +4 0.000340912 79 +3 0.082798583 1 +4 0.000374209 79 +3 1.262590706 1 +4 0.000395391 17 +3 0.199750642 1 +4 0.000340637 20 +3 0.287499305 1 +4 0.000344857 17 +3 0.153627834 1 +4 0.000361415 17 +3 0.133617182 1 +4 0.000423563 23 +3 0.183659316 1 +4 0.000363558 24 +3 0.175599840 1 +4 0.000340404 19 +3 0.241835755 1 +4 0.000348606 16 +3 0.229516546 1 +4 0.000345795 17 +3 0.185609469 1 +4 0.000340789 18 +3 0.149637670 1 +4 0.000345723 18 +3 0.500791570 1 +4 0.000445016 47 +3 0.082583390 1 +4 0.000377035 83 +3 0.083365873 1 +4 0.000460660 92 +3 0.082824087 1 +4 0.000376083 47 +3 0.083414413 1 +4 0.000371807 112 +3 0.083491880 1 +4 0.000376482 86 +3 0.083854113 1 +4 0.000371886 47 +3 0.300784350 1 +4 0.000492564 20 +3 0.499820846 1 +4 0.000378588 17 +3 0.083179389 1 +4 0.000362515 19 +3 0.083469929 1 +4 0.000340053 20 +3 0.082670043 1 +4 0.000349875 20 +3 0.083500008 1 +4 0.000342594 20 +3 0.082973318 1 +4 0.000343174 20 +3 0.217746683 1 +4 0.000363125 17 +3 0.128338762 1 +4 0.000334453 18 +3 0.168770898 1 +4 0.000443666 18 +3 0.213671488 1 +4 0.000328120 17 +3 0.025716945 1 +4 0.000370642 17 +3 0.357758108 1 +4 0.000351117 17 +3 0.169543519 1 +4 0.000392530 17 +3 0.141609781 1 +4 0.000347500 17 +3 0.727612317 1 +4 0.000399071 4 +3 0.187152626 1 +4 0.000362028 4 +3 0.148122889 1 +4 0.000444145 4 +3 0.145526596 1 +4 0.000342455 4 +3 0.197732554 1 +4 0.000376040 4 +3 0.177643966 1 +4 0.000342032 4 +3 0.181679284 1 +4 0.000394013 4 +3 0.593474459 1 +4 0.000369757 4 +3 0.237802186 1 +4 0.000452974 17 +3 0.201487042 1 +4 0.000346969 19 +3 0.181551425 1 +4 0.000373977 21 +3 0.711760029 1 +3 0.088219534 1 +4 0.000357894 4 +3 1.759548545 1 +4 0.000542106 17 +3 0.217450484 1 +4 0.000543141 19 +3 0.277457836 1 +4 0.000376117 20 +3 0.399547567 1 +4 0.000372843 4 +3 0.239770273 1 +4 0.000341606 17 +3 0.239459643 1 +4 0.000354375 18 +3 0.167748072 1 +4 0.000368185 17 +3 0.161714100 1 +4 0.000331686 17 +3 0.141647695 1 +4 0.000343859 23 +3 0.175629679 1 +4 0.000372694 24 +3 0.103554779 1 +4 0.000439057 19 +3 0.169664638 1 +4 0.000417062 95 +3 0.165604493 1 +4 0.000408782 93 +3 0.169626978 1 +4 0.000388267 47 +3 0.197489319 1 +4 0.000353575 20 +3 0.169870056 1 +4 0.000355273 17 +3 0.213649084 1 +4 0.000350989 17 +3 0.047486240 1 +4 0.000324129 16 +3 0.161671274 1 +4 0.000346250 18 +3 0.141689031 1 +4 0.000379799 18 +3 0.183639098 1 +4 0.000335563 17 +3 0.431604394 1 +3 0.072073842 1 +4 0.000397484 4 +3 0.199608915 1 +4 0.000333885 17 +3 0.711716130 1 +4 0.000444465 18 +3 0.111475471 1 +4 0.000342124 16 +3 0.143705701 1 +4 0.000364229 1 +3 0.072023722 1 +4 0.000315558 1 +3 0.447214710 2 +4 0.000338835 1 +4 0.000399088 67 +3 0.162072418 1 +4 0.000343971 4 +3 0.492889031 1 +4 0.000433418 17 +3 0.183511417 1 +4 0.000338202 18 +3 0.151760080 1 +4 0.000353876 18 +3 0.177669887 1 +4 0.000373866 17 +3 0.101681943 1 +4 0.000427001 23 +3 0.167488100 1 +4 0.000346252 24 +3 0.079733083 1 +4 0.000378997 19 +3 0.161602206 1 +4 0.000383186 34 +3 0.158769842 1 +4 0.000424969 82 +3 0.168544633 1 +4 0.000383672 115 +3 0.469599939 1 +4 0.000497017 116 +3 0.169647661 1 +4 0.000401025 92 +3 0.181501628 1 +4 0.000412609 47 +3 0.201461558 1 +4 0.000376930 34 +3 0.469729442 1 +4 0.000517278 18 +3 3.634148108 1 +4 0.000353365 20 +3 0.197171038 1 +4 0.000395122 20 +3 0.439500765 1 +4 0.000381673 20 +3 0.319544893 1 +4 0.000367765 17 +3 0.153726098 1 +4 0.000350973 17 +3 0.149624446 1 +4 0.000421456 17 +3 0.095585004 1 +4 0.000353419 23 +3 0.439530502 2 +4 0.000366432 29 +3 0.144480307 1 +4 0.000346839 23 +3 0.214910498 1 +4 0.000544866 24 +3 0.239634133 1 +4 0.000347315 17 +3 0.151450031 1 +4 0.000421811 18 +3 0.193713288 1 +4 0.000350838 18 +3 0.053541780 1 +4 0.000395381 17 +3 0.159637998 1 +4 0.000349715 17 +3 0.343839411 1 +4 0.000424118 17 +3 0.169593905 1 +4 0.000361401 17 +3 0.213455686 1 +3 0.088162845 1 +4 0.000349742 4 +3 0.807653749 1 +4 0.000590419 811 +3 0.327398399 1 +4 0.000350294 10 +3 0.135653423 1 +4 0.000360454 1 +3 0.119713405 1 +4 0.000366595 1 +4 0.000367560 69 +3 0.391102699 1 +4 0.000393085 36 +3 0.171125079 1 +4 0.000346290 17 +3 0.164187638 1 +4 0.000370940 15 +3 0.279596206 1 +4 0.000339502 17 +3 0.187105726 1 +4 0.000333155 17 +3 0.468493314 1 +4 0.000376724 16 +3 0.463535375 1 +3 0.151953765 1 +4 0.000383799 20 +3 0.335625730 1 +4 0.000356158 16 +3 0.177858248 1 +4 0.000444427 18 +3 0.318031680 1 +4 0.000354948 20 +3 0.598943884 1 +4 0.000419828 4 +3 0.376477818 1 +4 0.000405880 16 +3 0.200943755 1 +4 0.000380972 18 +3 0.197394866 1 +4 0.000346636 20 +3 0.311586026 1 +4 0.000444641 4 +3 0.343674151 1 +4 0.000364287 17 +3 0.169615881 1 +4 0.000388487 19 +3 0.181685338 1 +4 0.000348924 20 +3 1.599598489 1 +4 0.000580054 4 +3 0.383449244 1 +4 0.000377671 17 +3 0.185655545 1 +4 0.000488395 19 +3 0.165740137 1 +4 0.000484289 20 +3 0.407297798 1 +4 0.000410615 4 +3 0.239601119 1 +4 0.000369584 19 +3 0.199583063 1 +4 0.000379429 18 +3 0.199690679 1 +4 0.000387326 17 +3 0.185636739 1 +4 0.000375703 17 +3 0.389683301 1 +4 0.000375682 23 +3 0.168057557 1 +4 0.000387858 24 +3 0.343110087 1 +4 0.000351349 19 +3 0.201702332 1 +4 0.000364174 16 +3 0.189587561 1 +4 0.000338508 20 +3 0.233660534 1 +4 0.000392796 19 +3 1.573761567 1 +4 0.000390660 9 +3 0.095555823 1 +4 0.000343815 1 +3 0.159632041 1 +4 0.000337522 1 +3 0.079673356 1 +4 0.000359858 1 +4 0.000980505 10 +4 0.000359183 61 +3 0.342306424 1 +4 0.000389909 35 +3 0.500321479 1 +4 0.000444199 51 +3 0.083255876 1 +4 0.000405104 34 +3 0.082790624 1 +4 0.000375824 63 +3 0.172274916 1 +4 0.000340301 17 +3 0.500388717 1 +4 0.000371203 18 +3 0.083013323 1 +4 0.000343404 20 +3 0.083474899 1 +4 0.000325347 17 +3 0.083312871 1 +4 0.000372762 19 +3 0.083168494 1 +4 0.000358499 17 +3 0.082694849 1 +4 0.000328069 18 +3 0.083686067 1 +4 0.000327436 20 +3 0.082873073 1 +4 0.000334989 19 +3 7.891431332 1 +4 0.000664983 937 +3 0.286472250 1 +4 0.000579445 770 +3 0.247373909 1 +4 0.000576050 932 +3 0.455528649 1 +4 0.000573675 716 +3 0.383576281 1 +4 0.000669928 615 +3 0.551140399 1 +4 0.000697621 647 +3 1.335153592 1 +4 0.000522782 15 +3 0.500175251 1 +4 0.000382502 15 +3 0.083026774 1 +4 0.000352613 16 +3 0.083259074 1 +4 0.000372923 15 +3 0.083595977 1 +4 0.000378020 17 +3 0.082989066 1 +4 0.000411759 17 +3 0.188640354 1 +4 0.000355060 16 +3 0.247867350 1 +4 0.000468442 22 +3 1.399357655 1 +4 0.000366174 18 +3 0.759786035 1 +4 0.000413566 18 +3 0.071606423 1 +4 0.000394679 18 +3 0.112732241 1 +4 0.000412462 18 +3 0.118313899 1 +4 0.000430946 18 +3 0.071392479 1 +4 0.000368698 18 +3 0.103767191 1 +4 0.000387429 19 +3 0.721284357 1 +4 0.110006112 33 +3 0.424351588 1 +4 0.000378997 16 +3 0.161596483 1 +4 0.000498455 16 +3 0.349667671 1 +4 0.000375140 23 +3 0.223531420 1 +4 0.000411806 25 +3 0.991724465 1 +4 0.000381443 25 +3 0.167557833 1 +4 0.000442192 25 +3 0.137535956 1 +4 0.000360285 27 +3 0.117626571 1 +4 0.000390086 25 +3 0.703759347 1 +4 0.000371237 25 +3 0.119686952 1 +4 0.000374561 26 +3 0.191588087 1 +4 0.000395497 25 +3 0.088293034 1 +4 0.000380320 25 +3 0.742746392 2 +4 0.105697838 37 +3 0.023053975 1 +4 0.000383199 17 +3 0.126989308 1 +4 0.000356697 15 +3 0.751825140 1 +4 0.000381633 15 +3 1.159592105 1 +4 0.000371959 18 +3 0.151667092 1 +4 0.000393159 15 +3 0.423468492 1 +4 0.000361709 18 +3 0.143701173 1 +4 0.000417394 16 +3 0.135456882 1 +4 0.000361989 17 +3 0.151678345 1 +4 0.000369964 17 +3 0.135731878 1 +4 0.000344024 17 +3 2.919857971 1 +4 0.000396250 16 +3 0.279536198 1 +4 0.000398445 17 +3 0.511886168 1 +4 0.000397594 16 +3 0.231441322 1 +4 0.000356468 17 +3 0.103510344 1 +4 0.000380772 16 +3 0.135673632 1 +4 0.000350063 17 +3 0.135497894 1 +4 0.000436801 17 +3 0.095578070 1 +4 0.000354244 18 +3 0.135695039 1 +4 0.000452497 17 +3 0.055691179 1 +4 0.000363124 17 +3 0.143563638 1 +4 0.000361664 17 +3 0.399694195 1 +4 0.000367626 16 +3 0.231529790 1 +4 0.000433258 17 +3 0.063518663 1 +4 0.000336569 17 +3 0.063690859 1 +4 0.000359410 16 +3 0.200158477 1 +4 0.000396737 17 +3 0.167138258 1 +4 0.000376001 17 +3 0.055644122 1 +4 0.000374781 18 +3 0.167654564 1 +4 0.000349898 17 +3 0.063605224 1 +4 0.000354548 16 +3 0.152392989 1 +4 0.000354777 17 +3 0.062843544 1 +4 0.000342127 17 +3 0.103807551 1 +4 0.000404765 17 +3 0.111572012 1 +4 0.000351588 17 +3 0.367715454 2 +4 0.000376739 10 +3 0.111597239 1 +4 0.000337430 1 +3 0.207800105 1 +4 0.000373721 1 +3 0.927574858 1 +4 0.000378119 1 +4 0.000910395 10 +4 0.000349291 60 +3 13.327831835 1 +4 0.000645291 927 +3 0.526431244 1 +4 0.000596756 751 +3 0.567378071 1 +4 0.000653579 861 +3 0.439652125 1 +4 0.000583643 774 +3 1.063130218 1 +4 0.000562647 610 +3 2.735568898 1 +4 0.000545164 558 +3 0.591456258 1 +4 0.000606715 830 +3 1.023525670 1 +4 0.000649515 694 +3 0.455261151 1 +4 0.000556382 473 +3 1.135566027 1 +4 0.000598606 612 +3 0.231338607 1 +4 0.000627040 879 +3 0.215256263 1 +4 0.000554070 616 +3 0.191478140 1 +4 0.000579073 606 +3 0.719585214 1 +4 0.000578407 753 +3 19.504875154 1 +4 0.000361189 34 +7 0.000562995 TSTP +7 3.126512649 CONT +4 0.000588769 7 +4 0.000380269 7 +4 0.000354194 750 +3 311.641897994 1 +4 0.000604112 877 +3 0.998748534 1 +4 0.000585499 736 +3 0.543243285 1 +4 0.000590598 920 +3 1.215382810 1 +4 0.000626907 748 +3 0.759577586 1 +4 0.000378405 16 +3 0.500355277 1 +4 0.000378008 16 +3 0.082934555 1 +4 0.000333983 16 +3 0.083181849 1 +4 0.000345495 16 +3 0.083045391 1 +4 0.000332502 18 +3 0.322425180 1 +4 0.000333350 16 +3 0.189693383 1 +4 0.000364966 16 +3 0.151719082 1 +4 0.000328601 16 +3 0.201621575 1 +4 0.000353389 16 +3 0.317554951 1 +4 0.000368242 16 +3 0.169513519 1 +4 0.000344426 16 +3 4.302883350 1 +3 0.183082352 1 +3 0.130055613 1 +4 0.000367496 29 +3 0.333626376 1 +4 0.000364249 37 +3 0.169648346 1 +4 0.000332523 16 +3 0.213809620 1 +4 0.000450185 131 +3 0.383346101 1 +4 0.000393992 126 +3 0.295802735 2 +4 0.000356949 34 +3 0.137805466 1 +4 0.000356504 16 +3 0.141251852 1 +4 0.000328164 18 +3 0.186312331 1 +4 0.000325851 18 +3 0.157293999 1 +4 0.000357570 17 +3 0.119801855 1 +4 0.000392268 17 +3 0.711658819 1 +3 0.079877700 1 +4 0.000364041 28 +3 0.191593101 1 +4 0.000405981 18 +3 0.111644357 1 +4 0.000330638 18 +3 0.111417820 1 +4 0.000400641 18 +3 0.215732039 1 +4 0.000356014 18 +3 0.423839652 2 +4 0.000368967 36 +3 1.359666507 1 +4 0.000360121 17 +3 22.696217775 2 +4 0.000364050 18 +3 0.240160250 1 +4 0.000372361 17 +3 2.479207069 1 +3 0.071960936 1 +4 0.000361362 28 +3 0.175536104 1 +4 0.000345406 18 +3 0.111798617 1 +4 0.000344638 18 +3 0.135680226 1 +4 0.000374027 18 +3 0.175718654 1 +4 0.000354925 18 +3 0.543588816 2 +4 0.000353300 33 +3 0.407616585 1 +4 0.000341374 17 +3 0.153794364 1 +4 0.000357012 17 +3 2.813745145 1 +4 0.000360069 24 +3 3.687602308 2 +4 0.000404036 33 +3 0.423620674 1 +4 0.000373787 17 +3 2.545818720 1 +4 0.000377595 17 +3 0.781588378 1 +4 0.000374532 24 +3 1.895694680 1 +4 0.000362996 21 +3 0.137583514 1 +4 0.000363227 23 +3 0.125608581 1 +4 0.000354598 21 +3 0.255686021 1 +4 0.000384391 19 +3 0.129658171 1 +4 0.000383271 20 +3 0.109489916 1 +4 0.000431427 17 +3 13.248049988 2 +4 0.000424076 31 +3 0.319697438 1 +4 0.000367284 20 +3 0.671588544 1 +4 0.000382924 49 +3 0.800196597 1 +4 0.000395701 16 +3 0.168100866 1 +4 0.000346183 16 +3 0.110656936 1 +4 0.000371000 18 +3 1.584289938 1 +4 0.000362400 18 +3 0.199015099 1 +4 0.000442427 18 +3 0.129483498 1 +4 0.000348687 18 +3 0.189607259 1 +4 0.000393515 18 +3 0.167777309 1 +4 0.000361169 17 +3 3.546079966 15 +4 0.000455112 33 +3 9.347909578 1 +4 0.109990815 33 +3 0.627551628 1 +4 0.000381786 18 +3 0.399697487 1 +4 0.000395214 29 +3 0.243427135 13 +4 0.000446506 31 +3 1.248157353 1 +4 0.109995515 34 +3 4.490067760 1 +3 0.083856092 1 +4 0.000387412 16 +3 0.528023063 1 +3 0.153386148 1 +4 0.000397320 74 +3 0.413628130 1 +4 0.000351231 18 +3 0.471818832 1 +4 0.000500237 25 +3 0.207428342 1 +4 0.000377993 19 +3 0.311628436 2 +4 0.000388215 9 +3 0.143596403 1 +4 0.000347411 1 +3 0.175732792 1 +4 0.000407666 1 +3 0.079541562 1 +4 0.000370632 1 +4 0.000314804 54 +4 0.000331122 15 +3 52.370415160 1 +4 0.000650054 891 +3 0.589851841 1 +4 0.000625414 814 +3 0.559417946 1 +4 0.000662742 922 +3 2.183633578 1 +4 0.000600612 797 +3 1.111368831 1 +4 0.000580402 680 +3 3.023420204 1 +4 0.000783246 783 +3 0.303155855 1 +4 0.000851199 923 +3 0.383194869 1 +4 0.000791889 809 +3 0.607230184 1 +4 0.000745230 883 +3 2.695368393 1 +4 0.000589889 689 +3 2.607443931 1 +4 0.000423971 18 +3 0.249494793 1 +4 0.000343334 16 +3 25.495109330 1 +4 0.000397043 16 +3 0.185120056 1 +4 0.000355099 16 +3 0.151116361 1 +4 0.000361796 18 +3 0.160043361 1 +4 0.000346922 16 +3 0.301642111 1 +3 0.137906881 1 +4 0.000349964 28 +3 0.205709678 1 +4 0.000366959 37 +3 0.162539226 1 +4 0.000344278 16 +3 0.156614882 1 +4 0.000390682 18 +3 0.217739910 1 +4 0.000412163 16 +3 0.293620538 1 +4 0.000371324 71 +3 4.383928242 1 +4 0.000384727 18 +3 0.201504645 1 +4 0.000342978 17 +3 1.421781402 1 +3 0.055847564 1 +4 0.000363371 28 +3 0.255754333 1 +4 0.000376076 18 +3 0.159453995 1 +4 0.000341660 18 +3 0.136324941 1 +4 0.000381340 18 +3 0.246976566 1 +4 0.000365764 18 +3 0.782015232 1 +4 0.110026089 33 +3 1.003877816 1 +4 0.000423505 9 +3 0.127449232 1 +4 0.000350303 1 +3 0.159619209 1 +4 0.000328406 1 +3 0.192771301 1 +4 0.000410219 1 +4 0.000369259 10 +4 0.000297636 61 +3 9.231636766 1 +4 0.000364204 35 +7 0.000533543 TSTP +7 1.677861371 CONT +4 0.000709404 7 +4 0.000258601 722 +3 3.296041959 1 +4 0.000394331 35 +7 0.000524420 TSTP +7 9.622426511 CONT +4 0.000536008 7 +4 0.000294990 664 +3 32.720725744 1 +4 0.000462659 17 +3 0.359159217 1 +3 0.138045550 1 +4 0.000394501 81 +3 0.053564869 1 +4 0.000376500 63 +3 41.185576701 1 +4 0.000378621 17 +3 0.374911082 1 +3 0.130036236 1 +4 0.000385894 54 +3 0.077434689 1 +4 0.000387997 61 +3 3.256007840 1 +4 0.000380680 9 +3 0.111427215 1 +4 0.000329944 1 +3 0.151767387 1 +4 0.000401364 1 +3 0.119783561 1 +4 0.000357625 1 +4 0.000330857 14 +4 0.000321627 57 +3 26.432783973 1 +4 0.000360734 35 +7 0.000540272 TSTP +7 1.638401958 CONT +4 0.000620050 7 +4 0.000263276 722 +3 20.040125363 1 +4 0.000376103 19 +3 0.499356754 1 +4 0.000396980 35 +3 0.082717724 1 +4 0.000378205 94 +3 0.083076036 1 +4 0.000423738 89 +3 0.083778095 1 +4 0.000408547 94 +3 4.960955350 1 +4 0.000381038 17 +3 0.201194482 1 +4 0.000357095 17 +3 0.149608263 1 +4 0.000362816 17 +3 0.170104859 1 +4 0.000347020 19 +3 0.421481515 1 +4 0.000344429 20 +3 1.311561552 1 +4 0.000419294 18 +3 1.215535250 1 +4 0.000406120 23 +3 0.111510392 1 +4 0.000342121 19 +3 0.127732346 1 +4 0.000333493 19 +3 0.079906920 1 +4 0.000340861 20 +3 0.135354815 1 +4 0.000336685 19 +3 0.215895431 1 +4 0.000359662 16 +3 0.471864560 2 +4 0.000427681 9 +3 0.103542921 1 +4 0.000380301 1 +3 0.111394516 1 +4 0.000623447 1 +3 0.135586436 1 +4 0.000662568 11 +4 0.000491916 57 +3 0.367199525 1 +4 0.000417002 35 +7 0.000579930 TSTP +7 3.190750507 CONT +4 0.000593766 7 +4 0.000284779 774 +3 5.471359994 1 +4 0.000459874 16 +3 0.153533655 1 +4 0.000361816 20 +3 0.469318465 1 +3 0.007847296 1 +3 0.845079062 1 +3 0.035052113 1 +4 0.000355537 18 +3 0.208313541 1 +4 0.000436611 22 +3 0.206993239 1 +4 0.000425016 17 +3 0.231936612 2 +4 0.000426777 34 +3 0.159141599 1 +4 0.000405512 55 +3 0.135576787 1 +4 0.000343081 18 +3 0.175634789 1 +4 0.000441921 55 +3 0.072012783 1 +4 0.000351657 18 +3 0.127822426 1 +4 0.000455363 55 +3 0.327044101 1 +4 0.000375474 8 +3 0.063577551 1 +4 0.000349591 1 +3 0.159970670 1 +4 0.000353036 1 +3 0.103682984 1 +4 0.000424628 1 +4 0.000792283 10 +4 0.000364645 58 +3 1.078671651 1 +4 0.000391093 34 +7 0.000513596 TSTP +7 2.591065402 CONT +4 0.000601346 7 +4 0.000287188 791 +3 37.760831992 1 +4 0.000443768 14 +3 0.160747888 1 +4 0.000344691 14 +3 0.133686815 1 +4 0.000334620 14 +3 0.263782102 1 +4 0.000373509 44 +3 0.191557949 1 +4 0.000363541 16 +3 0.295618804 1 +4 0.000389317 16 +3 0.415866786 1 +4 0.000372879 19 +3 0.175714516 1 +4 0.000381307 18 +3 0.095311527 1 +4 0.000376169 18 +3 0.143728133 1 +4 0.000357376 17 +3 0.143807808 1 +4 0.000395966 18 +3 0.095362582 1 +4 0.000329435 17 +3 0.576008873 1 +4 0.000456409 18 +3 0.135118685 1 +4 0.000373175 18 +3 0.023614825 1 +4 0.000400278 18 +3 0.199667163 1 +4 0.000344809 18 +3 0.087976135 1 +4 0.000370895 18 +3 0.095574375 1 +4 0.000329680 18 +3 0.199431335 1 +4 0.000372131 18 +3 0.127554755 1 +4 0.000392708 18 +3 0.192014997 1 +4 0.000427810 18 +3 0.215260752 1 +4 0.000394722 18 +3 0.183626456 1 +4 0.000400192 18 +3 0.079732331 1 +4 0.000387065 17 +3 0.232420431 1 +4 0.000491812 18 +3 0.166613868 1 +4 0.000495342 18 +3 0.071768069 1 +4 0.000442951 19 +3 0.127220424 1 +4 0.000356692 18 +3 0.137877295 1 +4 0.000415021 17 +3 0.181293341 1 +4 0.000358763 18 +3 0.095706054 1 +4 0.000354026 18 +3 0.088033930 1 +4 0.000345101 17 +3 0.375264587 1 +4 0.000490245 18 +3 0.071473917 1 +4 0.000417871 18 +3 0.135625942 1 +4 0.000380041 18 +3 0.119745699 1 +4 0.000368423 18 +3 0.071518698 1 +4 0.000412694 19 +3 0.087535976 1 +4 0.000355199 18 +3 0.095721416 1 +4 0.000397695 17 +3 0.167747682 1 +4 0.000332670 18 +3 0.079805314 1 +4 0.000417932 18 +3 0.119643272 1 +4 0.000352331 18 +3 0.223328679 1 +4 0.000396868 18 +3 0.303678505 2 +4 0.000380271 9 +3 0.047529437 1 +4 0.000363105 1 +3 0.224008517 1 +4 0.000337254 1 +3 0.207354297 1 +4 0.000399690 1 +4 0.000906479 10 +4 0.000402682 61 +3 1444.511782296 1 +4 0.000357469 35 +3 1.342687924 1 +4 0.000366400 14 +3 0.407610514 1 +4 0.000351696 33 +3 0.520420433 1 +4 0.000350931 16 +3 0.230857014 1 +4 0.000341388 14 +3 0.159793954 1 +4 0.000346996 28 +3 0.159601748 1 +4 0.000366510 16 +3 0.247626520 1 +4 0.000406626 14 +3 0.143416056 1 +4 0.000355414 28 +3 0.143689211 1 +4 0.000331886 17 +3 0.247721225 1 +4 0.000343072 14 +3 0.112647575 1 +4 0.000342353 24 +3 0.222669051 1 +4 0.000339199 17 +3 0.185998654 1 +4 0.000370907 16 +3 1.949534608 1 +4 0.000351397 16 +3 3.199702184 1 +4 0.000367257 18 +3 0.177412774 1 +4 0.000310564 17 +3 0.149758084 1 +4 0.000399511 18 +3 0.137634608 1 +4 0.000328197 17 +3 0.630029674 1 +4 0.000364345 31 +3 0.008581525 1 +4 0.000315502 26 +3 0.606622757 1 +4 0.000342426 17 +3 0.183407419 1 +4 0.000354683 18 +3 0.551780711 2 +4 0.000353001 34 +3 0.319603902 1 +4 0.000324205 17 +3 37.505124390 2 +4 0.109937326 1 +4 0.000284505 53 +3 0.314168709 1 +4 0.000448015 16 +3 0.351243330 1 +4 0.000329283 14 +3 0.247724391 1 +4 0.000348110 19 +3 0.935489659 2 +4 0.000358535 34 +3 0.255623807 1 +4 0.000348768 1 +3 0.186146414 1 +4 0.000360970 1 +3 0.213625304 1 +4 0.000367568 16 +3 0.191209864 1 +4 0.000348053 30 +3 0.311505848 1 +4 0.000407475 19 +3 0.111493980 1 +4 0.000336532 18 +3 0.047993277 1 +4 0.000317649 17 +3 0.415678954 1 +4 0.000349863 18 +3 62.666060129 2 +4 0.000606532 931 +3 4.375431732 1 +4 0.000582261 864 +3 4.007561683 1 +4 0.000606428 920 +3 0.615130627 1 +4 0.000395265 152 +3 0.623644967 1 +4 0.000464766 85 +3 0.500366140 1 +4 0.000387863 36 +3 0.082937457 1 +4 0.000538294 46 +3 0.082774391 1 +4 0.000439587 69 +3 0.900148919 1 +4 0.000413634 15 +3 0.500630508 1 +4 0.000370006 17 +3 0.082212526 1 +4 0.000358776 17 +3 0.458020142 1 +4 0.000352446 15 +3 0.741673343 1 +3 0.153841053 1 +4 0.000382350 111 +3 8.134125152 1 +4 0.000409732 15 +3 0.185466395 1 +4 0.000328110 15 +3 0.101576738 1 +4 0.000327092 17 +3 0.185854954 1 +4 0.000335670 17 +3 0.149600279 1 +4 0.000362093 16 +3 0.423566779 1 +4 0.000340985 30 +3 0.247704807 1 +4 0.000415144 33 +3 0.698039358 1 +4 0.109954509 30 +3 1.183854845 1 +4 0.000587227 743 +3 6.823896413 1 +4 0.000639671 794 +3 3.543257902 1 +4 0.000353344 18 +3 0.217631915 1 +4 0.000336459 17 +3 0.197417741 1 +4 0.000349473 19 +3 0.187658067 1 +4 0.000335192 16 +3 151.345510542 1 +4 0.000365247 16 +3 0.590975836 1 +4 0.000393298 16 +3 0.463692786 1 +3 0.145831771 1 +4 0.000398722 114 +3 0.557795268 1 +4 0.000392380 52 +3 0.936298833 1 +4 0.000358777 15 +3 0.680089190 1 +4 0.000346781 17 +3 5.979960398 44 +4 0.000422221 96 +3 0.554367727 2 +3 0.162133998 1 +4 0.000396206 82 +3 0.141456616 1 +4 0.000407998 19 +3 0.191551242 1 +3 0.146260670 1 +4 0.000428847 112 +3 0.205228187 1 +4 0.000340512 16 +3 0.127846804 1 +4 0.000330859 16 +3 0.185792950 1 +4 0.000331302 16 +3 3.933610220 1 +4 0.000343234 16 +3 1.863725787 1 +4 0.000356375 23 +3 0.327644144 1 +4 0.000344743 48 +3 0.063482729 1 +4 0.000348582 48 +3 0.279936861 1 +4 0.000340867 48 +3 0.271691438 1 +4 0.000336898 48 +3 0.319538697 1 +4 0.000331634 48 +3 1.167651877 1 +4 0.000356329 48 +3 0.167654474 1 +4 0.000345840 49 +3 0.071693547 1 +4 0.000326721 48 +3 0.247570408 1 +4 0.000370740 48 +3 0.615741893 1 +4 0.000464667 16 +3 0.215612366 1 +4 0.000355715 17 +3 0.599537487 1 +4 0.000358534 48 +3 0.087817960 1 +4 0.000340005 48 +3 0.087692776 1 +4 0.000326620 48 +3 0.239713026 1 +4 0.000346762 48 +3 0.255488394 1 +4 0.000369661 48 +3 0.280455348 1 +4 0.000349905 48 +3 0.310991988 1 +4 0.000369127 16 +3 0.359660061 1 +4 0.000341556 17 +3 0.119479788 1 +4 0.000413928 48 +3 0.105672374 1 +4 0.000362396 49 +3 0.453571012 1 +4 0.000373295 48 +3 0.799768052 1 +4 0.000408525 48 +3 0.487553934 1 +4 0.000443791 48 +3 2.456102815 1 +4 0.000354594 48 +3 79.488811236 1 +4 0.110023221 32 +3 0.715179515 1 +4 0.000381592 16 +3 0.391509277 1 +4 0.000393526 29 +3 0.943740666 1 +4 0.000349374 17 +3 0.207526246 1 +4 0.000485668 17 +3 0.143704057 1 +4 0.000348007 17 +3 0.143435378 1 +4 0.000368142 17 +3 0.772597412 1 +4 0.110063985 36 +3 13.022095358 1 +4 0.000403981 16 +3 0.318925791 1 +4 0.000336517 16 +3 0.231729783 1 +4 0.000376458 22 +3 0.327623023 1 +4 0.000356997 23 +3 4.863969747 1 +4 0.000400224 19 +3 0.271571541 1 +3 0.121996556 1 +4 0.000371499 114 +3 1.221527164 1 +4 0.000358054 10 +3 0.135648707 1 +4 0.000346341 1 +3 0.191734839 1 +4 0.000327609 1 +3 0.855719441 1 +4 0.000405426 1 +4 0.000913135 10 +4 0.000366858 59 +3 1.639324634 1 +4 0.000346597 36 +7 0.000524874 TSTP +7 7.390665382 CONT +4 0.000577837 7 +4 0.000278006 890 +3 0.943025876 1 +4 0.000390314 36 +7 0.000583277 TSTP +7 3.655223483 CONT +4 0.000662626 7 +4 0.000274567 832 +3 0.238863751 1 +4 0.000341171 10 +3 0.151505929 1 +4 0.000391834 1 +3 0.137883068 1 +4 0.000322436 1 +3 0.109515330 1 +4 0.000404666 1 +3 0.103717451 1 +4 0.000357360 37 +3 0.815709527 1 +4 0.000352853 15 +3 0.159532468 1 +4 0.000363590 27 +3 0.135611441 1 +4 0.000325560 17 +3 0.279702847 2 +4 0.000381860 10 +3 0.111647606 1 +4 0.000319571 1 +3 0.151625318 1 +4 0.000400472 1 +3 0.111620405 1 +4 0.000357341 1 +4 0.000349341 70 +3 0.271431357 1 +4 0.000442392 36 +7 0.000589559 TSTP +7 5.007416369 CONT +4 0.000611646 7 +4 0.000285315 894 +3 139.067795008 1 +4 0.000366007 10 +3 0.175382851 1 +4 0.000358223 1 +3 0.111476767 1 +4 0.000329678 1 +3 0.175716778 1 +4 0.000320858 1 +3 0.079671236 1 +4 0.000316534 1 +3 0.151560952 1 +4 0.000326277 1 +3 0.488409850 1 +4 0.000363235 2 +3 0.190930680 1 +4 0.000375687 1 +3 0.087882121 1 +4 0.000362324 1 +3 0.191550670 1 +4 0.000377130 1 +3 0.079498486 1 +4 0.000329328 1 +3 0.159837929 1 +4 0.000368066 1 +3 0.191679354 1 +4 0.000347134 1 +3 0.111522730 1 +4 0.000495846 230 +3 0.935864352 1 +4 0.000425402 92 +3 0.471305015 1 +4 0.000458137 99 +3 0.500865580 1 +4 0.000398986 47 +3 0.082631283 1 +4 0.000414903 84 +3 0.183422133 1 +4 0.000400867 19 +3 0.500266352 1 +4 0.000375323 20 +3 0.083307165 1 +4 0.000331403 18 +3 0.415194545 1 +4 0.000402584 20 +3 1.023936226 1 +4 0.000497916 101 +3 0.500055301 1 +4 0.000417051 47 +3 0.082510846 1 +4 0.000372054 34 +3 0.224011651 1 +4 0.000378891 18 +3 0.500202057 1 +4 0.000358539 20 +3 0.082465930 1 +4 0.000364336 17 +3 1.576237965 1 +4 0.000351901 17 +3 0.500393152 1 +4 0.000424266 17 +3 0.082998040 1 +4 0.000337146 17 +3 0.083361640 1 +4 0.000366396 17 +3 0.083026828 1 +4 0.000328046 17 +3 0.322675228 1 +4 0.000358470 17 +3 0.197462184 1 +4 0.000327079 17 +3 8.983859141 1 +4 0.000370774 19 +3 0.185493393 1 +4 0.000377384 20 +3 0.245713013 1 +4 0.000360578 18 +3 1.775859748 1 +4 0.000390726 17 +3 0.217434224 1 +4 0.000437951 17 +3 0.613590208 1 +4 0.000343518 17 +3 0.401991192 1 +4 0.000365295 17 +3 0.613633274 1 +4 0.000386015 23 +3 4.831604582 2 +4 0.000418606 24 +3 0.609550222 1 +4 0.000349183 17 +3 1.197892808 1 +4 0.000392443 18 +3 0.743417992 1 +4 0.000355778 31 +3 0.135791222 1 +4 0.000363517 41 +3 0.255623210 1 +4 0.000348819 41 +3 0.135439706 1 +4 0.000355313 41 +3 0.127642166 1 +4 0.000343773 41 +3 0.087597337 1 +4 0.000413648 41 +3 0.511757339 1 +4 0.000386501 17 +3 0.295549405 1 +4 0.000354872 17 +3 0.247871391 1 +4 0.000336372 18 +3 0.423687804 1 +4 0.000366803 18 +3 0.312824699 1 +4 0.000346374 18 +3 0.166498953 1 +4 0.000392980 18 +3 0.175434190 1 +4 0.000342254 18 +3 0.048255175 1 +4 0.000380756 41 +3 0.407030000 2 +4 0.000370220 22 +3 0.217738714 1 +4 0.000353696 17 +3 0.181536597 1 +4 0.000332401 18 +3 0.231541475 1 +4 0.000345720 13 +3 0.415750621 1 +4 0.000338210 32 +4 0.000414623 47 +3 0.759277247 1 +4 0.000397349 17 +3 0.169834065 1 +4 0.000337775 17 +3 0.261383628 1 +3 0.064153359 1 +4 0.000348148 4 +3 0.231520166 1 +3 0.056531856 1 +4 0.000382853 4 +3 1.895342307 1 +4 0.000456643 17 +3 0.201356339 1 +4 0.000378326 17 +3 0.181691568 1 +4 0.000363113 17 +3 0.249584295 1 +4 0.000389502 14 +3 0.165768928 1 +4 0.000340410 17 +3 0.305572986 1 +4 0.000431361 18 +3 0.317493918 1 +4 0.000350985 24 +3 0.184487115 1 +4 0.000458530 40 +3 0.126821620 1 +4 0.000338513 41 +3 0.151634183 1 +4 0.000388402 40 +3 0.087626685 1 +4 0.000340338 40 +3 0.175741439 1 +4 0.000438664 40 +3 0.191535949 1 +4 0.000441000 40 +3 2.983589796 1 +4 0.000394143 36 +3 3.876142022 1 +4 0.110035167 33 +3 2.245808557 1 +4 0.000385760 9 +3 0.479480256 1 +4 0.000346419 1 +3 0.175540002 1 +4 0.000401919 1 +3 0.144704507 1 +4 0.000414907 1 +4 0.000994584 33 +4 0.000359030 234 +3 1.077365878 1 +4 0.000452370 1 +4 0.000529473 39 +3 0.975461430 1 +4 0.000369082 10 +3 0.079079752 1 +4 0.000333556 1 +3 0.111602431 1 +4 0.000355467 1 +3 0.143759103 1 +4 0.000351076 1 +3 0.079804287 1 +4 0.000390138 1 +3 0.159501313 1 +4 0.000336925 1 +3 0.191638893 1 +4 0.000321370 1 +3 0.087790847 1 +4 0.000365868 39 +3 0.951692897 1 +4 0.000388405 20 +4 0.000296957 44 +3 0.943170547 1 +4 0.000385451 39 +3 1.015715447 1 +4 0.000368926 18 +3 0.495572904 1 +4 0.000357103 27 +3 0.271727558 1 +4 0.000354500 41 +3 0.279593281 1 +4 0.000368767 41 +3 0.279729949 1 +4 0.000344578 41 +3 0.119512584 1 +4 0.000335820 41 +3 0.127658598 1 +4 0.000350615 41 +3 0.112015544 1 +4 0.000350583 41 +3 0.359414507 2 +4 0.001179038 37 +4 0.000369617 50 +3 0.152403225 1 +4 0.000364549 18 +3 0.157671627 1 +4 0.000394073 17 +3 0.145641042 1 +4 0.000347979 17 +3 0.309696044 1 +4 0.000435866 79 +3 0.375578806 1 +4 0.000369602 17 +3 0.367673524 1 +4 0.000357062 17 +3 0.159409371 1 +3 0.072207178 1 +4 0.000343349 4 +3 0.159688152 1 +3 0.055847137 1 +4 0.000362818 4 +3 0.671784890 1 +4 0.000363347 7 +3 0.343688525 1 +4 0.000415495 6 +3 0.543510360 1 +4 0.000344138 17 +3 0.209642619 1 +4 0.000352097 17 +3 0.181762731 1 +4 0.000331216 17 +3 0.201586802 1 +4 0.000345010 18 +3 0.365829346 1 +4 0.000350518 17 +3 0.137561319 1 +4 0.000347562 18 +3 0.197610494 1 +4 0.000367008 17 +3 0.319585496 1 +4 0.000425341 31 +3 0.223569372 1 +4 0.000376930 22 +3 0.263653708 1 +4 0.000353015 22 +3 0.095704747 1 +4 0.000337212 22 +3 0.031598269 1 +4 0.000390594 23 +3 0.159870952 1 +4 0.000373548 22 +3 0.087394680 1 +4 0.000441986 22 +3 0.135671073 1 +4 0.000346682 17 +3 0.171746131 1 +4 0.000372517 17 +3 0.123510868 1 +4 0.000334221 18 +3 0.039498943 1 +4 0.000397046 19 +3 0.095672146 1 +4 0.000325363 18 +3 0.143754279 1 +4 0.000368239 18 +3 0.223605386 1 +4 0.000426063 22 +3 0.471610261 2 +4 0.000363802 10 +3 0.015554665 1 +4 0.000331508 1 +3 0.519817760 1 +4 0.000334263 1 +3 0.095415578 1 +4 0.000337575 1 +3 0.207982629 1 +4 0.000324473 1 +3 0.199753320 1 +4 0.000356718 1 +4 0.000355183 71 +3 0.631202493 1 +4 0.000368000 36 +7 0.000533702 TSTP +7 9.719803852 CONT +4 0.000717076 7 +4 0.000281202 935 +3 1.910931388 1 +4 0.000374954 27 +3 0.791476970 1 +4 0.000428506 22 +3 0.503506447 1 +4 0.000359931 22 +3 0.783341366 1 +4 0.110007030 31 +3 1.274470397 1 +4 0.000387502 10 +3 0.535680050 1 +4 0.000383579 1 +3 0.231451119 1 +4 0.000348086 1 +3 0.567827770 1 +4 0.000370217 1 +4 0.000969074 10 +4 0.000368597 61 +3 0.390582206 1 +4 0.000343682 36 +7 0.000550450 TSTP +7 7.671269982 CONT +4 0.000521260 7 +4 0.000313171 937 +3 3.359782410 1 +4 0.000585741 735 +3 0.582616667 1 +4 0.000372238 9 +3 0.239602178 1 +4 0.000379157 1 +3 0.071530109 1 +4 0.000409901 1 +3 0.047637382 1 +4 0.000337421 1 +3 0.151664776 1 +4 0.000346153 1 +3 0.159637490 1 +4 0.000337865 1 +3 0.095592779 1 +4 0.000543052 483 +3 1.175692739 1 +4 0.000522195 459 +3 0.959460007 1 +4 0.000413312 10 +3 0.087665908 1 +4 0.000588781 901 +3 20.248284711 1 +4 0.000628499 735 +3 0.703151451 1 +4 0.000394160 16 +3 0.500440767 1 +4 0.000364519 19 +3 0.083350811 1 +4 0.000339014 16 +3 0.083368775 1 +4 0.000367441 16 +3 0.082421879 1 +4 0.000334253 16 +3 0.083399387 1 +4 0.000373818 16 +3 0.082500566 1 +4 0.000352212 18 +3 0.083488959 1 +4 0.000393128 16 +3 0.083496147 1 +4 0.000331955 16 +3 0.083871243 1 +4 0.000343925 16 +3 0.081931645 1 +4 0.000370064 17 +3 0.082703361 1 +4 0.000366468 19 +3 0.083019623 1 +4 0.000334439 15 +3 20.326566240 1 +4 0.000471274 48 +3 0.327106449 1 +4 0.000353524 17 +3 0.311706322 1 +4 0.000347343 15 +3 0.303618878 1 +4 0.000346708 18 +3 0.728839583 1 +4 0.000354561 17 +3 0.238385696 1 +4 0.000352209 17 +3 0.112615975 1 +4 0.000399816 17 +3 0.120579656 1 +4 0.000385619 17 +3 0.133655702 1 +4 0.000344040 17 +3 0.095466522 1 +4 0.000360328 16 +3 3.910454605 17 +4 0.000387696 34 +3 0.882055600 1 +4 0.000366495 17 +3 0.703083657 1 +4 0.109998917 32 +3 12.138355281 1 +4 0.000353524 17 +3 0.391376221 1 +3 0.114111346 1 +4 0.000390180 30 +3 0.733514800 2 +4 0.000318313 43 +3 0.296185035 1 +4 0.000370741 10 +3 0.095073316 1 +4 0.000320445 1 +3 0.159714469 1 +4 0.000398610 1 +3 0.671756082 1 +4 0.000389472 1 +4 0.000316261 54 +4 0.000335938 16 +3 3.918991433 1 +4 0.000381639 39 +3 1.391820866 1 +3 0.122572983 1 +4 0.000360413 30 +3 0.204894183 1 +4 0.000384831 86 +3 0.271578260 1 +4 0.000331163 18 +3 0.191741559 1 +4 0.000335189 24 +3 0.199800770 1 +4 0.000354462 54 +3 0.303563006 2 +4 0.000393336 37 +3 0.479595529 1 +4 0.000347304 17 +3 0.169714473 1 +4 0.000343137 17 +3 1.181838714 1 +4 0.000350867 17 +3 0.215787302 1 +3 0.055719028 1 +4 0.000390356 4 +3 0.183565376 1 +3 0.048098033 1 +4 0.000346186 4 +3 0.183546432 1 +3 0.064027289 1 +4 0.000349285 4 +3 0.183726774 1 +3 0.064156076 1 +4 0.000362277 4 +3 0.215339578 1 +3 0.072071346 1 +4 0.000363777 4 +3 0.231873889 1 +3 0.063969603 1 +4 0.000402839 4 +3 0.263444177 1 +3 0.063964083 1 +4 0.000342881 4 +3 0.343905078 1 +3 0.071787058 1 +4 0.000406727 4 +3 0.383604382 1 +4 0.000364356 4 +3 0.487710026 1 +4 0.000347111 10 +3 0.111479835 1 +4 0.000339801 1 +3 0.159905658 1 +4 0.000329563 1 +3 0.151681622 1 +4 0.000380117 1 +4 0.000362919 71 +3 0.351505640 1 +4 0.000382206 36 +7 0.000580633 TSTP +7 32.463933608 CONT +4 0.000537317 7 +4 0.000244099 818 +3 47.356867926 1 +4 0.109957000 1 +3 0.806463708 1 +4 0.000358654 26 +3 0.263077121 1 +4 0.000404056 21 +3 0.201777643 1 +4 0.000340541 22 +3 0.181498047 1 +4 0.000391365 25 +3 0.201749986 1 +4 0.000410354 26 +3 0.213830902 1 +4 0.000374860 29 +3 0.242743477 1 +4 0.000394934 30 +3 0.244272733 1 +4 0.000385118 33 +3 0.209309059 1 +4 0.000340397 34 +3 0.214094906 1 +4 0.000378032 32 +3 0.251108045 1 +4 0.000372349 41 +3 0.587937535 1 +4 0.000481045 90 +3 0.841658979 1 +4 0.000494395 486 +3 1.341390713 1 +4 0.000486133 24 +3 0.519694376 1 +4 0.000393747 155 +3 0.831485644 1 +4 0.000447253 77 +3 0.169721938 1 +4 0.000424379 89 +3 0.173329315 1 +4 0.000399653 37 +3 0.695943082 1 +4 0.000396328 19 +3 0.217744022 1 +4 0.000371435 19 +3 1.013539345 1 +4 0.000351822 19 +3 0.201679794 1 +4 0.000371668 16 +3 0.381651959 1 +4 0.000347085 16 +3 0.111281352 1 +4 0.000372287 17 +3 40.945109689 2 +4 0.000383051 1 +3 0.146046290 1 +4 0.000424718 114 +3 0.293110069 1 +4 0.000349116 18 +3 0.343611868 1 +4 0.000465799 21 +3 0.152039383 1 +4 0.000341033 18 +3 0.895491197 1 +4 0.000431804 85 +3 0.121643026 1 +4 0.000380059 114 +3 0.717740102 1 +4 0.000388116 10 +3 0.136135528 1 +4 0.000338595 1 +3 0.159004015 1 +4 0.000358829 1 +3 0.127435366 1 +4 0.000419382 1 +4 0.000360168 69 +3 0.351579698 1 +4 0.000340105 36 +7 0.000542662 TSTP +7 3.574908791 CONT +4 0.000647797 7 +4 0.000365803 7 +4 0.000333531 932 +3 25.144213797 1 +4 0.000398416 15 +3 0.498848979 1 +4 0.000351256 15 +3 0.082812596 1 +4 0.000329004 15 +3 0.083143137 1 +4 0.000348013 14 +3 0.082660556 1 +4 0.000387320 46 +3 0.082704152 1 +4 0.000439266 69 +3 0.083314713 1 +4 0.000433380 68 +3 1.363337851 1 +4 0.000425625 15 +3 0.535453563 1 +3 0.131077452 1 +4 0.000364806 28 +3 0.476484778 1 +4 0.000402903 36 +3 0.169805705 1 +4 0.000360465 17 +3 0.157433074 1 +4 0.000344571 17 +3 0.161739168 1 +4 0.000359301 15 +3 0.165484321 1 +4 0.000349031 15 +3 1.320462291 1 +4 0.000400814 85 +3 0.855094187 1 +4 0.000374453 17 +3 0.185572957 1 +4 0.000418129 16 +3 0.558124604 1 +3 0.063631937 1 +4 0.000407487 27 +3 0.199283070 1 +4 0.000443065 17 +3 0.112006975 1 +4 0.000373057 17 +3 0.151304036 1 +4 0.000393661 17 +3 0.223637698 1 +4 0.000412293 17 +3 0.239479322 1 +4 0.000353837 28 +3 0.758172425 1 +4 0.109982937 32 +3 3.740049129 1 +4 0.000367935 10 +3 0.119621049 1 +4 0.000373245 1 +3 0.143618739 1 +4 0.000352990 1 +3 0.127356695 1 +4 0.000448660 1 +4 0.000735504 10 +4 0.000317788 60 +3 0.254609036 1 +4 0.000391575 38 +3 0.153508364 1 +4 0.000345369 16 +3 0.158001131 1 +4 0.000370827 16 +3 0.407492826 1 +3 0.122224923 1 +4 0.000402076 121 +3 0.213027993 1 +4 0.000368828 10 +3 0.160033352 1 +4 0.000312779 1 +3 0.127679358 1 +4 0.000325689 1 +3 0.111858366 1 +4 0.000427966 1 +4 0.000728807 10 +4 0.000310549 59 +3 0.358674147 1 +4 0.000381775 36 +7 0.000556280 TSTP +7 3.398953112 CONT +4 0.000585693 7 +4 0.000258047 816 +3 8.359823493 1 +4 0.000364980 15 +3 0.398872193 1 +4 0.000355369 15 +3 0.223880601 1 +3 0.113803831 1 +4 0.000440426 124 +3 0.093815211 1 +4 0.000425262 71 +3 0.311346433 1 +4 0.000346301 10 +3 0.079595192 1 +4 0.000380864 1 +3 0.144039791 1 +4 0.000317825 1 +3 0.135665510 1 +4 0.000416861 1 +4 0.000694595 10 +4 0.000313831 60 +3 0.631121519 1 +4 0.000437524 36 +7 0.000499301 TSTP +7 1.455005436 CONT +4 0.000590497 7 +4 0.000254139 819 +3 9.727355907 1 +4 0.000415913 18 +3 0.463029287 1 +4 0.000347850 19 +3 0.202215316 1 +4 0.000372760 16 +3 0.829066678 1 +3 0.122203769 1 +4 0.000439313 114 +3 0.453506556 1 +4 0.000421375 10 +3 0.167711639 1 +4 0.000365479 1 +3 0.159427775 1 +4 0.000336347 1 +3 0.175990250 1 +4 0.000538887 11 +4 0.000378672 60 +3 0.439932577 1 +4 0.000405067 36 +7 0.000552412 TSTP +7 1.518019485 CONT +4 0.000663787 7 +4 0.000252195 864 +3 19.912570325 1 +4 0.000392436 16 +3 0.192646540 1 +4 0.000357344 18 +3 0.165647707 1 +4 0.000375569 17 +3 0.156129872 1 +4 0.000346051 19 +3 0.259497708 1 +3 0.122179663 1 +4 0.000393729 29 +3 0.213048153 1 +4 0.000370261 36 +3 0.146222355 1 +4 0.000344307 17 +3 0.141011473 1 +4 0.000349990 19 +3 0.231654842 1 +4 0.000402098 82 +3 1.559949739 1 +4 0.000411193 17 +3 0.231403233 1 +4 0.000346807 23 +3 0.071911835 1 +4 0.000379667 18 +3 0.119365932 1 +4 0.000346694 18 +3 0.071560426 1 +4 0.000376899 19 +3 0.159663650 1 +4 0.000362636 18 +3 0.167663410 1 +4 0.000353339 18 +3 0.079650029 1 +4 0.000406404 18 +3 0.527922390 2 +4 0.000543237 32 +3 0.151624218 1 +4 0.001092944 17 +3 0.160825397 1 +4 0.000389846 17 +3 0.165772322 1 +4 0.000392250 16 +3 0.391473104 1 +3 0.071853894 1 +4 0.000411310 27 +3 0.175424679 1 +4 0.000350117 17 +3 0.095606766 1 +4 0.000384163 17 +3 0.095548028 1 +4 0.000345581 17 +3 0.176055076 1 +4 0.000386596 17 +3 0.199374962 1 +4 0.000351586 34 +3 0.671730466 2 +4 0.000465209 10 +3 0.087443393 1 +4 0.000336542 1 +3 0.127659853 1 +4 0.000395755 1 +3 0.111659148 1 +4 0.000357388 1 +4 0.000365768 70 +3 0.359942717 1 +4 0.000474416 36 +7 0.000526799 TSTP +7 16.391336233 CONT +4 0.000606739 7 +4 0.000252703 825 +3 9.423126066 1 +4 0.000404453 17 +3 0.103478360 1 +4 0.000379639 17 +3 0.215753975 1 +3 0.055777719 1 +4 0.000374798 27 +3 2.192310846 1 +4 0.000364538 18 +3 0.095017669 1 +4 0.000374579 17 +3 0.167858272 1 +4 0.000394995 17 +3 0.183487470 1 +4 0.000328229 17 +3 0.424749918 2 +4 0.000375944 14 +3 0.086373079 1 +4 0.000342026 1 +3 0.143957741 1 +4 0.000323698 1 +3 0.095552429 1 +4 0.000351824 1 +4 0.000369679 14 +4 0.000331407 56 +3 0.407347448 1 +4 0.000387372 36 +7 0.000639935 TSTP +7 3.249297749 CONT +4 0.000674732 7 +4 0.000254330 824 +3 83.655961172 1 +4 0.000430093 19 +3 0.271188534 1 +4 0.000394617 19 +3 27.608941812 1 +3 0.161186568 1 +4 0.000450516 124 +3 0.437705088 1 +3 0.079896297 1 +4 0.000395445 27 +3 0.207743933 1 +4 0.000356038 17 +3 0.111692035 1 +4 0.000370128 17 +3 0.095509613 1 +4 0.000337918 16 +3 0.112097732 1 +4 0.000401108 17 +3 0.063059306 1 +4 0.000361219 36 +3 0.552280978 1 +4 0.000415916 16 +3 0.135428657 1 +4 0.000336479 16 +3 0.367466610 1 +4 0.000411259 16 +3 0.247878161 1 +4 0.000349830 16 +3 0.103207817 1 +4 0.000381731 17 +3 0.207641973 1 +4 0.000394821 17 +3 0.111713293 1 +4 0.000365416 16 +3 0.079649048 1 +4 0.000356122 16 +3 0.795727480 1 +4 0.110053931 32 +3 0.038080066 1 +4 0.000342743 17 +3 0.279446216 1 +4 0.000374827 23 +3 0.295697084 1 +4 0.000354596 18 +3 0.535620025 1 +4 0.000454264 18 +3 0.095457715 1 +4 0.000349601 18 +3 0.103619461 1 +4 0.000371113 19 +3 0.247658136 1 +4 0.000352418 18 +3 0.223712040 1 +4 0.000394071 18 +3 0.215535872 1 +4 0.000349938 18 +3 0.399676754 2 +4 0.000391624 10 +3 0.120019780 1 +4 0.000385700 1 +3 0.287262291 1 +4 0.000410793 1 +3 5.687972903 1 +4 0.000422720 1 +4 0.000835771 10 +4 0.000338408 60 +3 3.654443851 1 +4 0.000358954 36 +7 0.000568777 TSTP +7 2.735311839 CONT +4 0.000617805 7 +4 0.000258026 872 +3 6.247684694 1 +4 0.000381665 17 +3 0.271033476 1 +3 0.080017407 1 +4 0.000376864 21 +3 0.183514484 1 +4 0.000400388 7 +3 0.543949651 1 +4 0.000355286 10 +3 0.119603286 1 +4 0.000363348 1 +3 0.127447163 1 +4 0.000341483 1 +3 0.327721799 1 +4 0.000428809 1 +4 0.000707831 10 +4 0.000323420 60 +3 0.343068111 1 +4 0.000514657 36 +7 0.000473004 TSTP +7 14.439862195 CONT +4 0.000539168 7 +4 0.000254087 866 +3 0.614218693 1 +4 0.000363210 16 +3 0.177673946 1 +4 0.000353681 16 +3 0.157793450 1 +4 0.000325782 16 +3 0.161671660 1 +4 0.000395594 17 +3 0.157483187 1 +4 0.000332878 16 +3 0.123732328 1 +4 0.000401784 16 +3 0.187796972 1 +4 0.000357585 22 +3 0.119318881 1 +4 0.000324225 31 +3 0.138162368 1 +4 0.000379037 33 +3 0.117380233 1 +4 0.000358787 35 +3 0.359435429 2 +4 0.000397934 10 +3 0.479762921 1 +4 0.000361008 42 +3 0.311959467 1 +4 0.000390897 30 +3 0.135228283 1 +4 0.000363360 31 +3 0.592821208 2 +4 0.000371179 32 +3 0.102464558 1 +4 0.000401580 23 +3 0.271758514 1 +4 0.000352094 10 +3 0.095461652 1 +4 0.000352317 1 +3 0.175740178 1 +4 0.000360447 1 +3 0.119944584 1 +4 0.000369823 1 +4 0.000418330 54 +4 0.000290714 16 +3 0.535003752 1 +4 0.000347906 36 +7 0.000540252 TSTP +7 8.119422644 CONT +4 0.000550546 7 +4 0.000270883 7 +4 0.000309568 863 +3 4.439312397 1 +4 0.000422377 10 +3 0.126842073 1 +4 0.000374980 1 +3 0.191573294 1 +4 0.000343883 1 +3 0.104338672 1 +4 0.000337400 1 +3 0.095097124 1 +4 0.000333834 1 +3 0.183571932 1 +4 0.000343439 1 +3 0.071851031 1 +4 0.000341209 1 +3 0.215747016 1 +4 0.000416855 21 +4 0.000328367 433 +3 1.303495007 1 +3 0.105633305 1 +4 0.000369836 30 +3 0.317692992 1 +4 0.000596648 512 +3 2.639519736 1 +4 0.000636971 842 +3 0.153213684 1 +4 0.000353795 2 +3 0.445780954 1 +4 0.000386371 61 +3 0.823774769 1 +4 0.000441965 10 +3 0.097360557 1 +4 0.000493182 1 +3 0.157577353 1 +4 0.000729707 11 +4 0.000470530 61 +3 3.390825751 1 +4 0.000405386 39 +3 0.255568652 1 +3 0.055907219 1 +4 0.000356174 28 +3 0.223697836 1 +4 0.000363714 18 +3 0.071906737 1 +4 0.000392293 18 +3 0.137411001 1 +4 0.000339774 18 +3 0.069925847 1 +4 0.000366418 18 +3 0.415281632 2 +4 0.000369014 14 +3 0.175719944 1 +4 0.000341084 1 +3 0.159555979 1 +4 0.000344904 1 +3 0.111749441 1 +4 0.000375281 1 +4 0.000410804 71 +3 6.504533238 1 +4 0.000361531 36 +7 0.000558118 TSTP +7 1.278101661 CONT +4 0.000811650 7 +4 0.000376336 769 +3 11.511743118 1 +4 0.000364527 17 +3 0.161438531 1 +4 0.000345224 17 +3 0.157323414 1 +4 0.000537486 18 +3 0.121528105 1 +4 0.000498558 17 +3 0.125526397 1 +4 0.000482108 19 +3 0.255732231 1 +3 0.121881198 1 +4 0.000345581 29 +3 0.213459919 1 +4 0.000395734 36 +3 0.161822173 1 +4 0.000357575 17 +3 0.157298340 1 +4 0.000412710 20 +3 0.178299484 1 +4 0.000327592 17 +3 0.237035658 1 +4 0.000416700 88 +3 0.631761843 1 +4 0.000402040 17 +3 0.151418917 1 +3 0.154220895 1 +4 0.000423284 70 +3 0.101389342 1 +4 0.000335849 17 +3 0.359970840 1 +4 0.000403114 64 +3 0.255375492 1 +4 0.000350430 17 +3 0.153935811 1 +4 0.000325999 17 +3 0.357694905 1 +4 0.000363787 18 +3 0.137455631 1 +4 0.000495269 17 +3 0.565508737 1 +3 0.047830147 1 +4 0.000532450 28 +3 0.351524429 1 +4 0.000467173 18 +3 0.071666434 1 +4 0.000641468 18 +3 0.167194718 1 +4 0.000489431 18 +3 0.200295616 1 +4 0.000551093 18 +3 0.224195045 1 +4 0.000490351 29 +3 0.942128105 2 +4 0.000420457 10 +3 0.159520647 1 +4 0.000340538 1 +3 0.191674682 1 +4 0.000341809 1 +3 0.162114470 1 +4 0.000403173 1 +4 0.000370828 71 +3 3.453730031 1 +4 0.000407152 36 +7 0.000532697 TSTP +7 1.279692927 CONT +4 0.000594321 7 +4 0.000338319 766 +3 20.543075366 1 +3 0.161678515 1 +4 0.000393388 89 +3 0.109518649 1 +4 0.000377129 77 +3 0.487449518 1 +4 0.000414332 10 +3 0.103420818 1 +4 0.000327642 1 +3 0.160021081 1 +4 0.000339209 1 +3 0.103534453 1 +4 0.000352986 1 +4 0.000362220 71 +3 11.872264722 1 +4 0.000426217 10 +3 0.143175518 1 +4 0.000337384 1 +3 0.143330589 1 +4 0.000347866 1 +3 0.095812134 1 +4 0.000395322 1 +4 0.000374560 71 +3 0.719728666 1 +4 0.000364309 36 +7 0.000545907 TSTP +7 1.382542565 CONT +4 0.000623723 7 +4 0.000296046 766 +3 9.311903448 1 +3 0.145546621 1 +4 0.000387557 79 +3 0.597650202 1 +4 0.000355720 10 +3 0.127432037 1 +4 0.000369744 1 +3 0.175848436 1 +4 0.000346841 1 +3 0.111455892 1 +4 0.000363654 1 +4 0.000784986 10 +4 0.000316427 61 +3 2.342798974 1 +4 0.000586526 81 +3 0.263320080 1 +4 0.000396667 17 +3 0.175857695 1 +4 0.000346577 18 +3 0.175300181 1 +4 0.000422884 18 +3 0.151615841 1 +4 0.000365608 5 +3 0.255672928 1 +4 0.000377346 20 +3 1.335841010 1 +4 0.000350921 10 +3 0.103478377 1 +4 0.000340388 1 +3 0.079799956 1 +4 0.000377597 1 +4 0.000340277 619 +3 0.088604932 1 +4 0.000347462 9 +3 0.110282970 1 +4 0.000362487 1 +3 0.112068737 1 +4 0.000335578 1 +3 0.137441147 1 +4 0.000356006 1 +3 0.021400111 1 +4 0.000315926 1 +3 0.343808846 1 +4 0.000695257 21 +4 0.000443236 818 +3 1.342789495 1 +4 0.000576959 740 +3 0.153934670 1 +4 0.000389186 5 +3 0.645080930 1 +4 0.000358932 10 +3 0.095733242 1 +4 0.000334965 1 +3 0.143733003 1 +4 0.000330461 1 +3 0.079904187 1 +4 0.000340350 1 +4 0.000651650 10 +4 0.000323088 61 +3 1.886982413 1 +4 0.000364249 36 +7 0.000518790 TSTP +7 1.438859082 CONT +4 0.000639886 7 +4 0.000308077 765 +3 19.960179842 1 +3 0.137318544 1 +4 0.000425193 89 +3 0.101456129 1 +4 0.000385837 78 +3 0.687735193 1 +4 0.000344463 10 +3 0.111760772 1 +4 0.000372205 1 +3 0.143536207 1 +4 0.000334583 1 +3 0.095671266 1 +4 0.000382623 1 +4 0.000308090 14 +4 0.000326265 57 +3 0.287477689 1 +4 0.000340497 36 +7 0.000549212 TSTP +7 1.334882104 CONT +4 0.000566744 7 +4 0.000445456 7 +4 0.000310448 758 +3 21.919165309 1 +4 0.000389164 17 +3 1.607860009 1 +3 0.145916570 1 +4 0.000550629 79 +3 40.887569204 1 +3 0.063226887 1 +4 0.000407176 28 +3 0.231577718 1 +4 0.000347207 18 +3 0.135826371 1 +4 0.000348097 18 +3 0.135755107 1 +4 0.000342546 18 +3 0.513437669 1 +4 0.000352245 17 +3 0.333870129 1 +4 0.000348692 17 +3 0.271457790 1 +4 0.000354921 17 +3 0.567782986 1 +4 0.000403925 17 +3 0.087387382 1 +4 0.000330600 18 +3 0.064692221 1 +4 0.000374641 41 +3 0.334386122 2 +4 0.000368782 36 +3 0.095813194 1 +4 0.000326974 17 +3 0.319688238 1 +4 0.000400214 4 +3 0.217758066 1 +4 0.000382550 6 +3 0.181472137 1 +4 0.000377069 4 +3 0.351749687 1 +4 0.000351451 17 +3 0.337577822 1 +4 0.000361249 18 +3 0.477870170 1 +4 0.000357175 17 +3 0.249462376 1 +4 0.000361629 17 +3 0.205554148 1 +4 0.000429511 17 +3 0.271772888 1 +4 0.000366700 4 +3 0.185663908 1 +4 0.000801799 4 +3 0.149332116 1 +4 0.000354948 4 +3 0.137604340 1 +4 0.000341941 4 +3 0.149596246 1 +4 0.000347968 7 +3 0.879575837 1 +4 0.000371385 6 +3 0.495575891 1 +4 0.000410648 7 +3 0.535996334 1 +4 0.000346507 17 +3 3.031472869 1 +4 0.000383621 10 +3 0.111534733 1 +4 0.000341148 1 +3 0.127793429 1 +4 0.000314986 1 +3 0.135521274 1 +4 0.000370481 1 +4 0.000315991 10 +4 0.000321545 61 +3 0.287211223 1 +4 0.000349261 36 +7 0.000625125 TSTP +7 18.263683258 CONT +4 0.000498815 7 +4 0.000274045 761 +3 1.023194790 1 +4 0.000373438 18 +3 0.143586996 1 +4 0.000363107 23 +3 0.295540816 1 +4 0.000393611 19 +3 0.455657673 2 +4 0.000426373 10 +3 0.113703338 1 +4 0.000378402 1 +3 0.157390675 1 +4 0.000357087 1 +3 0.151742623 1 +4 0.000372121 1 +4 0.000389981 71 +3 4.695812081 1 +4 0.000435116 47 +3 0.279470887 1 +4 0.000352451 20 +3 0.135503138 1 +4 0.000416970 17 +3 0.264941187 1 +4 0.000350779 17 +3 0.150132591 1 +4 0.000411483 4 +3 0.311846550 1 +4 0.000391644 8 +3 0.183614576 1 +4 0.000404638 17 +3 0.175683730 1 +4 0.000357988 7 +3 0.423533239 1 +4 0.000398142 10 +3 0.095915760 1 +4 0.000332763 1 +3 0.143141796 1 +4 0.000384253 1 +3 0.127668348 1 +4 0.000355276 1 +4 0.000376278 71 +3 2.375919235 1 +4 0.000378363 36 +7 0.000560572 TSTP +7 15.551189540 CONT +4 0.000539521 7 +4 0.000299553 760 +3 23.695858735 2 +4 0.000359908 18 +3 0.170196607 1 +4 0.000348039 17 +3 0.573067146 2 +4 0.000315257 18 +3 0.664401104 1 +3 0.105229177 1 +4 0.000345009 30 +3 0.221703840 1 +4 0.000407918 101 +3 0.527554619 1 +4 0.000353805 17 +3 0.135802397 1 +3 0.071781394 1 +4 0.000350908 29 +3 0.247749684 1 +4 0.000361118 18 +3 0.103453369 1 +4 0.000336479 18 +3 0.137722936 1 +4 0.000361246 18 +3 0.517919323 2 +4 0.000389552 40 +3 1.831522136 1 +4 0.000398435 17 +3 0.249614782 1 +4 0.000388303 18 +3 3.541891503 1 +4 0.000378322 17 +3 0.295458712 1 +4 0.000363984 17 +3 0.095756287 1 +4 0.000364362 18 +3 0.199627897 1 +3 0.055865953 1 +4 0.000355114 27 +3 0.223763732 1 +4 0.000376939 18 +3 0.064087461 1 +4 0.000346247 17 +3 0.145196165 1 +4 0.000374948 18 +3 0.077578841 1 +4 0.000345534 41 +3 0.703167850 1 +4 0.110020471 33 +3 0.538607790 1 +4 0.000410711 17 +3 0.161582846 1 +4 0.000363956 17 +3 0.141494482 1 +4 0.000353886 18 +3 0.169681414 1 +4 0.000383409 17 +3 0.421508228 1 +4 0.000358304 17 +3 0.568001575 1 +4 0.000413829 17 +3 0.209401778 1 +4 0.000350372 18 +3 2.102060980 1 +3 0.055601917 1 +4 0.000394102 4 +3 0.215605473 1 +3 0.064149899 1 +4 0.000341844 4 +3 0.215470952 1 +3 0.040040524 1 +4 0.000342404 4 +3 0.615762246 1 +3 0.032063265 1 +4 0.000365036 4 +3 0.247519203 1 +3 0.056030347 1 +4 0.000378459 4 +3 0.224142535 1 +3 0.031523638 1 +4 0.000358178 4 +3 0.423666972 1 +4 0.000376999 4 +3 0.255643217 1 +4 0.000343531 17 +3 4.856027841 1 +4 0.000500863 18 +3 0.193366280 1 +4 0.000389063 17 +3 0.165522421 1 +4 0.000344857 17 +3 0.473753484 1 +4 0.000400177 17 +3 0.437554096 1 +4 0.000359468 18 +3 1.607761052 1 +4 0.000366734 33 +3 0.151682280 1 +4 0.000346026 18 +3 0.407553246 2 +4 0.000364683 13 +3 0.127618024 1 +4 0.000319068 1 +3 0.143660206 1 +4 0.000364479 1 +3 0.143742384 1 +4 0.000406650 1 +4 0.000367797 71 +3 0.351557499 1 +4 0.000402956 36 +7 0.000565724 TSTP +7 2.191516357 CONT +4 0.000601223 7 +4 0.000313328 736 +3 0.486301431 1 +4 0.000401910 27 +3 0.719571416 1 +4 0.000386112 38 +3 0.369728756 1 +4 0.000378489 21 +3 0.349666198 1 +4 0.000466278 22 +3 0.361397835 1 +4 0.000376363 25 +3 0.381641787 1 +4 0.000422633 26 +3 0.386758659 1 +4 0.000357995 29 +3 0.556543071 1 +4 0.000385322 30 +3 0.543559098 1 +4 0.000354657 4 +3 0.191664837 1 +4 0.000384254 4 +3 0.153687121 1 +4 0.000395274 4 +3 0.133534453 1 +4 0.000396348 4 +3 0.121659912 1 +4 0.000413405 4 +3 0.125573096 1 +4 0.000387566 4 +3 0.139150330 1 +4 0.000327305 4 +3 0.148154366 1 +4 0.000372650 32 +3 0.249863620 1 +4 0.000339958 1 +3 0.637929725 1 +4 0.000396127 10 +3 0.111347453 1 +4 0.000349649 1 +3 0.239519890 1 +4 0.000376892 1 +4 0.000894005 10 +4 0.000362047 61 +3 0.718355866 1 +4 0.000378376 36 +7 0.000534690 TSTP +7 5.191647462 CONT +4 0.000706786 7 +4 0.000362129 736 +3 0.686656947 1 +4 0.000446177 27 +3 0.295649306 1 +4 0.000566542 38 +3 0.409198821 1 +4 0.000441251 21 +3 0.621630445 1 +4 0.000366152 22 +3 0.305683015 1 +4 0.000432894 25 +3 0.309555663 1 +4 0.000358268 26 +3 0.361574083 1 +4 0.000411224 29 +3 0.381625199 1 +4 0.000357855 30 +3 0.961682942 1 +4 0.000419125 33 +3 0.669684753 1 +4 0.000434909 44 +3 0.655678777 1 +4 0.000427507 17 +3 20.106525371 1 +3 0.045647273 1 +4 0.000365446 18 +3 0.186268181 1 +4 0.000372156 17 +3 0.132866873 1 +4 0.000376959 17 +3 0.185773537 1 +4 0.000351543 18 +3 0.221453445 1 +4 0.000393827 31 +3 0.184683590 1 +4 0.000337990 20 +3 0.651084582 1 +3 0.091972978 1 +4 0.000436889 34 +3 0.247353084 1 +4 0.000389987 17 +3 0.087558484 1 +4 0.000370313 18 +3 0.159730348 1 +4 0.000342223 24 +3 0.223550409 1 +4 0.000404235 45 +3 0.279483799 2 +4 0.000368998 36 +3 0.207881506 1 +4 0.000385223 17 +3 0.217550024 1 +4 0.000377422 18 +3 0.293652368 1 +4 0.000374239 17 +3 0.231611804 1 +4 0.000354648 24 +3 0.255771372 1 +4 0.000396653 19 +3 0.709843468 1 +4 0.109945476 33 +3 2.772403375 1 +4 0.000405016 10 +3 0.159034249 1 +4 0.000343155 1 +3 0.175485925 1 +4 0.000390619 1 +3 0.127848732 1 +4 0.000380434 1 +4 0.000358212 71 +3 0.751855132 1 +4 0.000404622 36 +7 0.000608357 TSTP +7 2.502601867 CONT +4 0.000660954 7 +4 0.000292705 761 +3 42.344294221 2 +4 0.000346361 21 +3 0.232300274 1 +4 0.000397957 17 +3 0.110977267 1 +4 0.000347456 18 +3 0.191542148 1 +4 0.000421802 23 +3 0.191648097 1 +4 0.000390839 31 +3 0.423642384 2 +4 0.000417125 10 +3 0.095563652 1 +4 0.000328914 1 +3 0.162289389 1 +4 0.000386050 1 +3 0.132960135 1 +4 0.000421188 1 +4 0.000357036 71 +3 2.528509506 1 +4 0.000374574 36 +7 0.000558417 TSTP +7 1.326200172 CONT +4 0.000651198 7 +4 0.000368984 7 +4 0.000333315 755 +3 10.759500663 1 +4 0.000424380 21 +3 0.366812536 1 +4 0.000354543 18 +3 0.127689176 1 +4 0.000369158 17 +3 0.175591974 1 +3 0.048660960 1 +4 0.000359942 26 +3 0.087772999 1 +4 0.000337647 17 +3 0.110972447 1 +4 0.000331622 18 +3 0.129662149 1 +4 0.000359074 21 +3 0.341590744 2 +4 0.000418281 10 +3 0.175657585 1 +4 0.000350980 1 +3 0.119880120 1 +4 0.000393669 1 +3 0.143461878 1 +4 0.000387547 1 +4 0.000367203 10 +4 0.000313262 61 +3 1.423356906 1 +4 0.000369190 36 +7 0.000544947 TSTP +7 1.086855932 CONT +4 0.000600841 7 +4 0.000259936 762 +3 29.456688546 1 +4 0.000382210 17 +3 0.166860376 1 +3 0.072853854 1 +4 0.000486510 26 +3 0.094686413 1 +4 0.000397296 17 +3 0.055880947 1 +4 0.000550370 18 +3 0.359221233 2 +4 0.000388415 14 +3 0.111920171 1 +4 0.000344960 1 +3 0.119262715 1 +4 0.000351551 1 +3 0.135698555 1 +4 0.000358834 1 +4 0.000370376 71 +3 7.200064723 1 +4 0.000396296 39 +3 0.201124997 1 +4 0.000353353 17 +3 12.583077072 1 +4 0.000405715 36 +7 0.000556650 TSTP +7 2.166256425 CONT +4 0.000595403 7 +4 0.000284965 701 +3 34.464618235 1 +3 0.137495155 1 +4 0.000393855 89 +3 6.333858500 1 +4 0.000421474 17 +3 0.247499316 1 +4 0.000344421 17 +3 0.201481700 1 +4 0.000396558 17 +3 0.165632278 1 +4 0.000384607 19 +3 0.287697103 1 +4 0.000394441 20 +3 0.185936115 1 +4 0.000389601 17 +3 0.197247752 1 +4 0.000421181 17 +3 10.256287285 1 +4 0.000401831 17 +3 0.463252389 1 +4 0.000411884 24 +3 0.919761790 1 +4 0.000376261 27 +3 0.599663943 1 +4 0.000430115 28 +3 1.727519207 1 +4 0.000366528 27 +3 0.775678123 2 +4 0.000446678 33 +3 0.127615264 1 +4 0.000336915 17 +3 0.169691032 1 +4 0.000404518 17 +3 14.214084103 2 +4 0.000406930 31 +3 1.064172346 1 +4 0.000446106 82 +3 0.462979744 1 +4 0.000425667 80 +3 0.455412593 1 +4 0.000399671 17 +3 1.015850622 1 +3 0.200009465 1 +3 0.121842965 1 +4 0.000413815 31 +3 0.197469351 1 +4 0.000429019 144 +3 0.313156262 1 +4 0.000562658 43 +3 0.168267990 1 +4 0.000376310 17 +3 0.149529087 1 +4 0.000561536 18 +3 0.161330526 1 +4 0.000487524 17 +3 0.333469617 1 +4 0.000432119 7 +3 2.407756190 1 +4 0.000399637 18 +3 0.185510385 1 +4 0.000403515 17 +3 0.397545429 1 +4 0.000349287 24 +3 0.455775587 1 +4 0.000382010 26 +3 0.119660765 1 +4 0.000344743 27 +3 0.983754654 1 +4 0.000391754 26 +3 0.367444466 2 +4 0.000479735 24 +3 0.153584990 1 +4 0.000518767 17 +3 0.333432343 1 +4 0.000451263 31 +3 0.951762306 1 +4 0.000390342 20 +3 0.799717393 1 +4 0.110050651 31 +3 6.394224606 1 +4 0.000399427 17 +3 0.201242861 1 +4 0.000362093 17 +3 0.805831872 1 +4 0.000492597 24 +3 0.463611154 1 +4 0.000353344 28 +3 0.495490410 2 +4 0.000435363 33 +3 0.153574646 1 +4 0.000344398 17 +3 0.205530768 1 +4 0.000359665 17 +3 0.368002084 1 +4 0.000369806 31 +3 5.543652529 1 +4 0.000405256 21 +3 2.319551608 2 +4 0.000402605 31 +3 0.127672928 1 +4 0.000396047 16 +3 0.145521021 1 +4 0.000370101 18 +3 0.198850123 1 +4 0.000380497 18 +3 0.374518191 1 +4 0.000376497 4 +3 0.071763335 1 +4 0.000357445 29 +3 1.991623930 1 +4 0.000360230 17 +3 0.153682265 1 +4 0.000355502 17 +3 0.141566970 1 +4 0.000343818 17 +3 0.319546316 1 +4 0.000381425 32 +3 0.415753148 1 +4 0.000376296 20 +3 0.111609906 1 +4 0.000376038 20 +3 0.111683841 1 +4 0.000339838 20 +3 0.223663238 1 +4 0.000345139 20 +3 1.735836126 1 +4 0.000383634 20 +3 1.431546931 1 +4 0.000376084 20 +3 0.471593841 1 +4 0.000359976 38 +4 0.703414565 18 +3 0.529968458 1 +4 0.110004687 31 +3 0.344443632 1 +4 0.000377377 17 +3 0.161592431 1 +4 0.000373603 20 +3 0.149541334 1 +4 0.000376216 19 +3 0.169770415 1 +4 0.000380554 21 +3 0.237617326 1 +4 0.000353075 17 +3 0.271492043 1 +4 0.000393653 23 +3 0.847577958 1 +4 0.000355919 17 +3 0.215824561 2 +4 0.000420253 34 +3 0.159446820 1 +4 0.000385845 55 +3 0.119529700 1 +4 0.000443729 18 +3 0.143622153 1 +4 0.000371709 55 +3 0.087744678 1 +4 0.000432932 18 +3 0.135547822 1 +4 0.000387780 55 +3 0.367740510 1 +4 0.000403129 8 +3 0.119486192 1 +4 0.000352406 1 +3 0.159480106 1 +4 0.000381349 1 +3 0.095840317 1 +4 0.000406279 1 +4 0.000347860 68 +3 0.296854807 1 +4 0.000333832 34 +7 0.000530929 TSTP +7 18.711040311 CONT +4 0.000722739 7 +4 0.000294419 720 +3 1.878490908 1 +4 0.000385552 14 +3 0.499457577 1 +4 0.000364101 14 +3 0.083000133 1 +4 0.000374483 14 +3 0.083512020 1 +4 0.000330702 19 +3 0.082876543 1 +4 0.000450885 16 +3 0.082872661 1 +4 0.000348207 16 +3 0.455801267 1 +4 0.000408033 16 +3 22.718850312 1 +4 0.000367782 16 +3 0.499319128 1 +4 0.000440603 18 +3 0.083031219 1 +4 0.000339332 18 +3 5.992261219 1 +4 0.000404772 17 +3 1.015513604 1 +4 0.000428246 21 +3 0.343708648 1 +4 0.000407440 17 +3 0.499501973 1 +4 0.000404036 17 +3 0.082759959 1 +4 0.000405669 17 +3 0.082706521 1 +4 0.000350717 17 +3 0.082937503 1 +4 0.000415135 17 +3 0.204004487 1 +4 0.000358586 17 +3 2.061676979 1 +3 0.178034321 1 +4 0.000458403 41 +3 0.157662119 1 +3 0.162192601 1 +4 0.000462507 71 +3 0.173246535 1 +3 0.153994123 1 +4 0.000444605 119 +3 0.173440035 1 +3 0.122042974 1 +4 0.000383053 77 +3 0.357731675 1 +4 0.000408902 18 +3 0.735691322 1 +4 0.000400895 16 +3 0.367560977 1 +4 0.000392665 24 +3 0.143760259 1 +4 0.000398216 16 +3 0.367347853 1 +4 0.000417748 15 +3 0.119692664 1 +4 0.000357595 28 +3 0.175609639 1 +4 0.000389132 16 +3 0.215606599 1 +4 0.000346514 15 +3 0.079667984 1 +4 0.000454884 28 +3 0.175582670 1 +4 0.000358310 16 +3 0.239689561 1 +4 0.000413015 15 +3 0.079470073 1 +4 0.000357373 24 +3 0.391674008 1 +4 0.000382927 16 +3 0.153648702 1 +4 0.000342793 16 +3 0.149695017 1 +4 0.000398179 16 +3 0.119534529 1 +4 0.000382745 18 +3 0.207754094 1 +4 0.000381072 17 +3 0.185524250 1 +4 0.000387534 17 +3 0.117594633 1 +4 0.000385616 7 +3 0.527773376 1 +4 0.000363479 10 +3 0.143658968 1 +4 0.000374950 1 +3 0.151534283 1 +4 0.000338832 1 +3 0.247642362 1 +4 0.000414888 1 +4 0.000623078 10 +4 0.000327615 61 +3 0.679143212 1 +4 0.000428228 36 +7 0.000498302 TSTP +7 15.759302739 CONT +4 0.000709658 7 +4 0.000259898 761 +3 1.447011203 1 +4 0.000422073 52 +3 0.111465797 1 +4 0.000378643 17 +3 0.112301851 1 +4 0.000341490 16 +3 0.599047398 1 +4 0.000373061 16 +3 0.137569975 1 +4 0.000351584 15 +3 0.133686062 1 +4 0.000363926 19 +3 0.455652573 1 +4 0.000404204 19 +3 0.095485987 1 +4 0.000330733 17 +3 3.896053197 1 +4 0.000419108 18 +3 0.103484157 1 +4 0.000355073 18 +3 0.103427073 1 +4 0.000339638 18 +3 0.088569795 1 +4 0.000347190 18 +3 0.054934884 1 +4 0.000344192 17 +3 0.071779814 1 +4 0.000390972 18 +3 0.103236039 1 +4 0.000394154 18 +3 0.079809854 1 +4 0.000388847 18 +3 0.207558980 1 +4 0.000358322 19 +3 0.119757145 1 +4 0.000373061 18 +3 0.079697457 1 +4 0.000366006 18 +3 0.207569155 1 +4 0.000635030 18 +3 0.263316887 1 +4 0.000556093 18 +3 0.183554241 1 +4 0.000414673 18 +3 0.095605329 1 +4 0.000367209 18 +3 0.088897668 1 +4 0.000400849 18 +3 0.023143466 1 +4 0.000358736 18 +3 0.086779107 1 +4 0.000390339 17 +3 0.079564663 1 +4 0.000339080 19 +3 0.119593603 1 +4 0.000432584 18 +3 0.095575470 1 +4 0.000338328 18 +3 0.015961962 1 +4 0.000398069 18 +3 0.151235025 1 +4 0.000341615 18 +3 0.263735292 2 +4 0.000416151 36 +3 0.344262441 1 +4 0.000347914 17 +3 0.162363392 1 +4 0.000380379 17 +3 0.188195394 1 +4 0.000401011 7 +3 0.175818950 1 +4 0.000394224 17 +3 0.537388667 1 +4 0.000378779 17 +3 1.661891035 1 +4 0.000410197 10 +3 0.089165673 1 +4 0.000321823 1 +3 0.149978075 1 +4 0.000387317 1 +3 0.095732547 1 +4 0.000376913 1 +4 0.000309348 54 +4 0.000366179 17 +3 1.463359603 1 +4 0.000359983 36 +7 0.000588293 TSTP +7 1.494986237 CONT +4 0.000710772 7 +4 0.000476110 755 +3 0.815254487 1 +4 0.000413124 36 +7 0.000500056 TSTP +7 5.470841894 CONT +4 0.000537987 7 +4 0.000309014 695 +3 1.103014779 1 +4 0.000479227 10 +3 0.255480340 1 +4 0.000377261 1 +3 0.095464134 1 +4 0.000369958 1 +3 0.239785146 1 +4 0.000349997 1 +3 0.111606627 1 +4 0.000387143 1 +3 0.095592443 1 +4 0.000362436 1 +3 0.209546330 1 +4 0.000383199 1 +3 0.069908389 1 +4 0.000388572 13 +4 0.000356399 40 +3 0.391033583 1 +4 0.000463571 22 +4 0.000339472 36 +3 22.904792991 1 +4 0.000415262 10 +3 0.142951874 1 +4 0.000403144 1 +3 0.128583126 1 +4 0.000412641 1 +3 0.166690878 1 +4 0.000689289 739 +3 2.624041365 1 +4 0.000400916 9 +3 0.174887138 1 +4 0.000384252 1 +3 0.119405108 1 +4 0.000372425 1 +3 0.167720375 1 +4 0.000332687 1 +4 0.000349403 35 +3 0.423713292 1 +4 0.000375338 35 +7 0.000583271 TSTP +7 70.969129284 CONT +4 0.000697139 7 +4 0.000259336 690 +3 0.222944020 1 +4 0.000347798 9 +3 0.111816210 1 +4 0.000335574 1 +3 0.103568627 1 +4 0.000378947 1 +3 0.135595030 1 +4 0.000396827 1 +3 0.137532828 1 +4 0.000358634 1 +3 0.117757171 1 +4 0.000375277 1 +3 0.055587721 1 +4 0.000394197 1 +3 0.191608522 1 +4 0.000361412 1 +3 0.199704361 1 +4 0.000402536 1 +3 0.207616763 1 +4 0.000411565 25 +4 0.000397031 586 +3 0.631256050 1 +4 0.000424291 33 +4 0.000316004 581 +3 0.521136839 1 +4 0.000435811 57 +4 0.000341314 400 +3 0.813835754 1 +4 0.000377370 34 +4 0.000433569 581 +3 0.352584941 1 +4 0.000397390 57 +4 0.000363548 400 +3 0.733347389 1 +4 0.000405165 10 +3 0.167473344 1 +4 0.000351018 1 +3 0.079771169 1 +4 0.000353889 1 +4 0.000318311 603 +3 0.103143305 1 +4 0.000341409 9 +3 0.087795642 1 +4 0.000383953 18 +4 0.000367685 594 +3 2.327546392 1 +4 0.000646503 717 +3 0.519264719 1 +4 0.000577177 820 +3 0.487328825 1 +4 0.000621281 777 +3 0.255472449 1 +4 0.000560288 838 +3 0.431395389 1 +4 0.000543030 491 +3 1.815692773 1 +4 0.000376360 36 +7 0.000559203 TSTP +7 36.256087000 CONT +4 0.000670313 7 +4 0.000314670 514 +3 1.007150321 1 +4 0.000371526 10 +3 0.111658445 1 +4 0.000365925 1 +3 0.127497532 1 +4 0.000344023 1 +3 0.008585145 1 +4 0.000359333 1 +3 0.062918881 1 +4 0.000337433 1 +3 0.520163861 1 +4 0.000437412 2 +3 0.294795978 1 +4 0.000381118 1 +3 0.071692988 1 +4 0.000376974 1 +3 0.143539792 1 +4 0.000323794 1 +3 0.183757372 1 +4 0.000393274 1 +3 0.063755161 1 +4 0.000544230 660 +3 0.639400190 1 +4 0.000381233 17 +3 0.185646026 1 +4 0.000387918 17 +3 0.165576131 1 +4 0.000370784 17 +3 0.169594206 1 +4 0.000346486 20 +3 0.165630517 1 +4 0.000379258 16 +3 0.247663006 1 +4 0.000384711 18 +3 0.153654800 1 +4 0.000384127 21 +3 0.133594381 1 +4 0.000358222 17 +3 0.153676469 1 +4 0.000411504 17 +3 0.143149979 1 +4 0.000355384 17 +3 0.702200221 1 +3 0.144007022 1 +3 0.129890903 1 +4 0.000355329 31 +3 0.797783059 1 +4 0.000398510 39 +3 0.615529280 1 +4 0.000363986 10 +3 0.095683598 1 +4 0.000325788 1 +3 0.103551436 1 +4 0.000383441 1 +3 0.119607986 1 +4 0.000347694 1 +3 0.145819004 1 +4 0.000319052 1 +3 0.125546782 1 +4 0.000367240 1 +3 0.039546567 1 +4 0.000326530 1 +3 0.183922235 1 +4 0.000373559 21 +4 0.000353866 702 +3 2.087798526 1 +4 0.000539051 571 +3 0.487204393 1 +4 0.000612492 688 +3 0.567301355 1 +4 0.000529935 569 +3 0.183352643 1 +4 0.000572020 259 +3 1.895653835 1 +4 0.000559693 676 +3 0.183349956 1 +4 0.000627051 788 +3 0.311439753 1 +4 0.000520169 684 +3 0.223235251 1 +4 0.000556696 706 +3 1.855807818 1 +4 0.000623383 754 +3 0.399430211 1 +4 0.000666082 755 +3 0.678992219 1 +4 0.000407642 9 +3 0.071844278 1 +4 0.000408252 39 +3 2.271730493 1 +4 0.000695074 754 +3 0.951239040 1 +4 0.000655239 755 +3 0.199279212 1 +4 0.000524359 568 +3 0.351523060 1 +4 0.000597140 688 +3 0.375552882 1 +4 0.000572100 882 +3 0.335236477 1 +4 0.000595587 797 +3 0.335527330 1 +4 0.000590118 858 +3 0.335478957 1 +4 0.000645679 720 +3 0.335412572 1 +4 0.000564452 692 +3 0.447292502 1 +4 0.000617332 631 +3 0.439511370 1 +4 0.000599395 551 +3 1.255467302 1 +4 0.000612853 695 +3 0.975312065 1 +4 0.000556515 535 +3 0.849295704 1 +4 0.000409538 21 +4 0.000423212 591 +3 0.821288316 1 +4 0.000544036 588 +3 0.503545779 1 +4 0.000591477 688 +3 0.759494154 1 +4 0.000630742 882 +3 0.383301604 1 +4 0.000361161 32 +4 0.000355504 586 +3 0.425292376 1 +4 0.000427732 57 +4 0.000374856 555 +3 0.213333573 1 +4 0.000533322 588 +3 0.440372326 1 +4 0.000558654 688 +3 0.478209058 1 +4 0.000375810 9 +3 0.135845091 1 +4 0.000342553 1 +3 0.055731981 1 +4 0.000322099 1 +4 0.000333614 606 +3 0.095106089 1 +4 0.000343483 9 +3 0.511910900 1 +4 0.000395045 18 +4 0.000423280 594 +3 0.551397717 1 +4 0.000373563 62 +3 0.831401151 1 +4 0.000373044 33 +4 0.000436827 581 +3 0.359415188 1 +4 0.000369864 62 +3 1.559405239 1 +4 0.000385266 21 +4 0.000454423 436 +3 0.720007528 1 +4 0.000685988 734 +3 0.422694195 1 +4 0.000616489 820 +3 0.319316852 1 +4 0.000618298 761 +3 1.575514606 1 +4 0.000601742 540 +3 0.191314674 1 +4 0.000505078 21 +3 2.239427678 1 +4 0.000379643 17 +3 0.489926311 1 +4 0.000480378 18 +3 0.261299017 1 +4 0.000443556 156 +3 0.727585489 1 +4 0.000403010 43 +3 0.279611069 1 +3 0.079889305 1 +4 0.000401246 28 +3 0.239587313 1 +4 0.000397168 18 +3 0.072427298 1 +4 0.000333939 18 +3 0.342923416 1 +4 0.000398306 18 +3 0.183637399 1 +4 0.000381758 18 +3 0.111595657 1 +4 0.000361019 37 +3 0.063655434 1 +4 0.000399939 37 +3 0.503644352 2 +4 0.000390806 36 +3 0.161502231 1 +4 0.000365327 17 +3 0.141749408 1 +4 0.000369984 17 +3 0.185648138 1 +4 0.000356033 18 +3 0.165731462 1 +4 0.000352816 17 +3 0.161555741 1 +4 0.000359941 17 +3 0.149736702 1 +4 0.000425806 17 +3 0.113442477 1 +4 0.000355350 17 +3 0.149749419 1 +4 0.000381168 18 +3 0.201596848 1 +4 0.000367273 17 +3 0.213610750 1 +4 0.000357214 17 +3 0.233632365 1 +4 0.000352405 17 +3 0.237703831 1 +3 0.080015656 1 +4 0.000390973 28 +3 0.127528045 1 +4 0.000376775 18 +3 0.079637141 1 +4 0.000351734 18 +3 0.311727166 1 +4 0.000398259 18 +3 0.167561704 1 +4 0.000358484 19 +3 0.103706101 1 +4 0.000403651 20 +3 0.047631111 1 +4 0.000352065 20 +3 0.615677935 2 +4 0.000405081 10 +3 0.112025215 1 +4 0.000345942 1 +3 0.119151839 1 +4 0.000395602 1 +4 0.000393444 71 +3 7.400109465 1 +4 0.000377879 10 +3 0.182947979 1 +4 0.000348115 1 +3 0.063744236 1 +4 0.000406283 1 +4 0.000387358 71 +3 0.535224823 1 +4 0.000495439 39 +3 1.033667865 1 +4 0.000395791 32 +4 0.000389749 580 +3 2.085715205 1 +4 0.000595160 571 +3 1.063184152 1 +4 0.000601361 688 +3 4.184426491 1 +4 0.000611529 882 +3 198.294712987 1 +4 0.000500980 9 +3 0.189589980 1 +4 0.000719043 1 +3 0.119318988 1 +4 0.000564771 1 +3 0.151441953 1 +4 0.000358560 1 +3 0.137706675 1 +4 0.000460100 1 +3 0.149441070 1 +4 0.000384899 1 +3 0.071650668 1 +4 0.000445636 1 +3 0.191711996 1 +4 0.000613876 706 +3 1.015888491 1 +4 0.000617595 571 +3 0.438878102 1 +4 0.000577367 688 +3 0.447478114 1 +4 0.000689566 882 +3 0.359286096 1 +4 0.000640649 797 +3 0.335430267 1 +4 0.000677678 858 +3 0.472182198 1 +4 0.000627037 720 +3 0.366435323 1 +4 0.001010110 692 +3 4.511252143 1 +4 0.000650383 695 +3 0.255194042 1 +4 0.000405046 27 +4 0.000383570 722 +3 32.216371870 1 +4 0.000375360 10 +3 0.359619347 1 +4 0.000373969 1 +3 0.015453064 1 +4 0.000338365 1 +3 0.135960195 1 +4 0.000425283 1 +3 0.327618492 1 +4 0.000378966 1 +3 0.137620317 1 +4 0.000466152 1 +3 0.061246195 1 +4 0.000375182 1 +3 0.183740916 1 +4 0.000390135 1 +3 0.087550652 1 +4 0.000351053 1 +3 0.239890261 1 +4 0.000688894 800 +3 0.799211665 1 +4 0.000379792 20 +3 0.337657412 1 +4 0.000425576 20 +3 0.613410916 1 +4 0.000437220 9 +3 0.231802960 1 +4 0.000363706 1 +3 0.095550999 1 +4 0.000355948 1 +3 0.311690991 1 +4 0.000360403 1 +3 0.119493793 1 +4 0.000381406 1 +3 0.145015673 1 +4 0.000614387 1 +3 0.062048669 1 +4 0.000369418 1 +3 0.191858922 1 +4 0.000451365 46 +4 0.000332511 12 +3 0.783070466 1 +4 0.000399820 9 +3 0.231602050 1 +4 0.000506878 1 +3 0.079371339 1 +4 0.000374732 1 +3 0.143672519 1 +4 0.000357272 1 +3 0.063707147 1 +4 0.000360474 1 +3 0.199859218 1 +4 0.000407986 39 +3 0.463330673 1 +4 0.000427909 41 +4 0.000329585 727 +3 4.048292042 1 +4 0.000659682 987 +3 1.046745489 1 +4 0.000708998 1031 +3 0.623413444 1 +4 0.000606119 737 +3 1.391046737 1 +4 0.000385105 10 +3 0.103821049 1 +4 0.000344610 1 +3 0.151389382 1 +4 0.000492370 1 +3 0.135684531 1 +4 0.000350529 1 +3 0.167734456 1 +4 0.000379684 1 +3 0.063573356 1 +4 0.000336023 1 +3 0.063502987 1 +4 0.000363503 1 +3 0.223733380 1 +4 0.000655733 700 +3 25.104799626 1 +4 0.000399281 10 +3 0.159008041 1 +4 0.000402494 1 +3 0.159700848 1 +4 0.000402276 1 +3 0.063353917 1 +4 0.000404021 1 +3 0.215798492 1 +4 0.000405804 1 +3 0.119647512 1 +4 0.000477310 191 +3 0.871404448 1 +4 0.000469989 63 +3 0.663591548 1 +4 0.000421793 71 +3 0.499801607 1 +4 0.000527248 58 +3 0.083029044 1 +4 0.000401822 47 +3 0.083244748 1 +4 0.000470973 34 +3 38.037421477 1 +4 0.000348897 8 +3 0.079604312 1 +4 0.000382227 1 +3 0.159674301 1 +4 0.000343747 1 +3 0.088281992 1 +4 0.000366830 1 +3 0.087830069 1 +4 0.000359714 1 +3 0.150800262 1 +4 0.000394596 1 +3 0.167596087 1 +4 0.000375193 1 +3 0.191569013 1 +4 0.000356516 1 +3 0.247780823 1 +4 0.000422578 24 +4 0.000446540 801 +3 1.551406059 1 +4 0.000405220 57 +4 0.000399134 749 +3 1.166934863 1 +4 0.000381655 10 +3 0.087671380 1 +4 0.000582668 41 +4 0.000415955 771 +3 6.511197329 1 +4 0.000613896 34 +4 0.000290759 791 +3 17.855985952 1 +4 0.000392818 17 +3 0.569405413 1 +4 0.000358391 17 +3 0.497800637 1 +4 0.000387651 17 +3 0.083195865 1 +4 0.000355967 17 +3 0.083425185 1 +4 0.000856532 18 +3 1.547546742 1 +4 0.000503055 23 +3 0.183568509 1 +4 0.000385734 23 +3 0.071482783 1 +4 0.000413536 19 +3 0.119783893 1 +4 0.000374924 20 +3 0.175621531 1 +4 0.000688902 19 +3 0.111129585 1 +4 0.000543899 19 +3 0.007492305 1 +4 0.000320451 19 +3 0.328076834 1 +4 0.000603112 17 +3 0.161056013 1 +4 0.000377849 17 +3 0.141748645 1 +4 0.000437131 18 +3 0.239569515 1 +4 0.000391192 18 +3 0.175630219 1 +4 0.000559085 19 +3 0.095322294 1 +4 0.000536504 19 +3 0.111530509 1 +4 0.000359670 19 +3 0.055675989 1 +4 0.000385189 19 +3 0.247503945 1 +4 0.000392250 19 +3 0.103561293 1 +4 0.000360224 19 +3 0.127872954 1 +4 0.000366021 20 +3 0.511480153 2 +4 0.000401829 10 +3 0.103750841 1 +4 0.000506651 1 +3 0.143407021 1 +4 0.000400126 1 +3 0.095528275 1 +4 0.000406794 1 +4 0.000373737 71 +3 0.287782083 1 +4 0.000341659 36 +7 0.000558827 TSTP +7 25.999831488 CONT +4 0.000523441 7 +4 0.000236712 754 +3 3.303725066 1 +4 0.000699688 639 +3 0.558943365 1 +4 0.000358426 9 +3 0.375464515 1 +4 0.000728486 1 +3 0.007507401 1 +4 0.000316351 1 +3 0.055107562 1 +4 0.000363764 1 +3 0.415905885 1 +4 0.000376008 1 +3 0.147347883 1 +4 0.000412975 1 +3 0.163923920 1 +4 0.000377046 1 +3 18.472815831 1 +4 0.000455734 1 +3 0.303014397 1 +4 0.000357172 1 +3 0.224750112 1 +4 0.000406001 1 +3 0.136844895 1 +4 0.000346398 1 +3 0.109232604 1 +4 0.000427810 1 +3 0.392148315 1 +4 0.000344556 2 +3 0.263814421 1 +4 0.000428066 1 +3 0.166663903 1 +4 0.000342941 1 +3 0.137990258 1 +4 0.001053470 1 +3 0.100790618 1 +4 0.000343833 1 +3 0.207661471 1 +4 0.000377886 40 +3 0.473599768 1 +4 0.000391002 32 +4 0.000360855 705 +3 1.261382162 1 +4 0.000364648 10 +3 0.087533109 1 +4 0.000377866 18 +4 0.000361082 674 +3 11.896125981 1 +4 0.001620248 10 +3 0.101985297 1 +4 0.000430458 18 +4 0.000294990 689 +3 184.533873636 1 +4 0.000421301 10 +3 0.599060170 1 +4 0.000463651 1 +3 0.087494112 1 +4 0.000321414 1 +3 0.256043716 1 +4 0.000326971 1 +3 0.047318053 1 +4 0.000334214 1 +3 0.095759799 1 +4 0.000512111 1 +3 0.239470833 1 +4 0.000347820 1 +3 0.191631063 1 +4 0.000347219 1 +3 0.119784608 1 +4 0.000438453 41 +4 0.000335714 585 +3 106.586128074 1 +4 0.000418614 39 +3 1.752608685 1 +4 0.000380543 20 +3 0.197628987 1 +4 0.000427663 19 +3 0.153554957 1 +4 0.000366344 20 +3 0.725566286 1 +4 0.000597954 19 +3 0.201493802 1 +4 0.000352051 20 +3 0.149624969 1 +4 0.000355754 20 +3 0.304030193 1 +3 0.122005589 1 +4 0.000429672 30 +3 0.253251625 1 +4 0.000383425 100 +3 0.279685150 1 +4 0.000355705 18 +3 1.263760746 2 +4 0.000459528 73 +3 0.624090280 1 +4 0.000353236 17 +3 0.318943178 1 +4 0.000359400 23 +3 0.959672316 1 +4 0.000342497 18 +3 0.231808080 2 +4 0.000363647 34 +3 0.159515378 1 +4 0.000358754 56 +3 0.087619052 1 +4 0.000318953 18 +3 0.151754660 1 +4 0.000323220 55 +3 0.207648573 1 +4 0.000323762 15 +3 0.169611195 1 +4 0.000337631 15 +3 0.101863938 1 +4 0.000344067 18 +3 0.247531118 1 +3 0.311838031 2 +4 0.000341970 16 +3 0.207759216 1 +3 0.146055428 1 +4 0.000332071 29 +3 0.477715855 2 +4 0.000389217 1 +3 0.168124794 1 +3 0.130429375 1 +4 0.000514504 26 +3 0.172489164 1 +4 0.000548759 158 +3 0.431574679 1 +4 0.000379927 49 +3 0.127541264 1 +4 0.000340955 16 +3 0.431668893 1 +4 0.000460327 15 +3 0.127600772 1 +4 0.000499579 28 +3 0.127808975 1 +4 0.000355777 16 +3 0.199339957 1 +4 0.000432400 14 +3 0.095445357 1 +4 0.000358959 24 +3 0.143812536 1 +4 0.000343400 16 +3 0.169745514 1 +4 0.000382521 16 +3 0.109556607 1 +4 0.000352115 16 +3 0.177670917 1 +4 0.000384687 18 +3 0.149600436 1 +4 0.000343239 18 +3 0.247641731 1 +4 0.000340803 18 +3 0.185516724 1 +4 0.000495872 17 +3 0.205772317 1 +4 0.000346917 4 +3 0.217825586 1 +4 0.000364003 6 +3 0.213423459 1 +4 0.000365457 4 +3 0.319585038 1 +4 0.000363926 17 +3 0.743639537 1 +3 0.080133792 1 +4 0.000416927 4 +3 0.167620249 1 +3 0.063765726 1 +4 0.000355550 4 +3 0.215720694 1 +3 0.048014069 1 +4 0.000424490 4 +3 0.367576945 1 +4 0.000384582 4 +3 0.500931653 1 +4 0.000368133 4 +3 0.082891603 1 +4 0.000385176 4 +3 0.083267710 1 +4 0.000363598 4 +3 0.083295317 1 +4 0.000413402 4 +3 0.082848953 1 +4 0.000331234 4 +3 0.083350265 1 +4 0.000547179 4 +3 0.082820949 1 +4 0.000361568 4 +3 0.083960695 1 +4 0.000599924 7 +3 1.097009841 1 +4 0.000362618 17 +3 4.935746168 1 +4 0.000391970 18 +3 0.207704955 1 +4 0.000365172 18 +3 0.169509675 1 +4 0.000379055 17 +3 0.589730872 1 +4 0.000369999 31 +3 0.255624532 1 +4 0.000519728 31 +3 0.031432160 1 +4 0.000429333 31 +3 1.407646041 2 +4 0.000394802 37 +3 2.151660008 1 +4 0.000461818 19 +3 0.185651627 1 +4 0.000432896 20 +3 0.165569201 1 +4 0.000345574 20 +3 0.169659802 1 +4 0.000422324 19 +3 0.405722651 1 +4 0.000363552 18 +3 3.271568134 1 +4 0.000350266 17 +3 0.137754674 1 +4 0.000365437 20 +3 0.213454126 1 +4 0.000397014 20 +3 0.169607523 1 +4 0.000371113 19 +3 0.213714772 1 +4 0.000342087 20 +3 7.642107866 1 +4 0.000376375 20 +3 0.509523548 1 +3 0.161824934 1 +4 0.000463161 68 +3 0.189569262 1 +3 0.153980331 1 +4 0.000399471 74 +3 0.173817347 1 +3 0.145850395 1 +4 0.000417591 70 +3 0.661702198 1 +4 0.000438025 15 +3 0.169527617 1 +4 0.000463697 14 +3 0.149577133 1 +4 0.000424375 18 +3 0.295466207 1 +4 0.000352364 18 +3 0.263549511 1 +4 0.000393437 18 +3 0.194132483 1 +4 0.000343541 17 +3 0.149512046 1 +4 0.000382610 17 +3 0.201498788 1 +4 0.000370958 18 +3 0.421511751 1 +4 0.000417087 18 +3 0.199729040 1 +3 0.071874021 1 +4 0.000343081 4 +3 0.247672408 1 +4 0.000396139 6 +3 0.319652955 1 +4 0.000346619 18 +3 0.199599960 1 +4 0.000357428 24 +3 0.231697594 1 +4 0.000359225 19 +3 0.223551535 1 +4 0.000672168 19 +3 0.047319029 1 +4 0.000387753 19 +3 0.087690646 1 +4 0.000363889 19 +3 0.247534002 1 +4 0.000352289 19 +3 0.191815082 1 +4 0.000347206 19 +3 0.367633035 2 +4 0.000392641 35 +3 0.351613781 1 +4 0.000353246 14 +3 0.271717046 1 +4 0.000497230 15 +3 0.290351570 1 +4 0.000373981 15 +3 0.460691814 1 +4 0.000381376 24 +3 0.167560576 1 +4 0.000364462 16 +3 0.471798818 1 +4 0.000361187 15 +3 0.143835098 1 +4 0.000479757 28 +3 0.159300413 1 +4 0.000361310 16 +3 0.295658858 1 +4 0.000359389 14 +3 0.103530627 1 +4 0.000376373 24 +3 0.295767100 1 +4 0.000347813 9 +3 0.927716879 1 +4 0.000483703 1 +3 0.199479229 1 +4 0.000474704 1 +3 0.151658838 1 +4 0.000428612 1 +4 0.000433767 70 +3 0.439462066 1 +4 0.000355872 35 +7 0.000597311 TSTP +7 5.374814287 CONT +4 0.000587921 7 +4 0.000356356 7 +4 0.000298048 646 +3 4.015465365 1 +4 0.000391700 16 +3 0.727171357 1 +4 0.000368542 18 +3 0.591349323 1 +4 0.000354578 18 +3 0.177802364 1 +4 0.000347755 17 +3 0.381697828 1 +4 0.000367834 21 +3 0.343728825 1 +4 0.000563400 10 +3 0.135223999 1 +4 0.000362096 1 +3 0.247882945 1 +4 0.000394669 1 +3 0.247599306 1 +4 0.000403518 1 +4 0.000402784 71 +3 1.639191893 1 +4 0.000430769 36 +7 0.000577903 TSTP +7 1.455151930 CONT +4 0.000599454 7 +4 0.000277477 655 +3 19.808624383 1 +4 0.000620969 730 +3 1.550627339 1 +4 0.000575359 607 +3 2.135387686 1 +4 0.000551566 16 +3 0.499508523 1 +4 0.000368551 17 +3 0.082895069 1 +4 0.000407322 16 +3 0.082724768 1 +4 0.000355119 16 +3 0.083289719 1 +4 0.000359989 16 +3 0.082972034 1 +4 0.000358664 18 +3 0.083550867 1 +4 0.000357394 18 +3 0.682393143 1 +4 0.000514469 18 +3 5.239464747 1 +4 0.000357573 17 +3 0.303718219 1 +4 0.000389341 16 +3 0.153497530 1 +4 0.000362550 16 +3 0.197645169 1 +4 0.000344754 16 +3 1.015752224 1 +3 0.247971976 1 +4 0.000381490 22 +3 0.191674293 1 +4 0.000436538 18 +3 0.207618715 2 +4 0.000372068 34 +3 0.175537166 1 +4 0.000369702 23 +4 0.000358929 33 +3 0.127364793 1 +4 0.000354324 18 +3 0.151376226 1 +4 0.000366593 55 +3 0.255738152 1 +4 0.000344903 18 +3 0.257391796 1 +3 0.104301529 1 +4 0.000360991 28 +3 0.237644139 1 +4 0.000392513 120 +3 0.255590357 1 +4 0.000351348 16 +3 0.775731688 1 +4 0.000417487 16 +3 0.255723760 1 +4 0.000358589 23 +3 0.183461158 1 +4 0.000403981 17 +3 0.295703357 2 +4 0.000381414 34 +3 0.224477384 1 +4 0.000394858 16 +3 0.152747648 1 +4 0.000333163 18 +3 0.318739023 1 +4 0.000365360 18 +3 0.166589978 1 +4 0.000330995 17 +3 0.169695514 1 +4 0.000365565 17 +3 0.453575751 1 +4 0.000391533 20 +3 3.511826680 1 +4 0.000379165 9 +3 0.231519861 1 +4 0.000355888 1 +3 0.151728131 1 +4 0.000402742 1 +3 0.191560006 1 +4 0.000330002 1 +3 0.111720453 1 +4 0.000427301 141 +3 1.015593541 1 +4 0.000366551 20 +3 0.499780992 1 +4 0.000390781 13 +3 0.083591972 1 +4 0.000338616 20 +3 0.083173877 1 +4 0.000348954 17 +3 0.082791217 1 +4 0.000315724 20 +3 0.082888571 1 +4 0.000324345 17 +3 0.082877315 1 +4 0.000342978 18 +3 0.228477607 1 +4 0.000354424 20 +3 0.253676349 1 +4 0.000352173 17 +3 0.177609442 1 +4 0.000324841 18 +3 0.997767898 1 +4 0.000411047 4 +3 0.399462155 1 +4 0.000341911 19 +3 0.401740314 1 +4 0.000350008 16 +3 0.498318919 1 +4 0.000342628 20 +3 0.083051030 1 +4 0.001183443 20 +3 0.082368509 1 +4 0.000430734 21 +3 0.083436563 1 +4 0.000409277 15 +3 0.083261267 1 +4 0.000520477 14 +3 0.082682237 1 +4 0.000479996 12 +3 0.083276505 1 +4 0.000406351 47 +3 0.083040343 1 +4 0.000376074 55 +3 0.083884389 1 +4 0.000367499 82 +3 0.083670398 1 +4 0.000460801 83 +3 0.121882354 1 +4 0.000333662 14 +3 0.499710087 1 +4 0.000350508 18 +3 0.083149838 1 +4 0.000329768 19 +3 0.082760868 1 +4 0.000338668 20 +3 0.083287297 1 +4 0.000329723 15 +3 0.083433722 1 +4 0.000318367 17 +3 0.082885103 1 +4 0.000391176 17 +3 0.083185700 1 +4 0.000338025 21 +3 0.082696974 1 +4 0.000339598 20 +3 0.083223383 1 +4 0.000339001 18 +3 0.280193383 1 +4 0.000362337 9 +3 0.119712471 1 +4 0.000323805 1 +3 0.167634103 1 +4 0.000324327 1 +3 0.095701181 1 +4 0.000382500 1 +4 0.000612131 10 +4 0.000366488 59 +3 0.310748273 1 +4 0.000361886 35 +7 0.000565278 TSTP +7 1.319347496 CONT +4 0.000644159 7 +4 0.000301609 786 +3 1.446800162 1 +4 0.000415385 15 +3 0.147274104 1 +4 0.000411903 18 +3 0.156549622 1 +4 0.000342514 28 +3 0.158945907 1 +4 0.000383638 18 +3 0.407592647 2 +4 0.107006610 32 +3 0.134968216 1 +4 0.000374285 10 +3 0.093619166 1 +4 0.000321406 1 +3 0.135669132 1 +4 0.000418615 1 +3 0.111632584 1 +4 0.000440515 1 +4 0.000418319 71 +3 0.223294460 1 +4 0.000391684 36 +7 0.000579182 TSTP +7 1.231321848 CONT +4 0.000599653 7 +4 0.000272461 792 +3 22.632186080 1 +4 0.000378197 10 +3 0.159171346 1 +4 0.000358639 1 +3 0.175482875 1 +4 0.000330726 1 +3 0.295940912 1 +4 0.000358370 1 +4 0.000559630 10 +4 0.000318172 61 +3 4.462731189 1 +4 0.000387862 10 +3 0.871705771 1 +4 0.000359601 1 +3 0.087987496 1 +4 0.000319220 1 +3 0.070927565 1 +4 0.000390511 1 +3 0.199889669 1 +4 0.000351310 1 +3 0.175724658 1 +4 0.000332611 1 +3 0.119842732 1 +4 0.000370593 13 +4 0.000387753 39 +3 0.767555090 1 +4 0.000493540 36 +7 0.000508215 TSTP +7 1.966763075 CONT +4 0.000741179 7 +4 0.000279981 775 +3 25.824754391 1 +4 0.000470756 36 +7 0.000494758 TSTP +7 65.088723394 CONT +4 0.000679719 7 +4 0.000275667 733 +3 6.927156213 1 +4 0.000373384 16 +3 0.496363737 1 +4 0.000376392 15 +3 0.470682080 1 +4 0.000349852 15 +3 0.391716421 1 +4 0.000394592 32 +3 0.247584509 1 +4 0.000420580 15 +3 0.311530292 1 +4 0.000370720 15 +3 0.183777268 1 +4 0.000363324 26 +3 0.151478625 1 +4 0.000446062 15 +3 0.231612927 1 +4 0.000339645 15 +3 0.127583911 1 +4 0.000373080 23 +3 0.176030220 1 +4 0.000348512 16 +3 0.335461954 1 +4 0.000445479 15 +3 1.183603443 1 +4 0.000391993 24 +3 0.159550415 1 +4 0.000429718 16 +3 1.815580809 1 +3 0.138366471 1 +4 0.000385973 75 +3 0.357256096 1 +4 0.000370503 10 +3 0.103593163 1 +4 0.000327301 1 +3 0.135668931 1 +4 0.000339880 1 +3 0.135758729 1 +4 0.000374779 1 +4 0.000383260 14 +4 0.000381334 56 +3 1.295293307 1 +4 0.000397081 36 +7 0.000524204 TSTP +7 26.187658124 CONT +4 0.000555116 7 +4 0.000279669 721 +4 0.000500127 37 +3 2.138534979 1 +4 0.000382233 18 +3 1.319434356 1 +4 0.000371323 18 +3 0.391746191 1 +4 0.000430419 118 +3 2.183749419 1 +4 0.000416517 16 +3 0.499887990 1 +4 0.000346047 16 +3 0.083137968 1 +4 0.000364435 16 +3 0.082712342 1 +4 0.000410273 18 +3 0.083108498 1 +4 0.000332183 19 +3 0.083055230 1 +4 0.000334342 16 +3 0.083178624 1 +4 0.000350218 18 +3 0.083412336 1 +4 0.000324054 21 +3 0.083131851 1 +4 0.000336146 17 +3 0.082551557 1 +4 0.000353136 17 +3 31.721861726 1 +4 0.000361401 10 +3 0.223027249 1 +4 0.000363075 1 +3 0.143735767 1 +4 0.000404044 1 +3 0.047432050 1 +4 0.000315162 1 +3 0.183901229 1 +4 0.000344476 1 +3 0.103401044 1 +4 0.000342643 1 +3 0.519775970 1 +4 0.000387978 1 +3 0.023680438 1 +4 0.000321479 1 +3 0.521798478 1 +4 0.000343976 1 +3 0.109494999 1 +4 0.000336452 1 +3 0.143885891 1 +4 0.000339551 1 +3 0.047382978 1 +4 0.000312934 1 +3 0.039850761 1 +4 0.000335274 1 +3 0.223626456 1 +4 0.000598221 357 +3 2.759557850 1 +4 0.000454453 165 +3 6.463847512 1 +4 0.000484059 69 +3 0.233266723 1 +4 0.000376357 45 +3 0.189701742 1 +4 0.000378185 34 +3 2.088931237 1 +4 0.000487228 18 +3 0.498740683 1 +4 0.000530493 17 +3 0.083294029 1 +4 0.000517648 16 +3 0.082933704 1 +4 0.000589034 16 +3 0.083121594 1 +4 0.000381672 16 +3 0.083190653 1 +4 0.000378804 18 +3 0.083077548 1 +4 0.000584605 16 +3 0.082964696 1 +4 0.000477948 16 +3 1.229635017 1 +3 0.111955978 1 +3 0.106424974 1 +4 0.000402502 29 +3 0.701155126 1 +4 0.000353726 9 +3 0.072668400 1 +4 0.000476573 243 +3 0.862667867 1 +4 0.000408783 87 +3 0.169676459 1 +4 0.000385322 38 +3 0.245570905 1 +4 0.000340632 19 +3 0.169687251 1 +4 0.000347165 15 +3 0.597576864 1 +4 0.000498113 136 +3 5.727928438 1 +4 0.000378035 42 +3 0.249524958 1 +4 0.000421281 17 +3 0.365535485 1 +4 0.000362850 16 +3 6.880479377 1 +3 0.087821755 1 +4 0.000404628 28 +3 0.367357626 12 +4 0.000426716 55 +4 0.707348201 17 +3 0.130074470 1 +4 0.109903231 32 +3 1.027983646 1 +4 0.000356073 16 +3 0.655678250 1 +4 0.000371281 16 +3 0.537767701 1 +4 0.000346343 16 +3 0.349609359 1 +3 0.047872207 1 +4 0.000418273 28 +3 0.215773114 1 +4 0.000347070 17 +3 0.087473202 1 +4 0.000346937 17 +3 0.103719147 1 +4 0.000344838 17 +3 0.063617875 1 +4 0.000328166 18 +3 0.583689531 1 +4 0.000365628 17 +3 0.311682441 1 +4 0.000360082 16 +3 0.527836560 2 +4 0.000441033 27 +3 0.167394327 1 +4 0.000340744 16 +3 0.247578360 1 +3 0.048043305 1 +4 0.000443248 26 +3 0.225666468 1 +4 0.000344870 17 +3 0.213619058 1 +4 0.000394568 17 +3 0.559562890 2 +4 0.000394478 27 +3 15.848324193 1 +4 0.000419279 19 +3 0.183489003 1 +4 0.000345899 17 +3 2.687855479 1 +4 0.000386428 16 +3 0.231489856 1 +4 0.000344842 16 +3 0.500614309 1 +4 0.000372932 16 +3 0.082950621 1 +4 0.000424711 16 +3 0.082927846 1 +4 0.000359324 16 +3 0.082941249 1 +4 0.000359952 16 +3 0.083537449 1 +4 0.000432234 16 +3 0.083639033 1 +4 0.000319760 17 +3 0.082940801 1 +4 0.000367004 16 +3 0.082525413 1 +4 0.000343394 16 +3 0.364577942 1 +4 0.000374545 16 +3 0.221683183 1 +4 0.000344868 4 +3 0.175628924 1 +4 0.000394552 23 +3 0.487635634 1 +4 0.000354558 20 +3 0.304027953 1 +4 0.000420292 20 +3 0.716794830 1 +4 0.109962082 32 +3 0.588597619 1 +4 0.000363484 18 +3 0.153596439 1 +4 0.000393960 19 +3 0.205857650 1 +4 0.000340264 16 +3 0.279444090 1 +4 0.000355102 22 +3 0.223662246 1 +4 0.000430116 18 +3 0.823680490 2 +4 0.000386804 39 +3 0.367559652 1 +4 0.000371871 22 +3 0.231607979 1 +4 0.000350902 18 +3 0.803025775 1 +4 0.110021990 31 +3 0.142996783 1 +4 0.000338813 17 +3 0.247082307 1 +4 0.000455963 55 +3 0.175699074 1 +4 0.000337278 17 +3 0.159629093 1 +4 0.000409539 55 +3 8.752156863 1 +4 0.000371058 9 +3 0.159565505 1 +4 0.000362081 1 +3 0.159543856 1 +4 0.000364929 1 +3 0.135718484 1 +4 0.000430600 11 +4 0.000388491 59 +3 0.879830763 1 +4 0.000351088 35 +7 0.000591714 TSTP +7 10.775074428 CONT +4 0.000532260 7 +4 0.000283695 801 +3 122.379680708 1 +4 0.000338202 1 +3 0.975616476 1 +4 0.000372258 17 +3 0.471044194 1 +4 0.000365445 21 +3 0.319595247 1 +4 0.000347971 18 +3 0.479822759 2 +4 0.000381076 10 +3 0.087500836 1 +4 0.000372536 1 +3 0.143525511 1 +4 0.000343071 1 +3 0.095868843 1 +4 0.000446368 1 +4 0.000368224 69 +3 0.375411408 1 +4 0.000338057 35 +7 0.000563565 TSTP +7 34.800073031 CONT +4 0.000746321 7 +4 0.000257701 806 +3 1.343129903 1 +4 0.000460083 15 +3 0.499812064 1 +4 0.000412548 15 +3 0.083184054 1 +4 0.000376452 15 +3 0.083522459 1 +4 0.000408231 17 +3 0.082785596 1 +4 0.000371098 15 +3 0.488374234 1 +4 0.000340219 17 +3 0.143810199 1 +4 0.000418250 16 +3 0.153628152 1 +4 0.000340937 16 +3 0.149498016 1 +4 0.000371942 16 +3 0.153786227 1 +4 0.000337495 16 +3 0.157573629 1 +4 0.000438718 22 +3 0.312586383 1 +4 0.000370158 22 +3 0.730315193 1 +4 0.110086103 32 +3 0.382311887 2 +4 0.000382288 11 +3 0.224281839 1 +4 0.000428709 1 +3 0.126845647 1 +4 0.000438222 1 +3 0.103578691 1 +4 0.000389511 1 +4 0.000367224 70 +3 0.327889257 1 +4 0.000461851 36 +7 0.000523766 TSTP +7 14.535079922 CONT +4 0.000670302 7 +4 0.000265270 810 +3 9.103631881 1 +4 0.000367466 18 +3 0.217331832 1 +4 0.000399854 19 +3 1.421553205 1 +4 0.000361412 19 +3 0.193680658 1 +4 0.000361545 18 +3 0.141506554 1 +4 0.000387865 19 +3 0.199722276 1 +4 0.000355568 16 +3 0.223687340 1 +4 0.000436533 32 +3 0.311582460 1 +4 0.000362446 10 +3 0.119464594 1 +4 0.000321298 1 +3 0.127769465 1 +4 0.000342437 1 +3 0.103694545 1 +4 0.000358101 1 +4 0.000603249 10 +4 0.000399811 59 +3 8.535483151 1 +4 0.000405372 36 +7 0.000583666 TSTP +7 5.998846396 CONT +4 0.000580307 7 +4 0.000295594 766 +4 0.000503637 36 +3 2.294722820 1 +4 0.000388838 26 +3 3.503556579 1 +4 0.000373627 9 +3 0.143605993 1 +4 0.000330021 1 +3 0.175570042 1 +4 0.000329775 1 +3 0.119669497 1 +4 0.000384506 1 +4 0.000341788 54 +4 0.000338318 15 +3 21.992383039 1 +4 0.000380385 9 +3 0.334960478 1 +4 0.000376254 1 +3 0.159566818 1 +4 0.000360293 1 +3 0.175726678 1 +4 0.000340187 1 +3 0.215654078 1 +4 0.000324899 1 +3 0.127898264 1 +4 0.000574071 755 +3 1.687538943 1 +3 0.129829547 1 +4 0.000370848 30 +3 0.957674306 1 +4 0.000593030 675 +3 0.137423633 1 +4 0.000468474 17 +3 0.909460482 1 +4 0.000495247 15 +3 0.169503370 1 +4 0.000378756 15 +3 0.157521154 1 +4 0.000329270 15 +3 0.153895847 1 +4 0.000350257 17 +3 0.141571021 1 +4 0.000342057 15 +3 0.121773778 1 +4 0.000365563 15 +3 0.101450868 1 +4 0.000354511 15 +3 0.248445006 1 +4 0.000408703 76 +3 0.446846618 1 +3 0.135861200 1 +4 0.000378781 21 +3 0.399849423 1 +4 0.000333820 17 +3 0.167659310 1 +4 0.000360256 23 +3 0.087678898 1 +4 0.000330257 18 +3 0.223584124 1 +4 0.000395566 18 +3 0.015619789 1 +4 0.000336952 18 +3 0.392545632 1 +4 0.000342836 16 +3 0.118843946 1 +4 0.000372277 17 +3 0.151461990 1 +4 0.000336400 18 +3 0.264330546 1 +4 0.000391538 18 +3 0.167508769 1 +4 0.000346292 18 +3 0.151135765 1 +4 0.000432924 19 +3 0.111685031 1 +4 0.000331441 18 +3 0.079619828 1 +4 0.000361622 18 +3 0.119696776 1 +4 0.000336516 18 +3 0.713742396 1 +3 0.086780048 1 +4 0.000360976 32 +3 0.110696559 1 +4 0.000325357 15 +3 0.153844943 1 +4 0.000350991 17 +3 0.335340094 1 +4 0.000353421 16 +3 5.974912521 1 +4 0.000358901 16 +3 0.129029239 1 +4 0.000374149 16 +3 0.237395351 1 +3 0.088025697 1 +4 0.000363525 4 +3 0.167722244 1 +3 0.055909963 1 +4 0.000352863 4 +3 0.175656873 1 +3 0.040047222 1 +4 0.000400447 6 +3 0.247662054 1 +3 0.055969909 1 +4 0.000361014 4 +3 0.591591932 1 +4 0.000389174 21 +3 0.599701281 1 +4 0.000383012 4 +3 0.185704845 1 +4 0.000340460 4 +3 0.117530795 1 +4 0.000336025 4 +3 0.127651288 1 +4 0.000326314 23 +3 0.227617576 21 +4 0.000394931 49 +3 0.739762936 1 +4 0.000364907 28 +3 2.933895249 24 +4 0.000409806 52 +3 0.809380993 2 +4 0.000386852 35 +3 0.359707158 1 +3 0.145967481 1 +4 0.000488735 83 +3 0.245435757 1 +3 0.153976145 1 +4 0.000379350 87 +3 0.205686113 1 +3 0.171590848 1 +4 0.000383419 73 +3 0.180070094 1 +3 0.169972937 1 +4 0.000411777 62 +3 0.205778448 1 +3 0.170474122 1 +4 0.000392368 62 +3 0.228967146 1 +3 0.154108572 1 +4 0.000466808 84 +3 0.669659733 1 +4 0.000357843 17 +3 0.279718786 1 +4 0.000387121 58 +3 3.863563779 2 +3 0.129957922 1 +4 0.000396599 98 +3 0.717649806 1 +4 0.000393166 23 +3 0.399692174 1 +4 0.000384597 10 +3 0.112958508 1 +4 0.000337201 1 +3 0.126218681 1 +4 0.000316153 1 +3 0.095579406 1 +4 0.000400509 1 +4 0.000780511 10 +4 0.000384998 59 +3 1.879097413 1 +4 0.000405332 36 +7 0.000520590 TSTP +7 119.826827916 CONT +4 0.000775849 7 +4 0.000260731 821 +3 4.375067531 1 +4 0.000381934 10 +3 0.279467306 1 +4 0.000361364 1 +3 0.207587374 1 +4 0.000343894 1 +3 0.167709587 1 +4 0.000368746 1 +3 0.215741233 1 +4 0.000337767 1 +3 0.223551818 1 +4 0.000538641 264 +3 2.239531984 1 +4 0.000353768 9 +3 0.087861376 1 +4 0.000434604 172 +3 0.591198116 1 +4 0.000413197 87 +3 27.650282086 1 +4 0.000375320 15 +3 0.216036186 1 +4 0.000339618 15 +3 0.557577555 1 +4 0.000361545 17 +3 0.135514992 1 +4 0.000849186 16 +3 0.209302149 1 +4 0.000328994 16 +3 0.213714076 1 +4 0.000342101 17 +3 0.169517039 1 +4 0.000346635 17 +3 0.421847735 1 +4 0.000351468 17 +3 0.151544748 1 +3 0.080143076 1 +4 0.000351960 20 +3 0.263690201 1 +3 0.055774217 1 +4 0.000399576 5 +3 0.367654328 1 +4 0.000375681 6 +3 0.719657836 1 +4 0.000434688 16 +3 0.263521851 1 +4 0.000346499 23 +3 0.279746476 1 +4 0.000380054 18 +3 0.710073289 1 +4 0.110008539 32 +3 2.347598243 1 +4 0.000393924 10 +3 0.079685270 1 +4 0.000401395 1 +3 0.135456431 1 +4 0.000371437 1 +3 0.103691393 1 +4 0.000349437 1 +4 0.000385114 70 +3 0.239821236 1 +4 0.000335297 36 +7 0.000505632 TSTP +7 1.230823148 CONT +4 0.000675817 7 +4 0.000350616 7 +4 0.000294831 850 +3 23.808037641 1 +4 0.000483238 16 +3 0.200756075 1 +4 0.000342844 16 +3 0.165768291 1 +4 0.000389865 39 +3 0.161467370 1 +4 0.000407762 73 +3 0.317657050 1 +4 0.000374583 18 +3 0.185507615 1 +4 0.000350344 21 +3 1.685930882 1 +4 0.000430918 10 +3 0.199468221 1 +4 0.000349579 1 +3 0.143750021 1 +4 0.000326515 1 +3 0.119605560 1 +4 0.000326526 1 +3 0.119984250 1 +4 0.000409566 39 +3 0.615348721 1 +4 0.000597532 913 +3 1.681877265 1 +4 0.000578058 666 +3 1.213063033 1 +4 0.000566762 724 +3 0.953636042 1 +4 0.000630790 344 +3 0.957197011 1 +4 0.000371631 20 +4 0.000424486 669 +3 31.555179780 1 +4 0.000616650 744 +3 1.020593190 1 +4 0.000362479 10 +3 0.071589347 1 +4 0.000625290 674 +3 3.136312054 1 +4 0.000364258 62 +3 0.679052733 1 +4 0.000576460 579 +3 0.487292331 1 +4 0.000395222 55 +3 1.047614227 1 +4 0.000459645 19 +4 0.000402406 782 +3 0.689108023 1 +4 0.000509481 408 +3 0.709404492 1 +4 0.000578293 720 +3 1.201603521 1 +4 0.000570565 855 +3 0.661291698 1 +4 0.000581138 748 +3 3.121724722 1 +4 0.000605819 657 +3 0.933460490 1 +4 0.000563268 560 +3 0.655363138 1 +4 0.000617957 838 +3 0.895563613 1 +4 0.000555777 612 +3 0.471409918 1 +4 0.000558188 583 +3 0.503285278 1 +4 0.000412215 55 +4 0.000375934 748 +3 0.999404469 1 +4 0.000397323 10 +3 0.119496582 1 +4 0.000334729 1 +3 0.119657542 1 +4 0.000366361 1 +4 0.001255341 8 +4 0.000320612 23 diff --git a/lib/iolog/regress/corpus/seed/timing/timing.7 b/lib/iolog/regress/corpus/seed/timing/timing.7 new file mode 100644 index 0000000000..320a8680f6 --- /dev/null +++ b/lib/iolog/regress/corpus/seed/timing/timing.7 @@ -0,0 +1,10 @@ +3 0.731998581 1 +4 0.001916416 2 +7 0.002850082 TSTP +7 0.683456735 CONT +3 0.688967687 1 +4 0.001667674 2 +7 0.002277631 TSTP +7 0.515107145 CONT +3 0.343713993 1 +4 0.002050968 2 diff --git a/lib/iolog/regress/corpus/seed/timing/timing.8 b/lib/iolog/regress/corpus/seed/timing/timing.8 new file mode 100644 index 0000000000..5fabcc4bdd --- /dev/null +++ b/lib/iolog/regress/corpus/seed/timing/timing.8 @@ -0,0 +1,891 @@ +4 0.064664132 32 +4 0.000859566 850 +3 1.028898872 1 +4 0.001747739 9 +3 0.926126566 1 +4 0.001425060 1 +3 0.198414833 1 +4 0.001499542 1 +3 0.134447257 1 +4 0.001506297 1 +3 0.118268537 1 +4 0.001541057 1 +3 0.086780988 1 +4 0.001622847 1 +3 0.062239852 1 +4 0.001588923 1 +3 0.214384951 1 +4 0.001460651 1 +3 0.086510579 1 +4 0.003193030 911 +3 1.981206350 1 +4 0.001460605 17 +3 0.342451860 1 +3 0.121863647 1 +4 0.001573592 30 +3 0.260718112 1 +4 0.104455308 53 +3 0.215829722 1 +4 0.001744179 18 +3 0.365827912 1 +4 0.001569107 23 +3 0.846427645 1 +4 0.001572957 19 +3 0.814749657 1 +4 0.001575922 19 +3 0.182163938 1 +4 0.001568547 19 +3 0.414578434 1 +4 0.001656973 19 +3 0.318272879 1 +4 0.001584842 19 +3 0.262367325 1 +4 0.001488336 19 +3 0.230410279 1 +4 0.109315456 37 +4 0.001609717 49 +3 0.353056895 1 +4 0.001788404 10 +3 0.094128417 1 +4 0.001531837 1 +3 0.142508934 1 +4 0.001593153 1 +3 0.126357885 1 +4 0.002388055 15 +4 0.001432636 58 +3 1.228902472 1 +4 0.002391036 40 +7 0.002743419 TSTP +7 5025.564659632 CONT +4 0.003192704 7 +4 0.001526602 997 +3 0.793028278 1 +4 0.003000277 40 +7 0.002235214 TSTP +7 5925.171790777 CONT +4 0.002096058 7 +4 0.001318204 7 +4 0.001159538 900 +3 0.984554657 1 +4 0.001469616 40 +7 0.002327650 TSTP +7 6189.225069749 CONT +4 0.002104678 7 +4 0.001037801 7 +4 0.001216318 900 +3 1.161146125 1 +4 0.001439585 16 +3 0.814606611 1 +4 0.001606528 21 +3 0.230277078 1 +4 0.001975296 53 +3 0.190021728 1 +3 0.096129999 1 +4 0.001594887 33 +3 0.182291714 1 +4 0.001773170 4 +3 0.326454021 1 +4 0.001484961 9 +3 0.366715902 1 +4 0.001543752 1 +3 0.446210491 1 +4 0.001689363 1 +3 0.006253433 1 +4 0.001433390 1 +3 0.064300445 1 +4 0.001604202 1 +3 0.340813942 1 +4 0.001517377 1 +3 0.160276062 1 +4 0.002970366 1 +3 0.058797601 1 +4 0.001392200 1 +3 0.127730195 1 +4 0.001667163 1 +3 0.094630017 1 +4 0.001782949 1 +4 0.001676588 70 +3 0.355976786 1 +4 0.001506307 39 +7 0.002105798 TSTP +7 14.292867168 CONT +4 0.002398126 7 +4 0.001008191 7 +4 0.001088992 984 +3 1.219079321 1 +4 0.001760534 21 +3 0.285906574 1 +4 0.001752349 60 +3 0.190367416 1 +4 0.105561951 31 +3 0.022256270 1 +4 0.001478141 15 +3 0.206781774 1 +4 0.001554002 4 +3 0.270277605 1 +4 0.001420215 9 +3 0.118523501 1 +4 0.001731089 1 +3 0.126173273 1 +4 0.001409300 1 +3 0.118763318 1 +4 0.001517062 1 +4 0.001639842 70 +3 0.293063491 1 +4 0.001358755 39 +7 0.002350591 TSTP +7 88449.593270142 CONT +4 0.002494607 7 +4 0.001958302 991 +3 0.825250499 1 +4 0.001436475 9 +3 0.438398078 1 +4 0.001697468 32 +3 1.350305447 1 +4 0.001477446 15 +3 0.168253265 1 +4 0.001493751 15 +3 0.180841618 1 +4 0.001722349 21 +3 0.182231663 1 +4 0.001695639 47 +3 0.230290135 1 +4 0.109360689 31 +3 0.178605949 1 +4 0.111499107 1 +3 0.144875484 1 +4 0.001417120 9 +3 0.150117516 1 +4 0.001488857 1 +3 0.110446391 1 +4 0.001616968 1 +3 0.110541552 1 +4 0.001419525 1 +4 0.001945622 10 +4 0.001402320 60 +3 6.452086794 1 +4 0.001500216 73 +3 0.405864230 1 +4 0.001626618 9 +3 0.134289323 1 +4 0.001338674 1 +3 0.142601704 1 +4 0.001527262 1 +3 0.102629985 1 +4 0.001900211 11 +4 0.001350750 60 +3 0.405180113 1 +4 0.001535457 39 +7 0.002495892 TSTP +7 221561.264483987 CONT +4 0.002009587 7 +4 0.001101567 7 +4 0.001442021 919 +4 0.001278489 65 +3 5.463826160 1 +4 0.001484976 15 +3 0.184226629 1 +4 0.001414341 15 +3 0.292783684 1 +3 0.153810375 1 +4 0.001446971 27 +3 0.268656044 1 +4 0.002896326 120 +3 0.285181477 1 +4 0.001661168 15 +3 0.150478007 1 +4 0.001453396 22 +3 0.230540344 1 +4 0.001440316 53 +3 0.166485119 1 +3 0.087962359 1 +4 0.001508426 33 +3 0.222749504 1 +4 0.001509546 18 +3 1.894427201 1 +4 0.001588127 26 +3 1.518514800 1 +4 0.001448627 18 +3 0.222417824 1 +4 0.001472537 24 +3 0.190411167 1 +4 0.001525827 19 +3 0.838594711 1 +3 0.031760695 1 +4 0.001551002 38 +3 0.870824301 1 +4 0.001489017 16 +3 1.014356232 1 +4 0.001701719 18 +3 0.822415083 1 +4 0.001494696 24 +3 0.222596147 1 +4 0.001432681 19 +3 0.310526270 1 +4 0.001596028 19 +3 0.126330981 1 +4 0.001500257 19 +3 0.174752799 1 +4 0.001638468 20 +3 0.253981113 1 +4 0.001461846 37 +3 0.254649605 1 +4 0.103883614 34 +3 0.200314766 1 +4 0.001387905 20 +3 0.406667304 1 +4 0.001731770 17 +3 0.110003286 1 +4 0.001520397 23 +3 0.230621930 1 +4 0.001493146 24 +3 0.446629930 1 +4 0.001496936 16 +3 0.254613349 1 +4 0.001397571 15 +3 0.166240486 1 +4 0.001700974 22 +3 0.190319056 1 +4 0.001517261 58 +3 0.254819347 1 +4 0.107582560 31 +3 0.292233944 1 +4 0.001445151 9 +3 0.110475422 1 +4 0.001698858 1 +3 0.094333824 1 +4 0.001586513 77 +3 0.326387580 1 +4 0.001661283 39 +7 0.002204689 TSTP +7 0.556717292 CONT +4 0.002623429 7 +4 0.001179768 1027 +3 0.267631453 1 +4 0.001424285 9 +3 0.110521878 1 +4 0.001441585 1 +3 0.127356593 1 +4 0.001510382 1 +3 0.077681400 1 +4 0.001539912 1 +4 0.001640563 70 +3 0.388998560 1 +4 0.001719929 39 +7 0.002200549 TSTP +7 13.244385459 CONT +4 0.000729218 7 +4 0.000294418 1005 +3 7.079466151 1 +4 0.001791190 45 +3 0.205970549 1 +4 0.001643508 17 +3 0.414571661 1 +4 0.001531132 16 +3 0.222850249 1 +4 0.001640468 17 +3 0.205982399 1 +4 0.001558167 17 +3 0.134087222 1 +4 0.001465226 17 +3 0.166847603 1 +4 0.001662358 17 +3 0.126370137 1 +4 0.001446416 17 +3 0.550630445 1 +4 0.001435360 16 +3 0.334496380 1 +4 0.001602892 19 +3 1.686172041 1 +4 0.000346437 17 +3 0.151576266 1 +4 0.000349729 16 +3 0.319957850 1 +4 0.001433906 17 +3 0.166454049 1 +4 0.001689503 17 +3 0.062391632 1 +4 0.001573468 17 +3 0.150461777 1 +4 0.001457996 16 +3 0.070532447 1 +4 0.001422680 17 +3 0.086873802 1 +4 0.001815970 16 +3 0.189849021 1 +4 0.001595918 19 +3 0.126580914 1 +4 0.001572067 18 +3 0.102119195 1 +4 0.001489716 18 +3 0.110616169 1 +4 0.001610073 18 +3 0.142382103 1 +4 0.001462456 18 +3 0.062502293 1 +4 0.001701379 17 +3 0.214412562 1 +4 0.001462741 18 +3 1.198409314 1 +4 0.000460850 17 +3 0.999678958 1 +4 0.000331997 17 +3 0.127804986 1 +4 0.000303396 18 +3 0.151363097 1 +4 0.000316266 18 +3 0.112134826 1 +4 0.001454656 18 +3 0.150624064 1 +4 0.001407951 37 +3 0.222441090 1 +4 0.111006972 33 +3 0.281208333 1 +4 0.001415495 17 +3 0.150437782 1 +3 0.063714477 1 +4 0.001565847 27 +3 0.214617624 1 +4 0.001526422 18 +3 0.062489458 1 +4 0.001570842 18 +3 0.166474689 1 +4 0.001500832 18 +3 0.030451545 1 +4 0.001512782 20 +3 0.222611776 1 +4 0.001628519 19 +3 0.030120866 1 +4 0.001466336 19 +3 0.030404355 1 +4 0.001619698 19 +3 0.334815583 1 +4 0.108865834 33 +3 0.187010010 1 +4 0.001488371 17 +3 0.126381232 1 +4 0.001505957 14 +3 0.126545303 1 +3 0.112060040 1 +4 0.001389665 9 +3 0.422737541 1 +4 0.001438741 1 +3 0.286661427 1 +4 0.001490682 1 +3 0.152535520 1 +4 0.001536577 36 +3 0.324257351 1 +4 0.001444521 9 +3 0.142471479 1 +4 0.001356360 1 +3 0.158776959 1 +4 0.001371060 1 +3 0.094594897 1 +4 0.001367810 33 +4 0.001464076 23 +3 0.549135158 1 +4 0.001431856 9 +3 0.126501453 1 +4 0.001472637 1 +3 0.126547613 1 +4 0.001491527 1 +3 0.078728327 1 +4 0.001626128 11 +4 0.001487806 59 +3 0.340831284 1 +4 0.001617373 39 +7 0.002583839 TSTP +7 514445.097903843 CONT +4 0.002257030 7 +4 0.002294835 1007 +3 0.945625170 1 +4 0.002777691 39 +7 0.002355126 TSTP +7 86184.341362582 CONT +4 0.002221120 7 +4 0.001443996 7 +4 0.001283714 914 +3 2.392062045 1 +4 0.002652904 12 +4 0.001409386 27 +7 0.002425876 TSTP +7 21288.589641005 CONT +4 0.002742450 7 +4 0.001324494 7 +4 0.002229915 914 +3 1.223042554 1 +4 0.001448160 39 +7 0.002279495 TSTP +7 2137.685708492 CONT +4 0.004071430 7 +4 0.001616922 7 +4 0.001927357 914 +3 0.830124110 1 +4 0.001490492 39 +7 0.003177815 TSTP +7 17415.985595701 CONT +4 0.002433577 7 +4 0.000994215 7 +4 0.001078497 914 +3 1.240972872 1 +4 0.001393460 39 +7 0.002303475 TSTP +7 601.486631680 CONT +4 0.002426206 7 +4 0.001210918 7 +4 0.001102268 914 +3 0.857339012 1 +4 0.001674773 39 +7 0.002435617 TSTP +7 391818.529264947 CONT +4 0.000657391 7 +4 0.000218089 7 +4 0.000220770 914 +3 0.357849108 1 +4 0.001405050 9 +3 0.166742233 1 +4 0.001567897 1 +3 0.438304127 1 +4 0.001349665 1 +3 0.168918821 1 +4 0.001550563 32 +3 0.308645085 1 +4 0.001736869 39 +7 0.002554823 TSTP +7 303016.218109119 CONT +4 0.002752175 7 +4 0.001469450 7 +4 0.001455036 914 +3 0.887365475 1 +4 0.001395045 39 +7 0.002446251 TSTP +7 215139.725383626 CONT +4 0.002051468 7 +4 0.001705964 7 +4 0.001550202 914 +3 2.231928411 1 +4 0.001527117 15 +3 0.498266348 1 +4 0.001486902 15 +3 0.082105873 1 +4 0.001468756 15 +3 0.081830336 1 +4 0.001803544 15 +3 0.081630069 1 +4 0.001465996 15 +3 0.082089163 1 +4 0.001416686 15 +3 0.081225139 1 +4 0.001559182 15 +3 0.081618058 1 +4 0.001515897 15 +3 0.358906691 1 +4 0.001396906 14 +3 0.470357374 1 +4 0.001615638 20 +3 0.590548039 1 +4 0.001531272 52 +3 0.318289227 1 +4 0.106849942 30 +3 0.589134119 1 +4 0.001647973 13 +3 0.238312812 1 +4 0.001495872 14 +3 0.254615192 1 +3 0.680285637 1 +4 0.001795360 57 +3 0.013906154 1 +3 0.616146242 1 +3 0.409887356 1 +4 0.001467901 76 +3 0.516728247 1 +4 0.001690474 38 +3 0.382235119 1 +4 0.001520617 8 +3 0.142389056 1 +4 0.001473906 1 +3 0.142420386 1 +4 0.001444666 1 +3 0.174696653 1 +4 0.001473371 1 +4 0.001439716 69 +3 19.886035460 1 +4 0.001387176 8 +3 0.198563762 1 +4 0.001444846 1 +3 0.150104471 1 +4 0.001389040 1 +3 0.070689737 1 +4 0.001632588 1 +3 0.222393421 1 +4 0.001440621 1 +3 0.238663600 1 +4 0.001475092 1 +3 0.062492711 1 +4 0.001421216 1 +3 0.182816888 1 +4 0.002090833 97 +3 1.334082056 1 +4 0.001590818 13 +3 0.305939475 1 +4 0.001700324 67 +3 0.235779724 1 +4 0.001464116 19 +4 0.001492152 35 +3 0.964004231 1 +4 0.001741719 50 +3 0.278959707 1 +4 0.001432251 21 +3 0.182114085 1 +4 0.001620368 47 +3 0.350179179 1 +4 0.107922284 31 +3 0.131951961 1 +4 0.001523742 9 +3 0.094135896 1 +4 0.001403400 1 +3 0.142636459 1 +4 0.001577172 1 +3 0.094638578 1 +4 0.001459331 1 +4 0.001541516 70 +3 96.145045437 1 +4 0.001549497 73 +3 0.341566794 1 +4 0.001548772 24 +3 0.498636188 1 +4 0.001599858 36 +3 0.081953121 1 +4 0.001685429 80 +3 0.081549192 1 +4 0.001707554 73 +3 0.081462547 1 +4 0.001545412 29 +3 0.081530717 1 +4 0.001500116 28 +3 0.082355147 1 +4 0.001531262 66 +3 0.081767874 1 +4 0.001744160 38 +3 0.789979541 1 +4 0.001606227 4 +3 0.358523227 1 +4 0.001604633 82 +3 0.272270038 1 +4 0.001443841 34 +3 0.332620240 1 +4 0.001770160 29 +3 0.624231837 1 +4 0.001632883 64 +3 1.652451899 1 +4 0.001654788 70 +3 0.734505012 1 +4 0.001562342 93 +3 1.880416967 1 +4 0.001634748 95 +3 0.428543082 1 +4 0.001622603 82 +3 0.984350791 1 +4 0.001579713 61 +3 2.260460546 1 +4 0.001487417 4 +3 1.174634347 1 +4 0.109238624 1 +3 0.122995541 1 +4 0.001469521 9 +3 0.205892618 1 +4 0.001436966 1 +3 0.190721400 1 +4 0.001453656 1 +3 0.230410960 1 +4 0.001382565 1 +4 0.001685329 10 +4 0.001422790 60 +3 497.229682755 1 +4 0.001702369 64 +3 0.373140824 1 +4 0.001650363 53 +3 0.222094912 1 +4 0.108091981 31 +3 0.020290645 1 +4 0.002822676 16 +3 0.429852456 1 +4 0.001597523 4 +3 0.309925354 1 +4 0.004018280 9 +3 0.107818588 1 +4 0.002077103 1 +3 0.157934667 1 +4 0.001607838 1 +3 0.142065202 1 +4 0.001527667 1 +4 0.001288279 70 +3 3.669505533 1 +4 0.001787579 112 +3 0.333964666 1 +4 0.001474371 16 +3 0.350737976 1 +4 0.001566112 4 +3 0.390887715 1 +4 0.002744260 9 +3 0.140604781 1 +4 0.001397456 1 +3 0.142504391 1 +4 0.001401601 1 +3 0.134659340 1 +4 0.001721459 11 +4 0.001419231 60 +3 26.822251418 1 +4 0.001519201 39 +7 0.002500413 TSTP +7 525.340953853 CONT +4 0.002230704 7 +4 0.001091722 7 +4 0.001688199 989 +3 11.498496123 1 +4 0.001568418 21 +3 0.270488068 1 +4 0.001494706 53 +3 0.181928393 1 +4 0.108733447 31 +3 0.011220234 1 +4 0.000300299 16 +3 0.186000031 1 +4 0.000368706 15 +3 0.165946487 1 +4 0.001458631 15 +3 0.206296603 1 +4 0.001388705 4 +3 0.398763618 1 +4 0.001733419 9 +3 0.134039163 1 +4 0.001352560 1 +3 0.150563986 1 +4 0.001774664 1 +3 0.118604493 1 +4 0.001889116 1 +4 0.001338740 10 +4 0.001224763 60 +3 39.317057656 1 +4 0.001529292 114 +3 0.526420139 1 +4 0.001762420 24 +3 1.453889027 1 +4 0.001660013 9 +3 0.142498857 1 +4 0.001503141 1 +3 0.158253476 1 +4 0.001575483 1 +3 0.126616056 1 +4 0.001599948 11 +4 0.001609493 60 +3 18.669558170 1 +4 0.001706343 39 +7 0.002530179 TSTP +7 899.138795805 CONT +4 0.002583274 7 +4 0.001100897 996 +3 22.924250602 1 +4 0.001534347 39 +7 0.002390422 TSTP +7 33.389385737 CONT +4 0.002581218 7 +4 0.001103253 909 +3 1.300181276 1 +4 0.001546257 21 +3 0.222059492 1 +4 0.001546522 53 +3 0.238415013 1 +4 0.109184843 31 +3 0.379042919 1 +4 0.001510807 16 +3 0.728577452 1 +4 0.001415450 15 +3 0.348526297 1 +4 0.001532597 15 +3 0.238429373 1 +4 0.001420890 4 +3 0.494674934 1 +4 0.001382005 9 +3 0.142381471 1 +4 0.001641738 1 +3 0.158314351 1 +4 0.001517022 1 +3 0.110660725 1 +4 0.001756579 11 +4 0.001475116 60 +3 4.469140151 1 +4 0.001770309 114 +3 1.342163731 1 +4 0.001480936 15 +3 0.120459473 1 +4 0.001589178 15 +3 0.356430164 1 +4 0.001456581 4 +3 0.334376125 1 +4 0.001466151 9 +3 0.126632301 1 +4 0.001454071 1 +3 0.126422069 1 +4 0.001605663 1 +3 0.150550710 1 +4 0.001745935 11 +4 0.001392925 60 +3 4.325068886 1 +4 0.001720604 39 +7 0.002486903 TSTP +7 891.514393588 CONT +4 0.002117423 7 +4 0.001018707 7 +4 0.001061871 989 +3 0.962925345 1 +4 0.001912621 39 +7 0.002395502 TSTP +7 223.988309212 CONT +4 0.004026484 7 +4 0.003277921 909 +3 0.824140274 1 +4 0.001467277 39 +7 0.002166324 TSTP +7 165.969859204 CONT +4 0.002685960 7 +4 0.001102062 909 +3 1.204357411 1 +4 0.001592647 39 +7 0.002600499 TSTP +7 365.952349812 CONT +4 0.002136278 7 +4 0.001015612 7 +4 0.001090512 902 +3 2.587193742 1 +4 0.001677088 21 +3 0.238212841 1 +4 0.001453711 58 +3 0.182738187 1 +4 0.103895514 31 +3 0.015860486 1 +4 0.001442766 16 +3 0.175100452 1 +4 0.001623353 4 +3 0.317922373 1 +4 0.001434376 9 +3 0.118643218 1 +4 0.001451876 1 +3 0.143568628 1 +4 0.001493967 1 +3 0.133445736 1 +4 0.001666329 11 +4 0.001563117 60 +3 10.886975712 1 +4 0.001788550 107 +3 1.028357489 1 +4 0.001568272 16 +3 0.222512547 1 +4 0.001624668 4 +3 0.422244017 1 +4 0.001640078 9 +3 0.118441936 1 +4 0.001454661 1 +3 0.190559708 1 +4 0.001502192 1 +3 0.063679725 1 +4 0.001555767 1 +4 0.001457386 70 +3 1.371874710 1 +4 0.001718184 39 +7 0.002116473 TSTP +7 1576.050026568 CONT +4 0.002127468 7 +4 0.001049282 7 +4 0.001639418 924 +4 0.001391265 65 +3 1.523879474 1 +4 0.001548957 21 +3 0.250838772 1 +4 0.001700133 58 +3 0.230340197 1 +4 0.104563743 31 +3 0.239123573 1 +4 0.001496932 15 +3 0.729816646 1 +4 0.001550162 15 +3 1.187192299 1 +4 0.001481971 9 +3 0.110402577 1 +4 0.001412975 1 +3 0.158515493 1 +4 0.001436916 1 +3 0.094598474 1 +4 0.001499411 1 +4 0.001518196 70 +3 9.365579810 1 +4 0.001831315 77 +3 1.182085879 1 +4 0.001472681 43 +3 0.390399757 1 +4 0.001662683 15 +3 0.184476161 1 +4 0.001397095 15 +3 0.348555334 1 +4 0.001499592 4 +3 0.270318004 1 +4 0.001536837 9 +3 0.150522705 1 +4 0.001440726 1 +3 0.150446974 1 +4 0.001533892 1 +3 0.102548415 1 +4 0.001787650 11 +4 0.001647433 60 +3 2.916930093 1 +4 0.001625608 114 +3 0.214224046 1 +4 0.001634898 15 +3 0.184268399 1 +4 0.001487721 15 +3 0.564812318 1 +4 0.001470741 4 +3 0.342338326 1 +4 0.001475527 9 +3 0.102308113 1 +4 0.001503831 1 +3 0.142560303 1 +4 0.001449421 1 +3 0.086868864 1 +4 0.001684149 11 +4 0.001568817 60 +3 2.300776175 1 +4 0.001568797 65 +3 0.182344003 1 +4 0.001525456 19 +3 0.270439101 1 +4 0.001373955 9 +3 0.126832641 1 +4 0.001451926 1 +3 0.126404321 1 +4 0.001414901 1 +3 0.102456485 1 +4 0.001882240 11 +4 0.001455061 60 +3 2.589161412 1 +4 0.001532046 107 +3 0.310199760 1 +4 0.001553737 9 +3 0.102485115 1 +4 0.001450441 1 +3 0.142337871 1 +4 0.001438495 1 +3 0.102649342 1 +4 0.001621893 11 +4 0.001480321 60 +3 1.557961175 1 +4 0.000416039 39 +7 0.000477545 TSTP +7 8128.685130733 CONT +4 0.002319896 7 +4 0.001163737 996 +3 0.290820915 1 +4 0.000331067 9 +3 0.616107098 1 +4 0.001559643 32 +3 0.238160217 1 diff --git a/lib/iolog/regress/corpus/seed/timing/timing.9 b/lib/iolog/regress/corpus/seed/timing/timing.9 new file mode 100644 index 0000000000..2d566ba0ef --- /dev/null +++ b/lib/iolog/regress/corpus/seed/timing/timing.9 @@ -0,0 +1,416 @@ +4 0.026820058 32 +4 0.001711422 762 +4 0.000339736 53 +3 0.905773982 1 +4 0.000700765 860 +3 0.407034180 1 +4 0.001790364 9 +3 0.510563157 1 +4 0.002274839 29 +3 0.269760922 1 +4 0.002799020 895 +3 0.261256015 1 +4 0.001780719 8 +3 0.285937300 1 +4 0.002033227 1 +3 0.062079447 1 +4 0.001816029 1 +3 0.198257089 1 +4 0.001487481 1 +3 0.128223837 1 +4 0.001924376 1 +3 0.108202451 1 +4 0.002071588 1 +3 0.069737343 1 +4 0.001511027 1 +3 0.174650250 1 +4 0.001780474 1 +3 0.062641443 1 +4 0.002176683 40 +3 0.877270244 1 +4 0.000430823 16 +3 0.289936925 1 +4 0.002316440 15 +3 0.363768246 1 +4 0.001806569 15 +3 0.320027982 1 +4 0.002890541 232 +3 8.683563015 1 +4 0.000607468 172 +3 0.735169546 1 +4 0.000381425 40 +7 0.000714068 TSTP +7 4.679016635 CONT +4 0.001236107 7 +4 0.000355486 868 +3 0.486326156 1 +4 0.000368280 16 +3 0.500332044 1 +4 0.001645467 19 +3 0.081610572 1 +4 0.002250109 18 +3 0.081911959 1 +4 0.001516567 17 +3 0.082431635 1 +4 0.001610247 18 +3 0.082161797 1 +4 0.003386766 17 +3 0.080508120 1 +4 0.001542922 18 +3 0.082616917 1 +4 0.001645122 16 +3 0.081939075 1 +4 0.001501656 16 +3 0.511385566 1 +4 0.002390561 15 +3 0.245498856 1 +4 0.001952776 21 +3 0.223035995 1 +4 0.003835676 55 +3 0.186797228 1 +3 0.047844172 1 +4 0.000732686 37 +4 0.000319482 45 +3 0.143148267 1 +4 0.000323210 22 +4 0.000313341 53 +3 0.167541047 1 +4 0.001531157 15 +3 0.126430707 1 +4 0.001452986 73 +3 0.142488895 1 +4 0.001809904 15 +3 0.158496117 1 +4 0.001794434 70 +3 0.206419877 1 +4 0.002088947 16 +3 0.143391926 1 +4 0.000370251 15 +3 0.141381098 1 +4 0.000358046 15 +3 0.191688547 1 +4 0.000427144 46 +3 0.208167967 1 +4 0.102311817 22 +3 0.089357005 1 +4 0.000398479 9 +3 0.127420516 1 +4 0.000380604 1 +3 0.143659945 1 +4 0.000327122 1 +3 0.096070029 1 +4 0.002590102 1 +4 0.002764385 70 +3 0.506400385 1 +4 0.000377794 39 +7 0.000611796 TSTP +7 2.327330424 CONT +4 0.000495748 7 +4 0.000441282 7 +4 0.000373026 881 +3 0.735006268 1 +4 0.001573642 9 +3 0.342034557 1 +4 0.000484931 1 +3 0.103713531 1 +4 0.000637123 1 +3 0.183071121 1 +4 0.000357114 1 +3 0.119472186 1 +4 0.000380389 1 +3 0.207816458 1 +4 0.000336918 1 +3 0.079764969 1 +4 0.000396629 1 +3 0.063696314 1 +4 0.001863508 1 +3 0.270414990 1 +4 0.003903627 1 +3 0.276201466 1 +4 0.002198988 1 +3 0.149500975 1 +4 0.001513607 1 +3 0.215266651 1 +4 0.002604633 13 +4 0.002562303 871 +3 0.738702176 1 +4 0.002825906 1002 +3 2.005235450 1 +4 0.004513134 16 +3 0.523238388 1 +4 0.001690173 21 +3 0.293580307 1 +4 0.000509384 59 +3 0.279677930 1 +4 0.106364722 31 +3 0.661572887 1 +4 0.000362005 9 +3 0.127723461 1 +4 0.000433533 1 +3 0.143495220 1 +4 0.000559143 1 +3 0.095541842 1 +4 0.000617635 1 +4 0.000341242 55 +4 0.000258160 15 +3 0.302985707 1 +4 0.000369362 69 +3 0.353548453 1 +4 0.000657140 1249 +3 0.934092779 1 +4 0.002462327 53 +4 0.002104332 869 +3 0.634609718 1 +4 0.000441319 40 +7 0.000443732 TSTP +7 1.744019170 CONT +4 0.001795958 7 +4 0.000416107 7 +4 0.000539438 866 +4 0.000421610 53 +3 0.588160440 1 +4 0.001847652 773 +3 0.382350930 1 +4 0.002998357 995 +3 0.212912612 1 +4 0.001679020 988 +3 0.454277400 1 +4 0.000594016 763 +3 0.608608241 1 +4 0.003235459 255 +3 0.619577351 1 +4 0.000444752 12 +3 0.576479814 1 +4 0.003941878 9 +3 0.267043488 1 +4 0.000498001 1 +3 0.143318045 1 +4 0.000893037 1 +3 0.191448484 1 +4 0.000462690 1 +3 0.071606137 1 +4 0.000681691 1 +3 1.055203591 1 +4 0.000340939 1 +3 0.151234915 1 +4 0.000386658 1 +3 0.231980036 1 +4 0.000384274 1 +3 0.224097550 1 +4 0.002980857 1 +3 0.316956963 1 +4 0.002499527 41 +3 0.765698516 1 +4 0.004091634 814 +3 0.811449495 1 +4 0.000770341 56 +3 0.487224212 1 +4 0.000351782 15 +3 4.072509089 1 +3 0.129548871 1 +4 0.002049532 27 +3 0.212133148 1 +4 0.001864670 127 +3 0.293976096 1 +3 0.079927799 1 +4 0.001776949 13 +3 0.456159524 1 +4 0.000484628 16 +3 0.181365177 1 +4 0.000330693 17 +3 0.241967560 1 +4 0.003597134 16 +3 0.242152690 1 +4 0.001952176 17 +3 0.477814310 1 +4 0.000393908 19 +3 1.279717661 1 +4 0.000354247 10 +3 0.161660774 1 +4 0.001684608 1 +3 0.116305564 1 +4 0.000545227 1 +3 0.111377593 1 +4 0.000357819 1 +3 0.121894944 1 +4 0.000372917 1 +3 0.133460281 1 +4 0.000348850 1 +3 0.136188546 1 +4 0.003970087 951 +3 0.563603446 1 +4 0.000905922 1231 +3 0.505214773 1 +4 0.000614466 885 +3 0.693135780 1 +4 0.000384251 10 +3 0.071878551 1 +4 0.000600843 1209 +3 5.919638901 1 +4 0.000618364 947 +3 1.023329385 1 +4 0.000765748 975 +3 0.170239029 1 +4 0.004114269 20 +3 0.944977220 1 +4 0.000813752 923 +3 0.591209323 1 +4 0.000642505 1013 +3 0.855854140 1 +4 0.002983512 910 +3 0.468501621 1 +4 0.001040724 747 +3 0.630997945 1 +4 0.000557718 627 +3 0.568268097 1 +4 0.002969451 604 +3 0.372751868 1 +4 0.003244305 597 +3 1.748017891 1 +4 0.000318899 9 +3 0.112209702 1 +4 0.001585602 1 +3 0.126237191 1 +4 0.001430490 55 +4 0.002520732 19 +3 0.332580571 1 +4 0.003443457 1341 +3 0.555906216 1 +4 0.000345676 9 +3 0.127700075 1 +4 0.000364774 1 +3 0.191792996 1 +4 0.001614682 1 +3 0.430688655 1 +4 0.002797525 1 +4 0.002209299 67 +3 0.578767196 1 +4 0.000721267 664 +3 2.103369630 1 +4 0.000778525 1285 +3 2.487079900 1 +4 0.000722413 1131 +3 1.743405354 1 +4 0.000701480 876 +3 1.551102701 1 +4 0.000365233 15 +3 0.186125212 1 +4 0.002986112 15 +3 0.346545258 1 +3 0.121964530 1 +4 0.000408994 27 +3 0.285901647 1 +4 0.000553920 102 +3 0.287259743 1 +4 0.000348243 15 +3 0.223770096 1 +4 0.000406451 22 +3 0.240395190 1 +4 0.004131039 37 +3 0.203426649 1 +4 0.111240280 31 +3 0.016527422 1 +4 0.001560067 15 +3 0.958779715 1 +4 0.001824469 4 +3 0.014727259 1 +3 0.447093611 1 +3 0.320953147 1 +3 0.070854407 1 +4 0.000362686 27 +3 0.248016393 1 +4 0.001856075 17 +3 0.181888557 1 +4 0.000362541 16 +3 0.095577241 1 +4 0.000446013 16 +3 0.143582924 1 +4 0.000641692 16 +3 0.087370271 1 +4 0.000410273 16 +3 0.255775198 1 +4 0.000349423 30 +3 0.159417098 1 +4 0.101629346 31 +3 0.106812822 1 +4 0.001794174 10 +3 0.150640833 1 +4 0.001973111 1 +3 0.229540234 1 +4 0.002537393 1 +3 0.189596890 1 +4 0.001555707 1 +3 0.166481893 1 +4 0.001832689 1 +3 0.086653686 1 +4 0.002660778 1 +3 0.196235441 1 +4 0.000767079 42 +3 0.319661955 1 +4 0.000409364 29 +4 0.000770391 950 +3 1.230617822 1 +4 0.000497367 10 +3 0.071849269 1 +4 0.001265887 18 +4 0.001255668 849 +3 0.309179080 1 +4 0.001531469 9 +3 0.230462157 1 +4 0.001149025 1 +3 0.158773274 1 +4 0.000864557 1 +3 0.087581903 1 +4 0.002618648 71 +3 0.325070173 1 +4 0.000861044 39 +7 0.001361477 TSTP +7 2.677917273 CONT +4 0.001090445 7 +4 0.000695543 914 +3 1.566157098 1 +3 0.130276992 1 +4 0.003990123 27 +3 0.201715122 1 +4 0.000382345 105 +3 0.239728138 1 +4 0.000703854 15 +3 0.183585413 1 +4 0.001608753 22 +3 0.198057579 1 +4 0.000422730 37 +3 0.167314657 1 +4 0.101159452 31 +3 0.043125007 1 +4 0.000340134 16 +3 0.167883234 1 +3 0.056208548 1 +4 0.001792780 28 +3 0.317497649 1 +4 0.000387046 17 +3 0.103776317 1 +4 0.000373976 17 +3 0.135697848 1 +4 0.000467905 17 +3 0.135580381 1 +4 0.000480750 17 +3 0.031618064 1 +4 0.000861943 17 +3 0.110813826 1 +4 0.000349600 17 +3 0.183789669 1 +4 0.000339386 31 +3 0.216650735 1 +4 0.112823566 32 +3 0.174864673 1 +4 0.003063388 10 +3 0.180669765 1 +4 0.001724638 1 +3 0.174368732 1 +4 0.002114123 1 +3 0.134554835 1 +4 0.002041362 1 +4 0.001560387 71 +3 0.980188224 1 +3 0.135913384 1 +4 0.002612273 41 diff --git a/lib/iolog/regress/fuzz/fuzz_iolog_json.c b/lib/iolog/regress/fuzz/fuzz_iolog_json.c index ec1e428b04..80f6c9f666 100644 --- a/lib/iolog/regress/fuzz/fuzz_iolog_json.c +++ b/lib/iolog/regress/fuzz/fuzz_iolog_json.c @@ -96,7 +96,7 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) struct eventlog *evlog = NULL; FILE *fp; - setprogname("fuzz_iolog_json"); + initprogname("fuzz_iolog_json"); if (getenv("SUDO_FUZZ_VERBOSE") == NULL) sudo_warn_set_conversation(fuzz_conversation); diff --git a/lib/iolog/regress/fuzz/fuzz_iolog_legacy.c b/lib/iolog/regress/fuzz/fuzz_iolog_legacy.c index a52bf56af2..207374cc97 100644 --- a/lib/iolog/regress/fuzz/fuzz_iolog_legacy.c +++ b/lib/iolog/regress/fuzz/fuzz_iolog_legacy.c @@ -94,7 +94,7 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) struct eventlog *evlog = NULL; FILE *fp; - setprogname("fuzz_iolog_legacy"); + initprogname("fuzz_iolog_legacy"); if (getenv("SUDO_FUZZ_VERBOSE") == NULL) sudo_warn_set_conversation(fuzz_conversation); diff --git a/lib/iolog/regress/fuzz/fuzz_iolog_legacy.dict b/lib/iolog/regress/fuzz/fuzz_iolog_legacy.dict new file mode 100644 index 0000000000..d524d4945a --- /dev/null +++ b/lib/iolog/regress/fuzz/fuzz_iolog_legacy.dict @@ -0,0 +1,42 @@ +# Legacy I/O log info file: +# timestamp:submit_user:run_user:run_group:tty:lines:columns +# working directory +# command [args] + +# users and groups +"millert" +"root" +"bin" +"wheel" +"operator" +"testuser" +"alice" +"bob" +"users" + +# terminals +"/dev/console" +"/dev/tty00" +"/dev/tty01" +"/dev/pts/0" +"/dev/pts/1" +"/dev/ttyp2" +"/dev/ttyp3" + +# directories +"/root" +"/home/millert" +"/home/alice" +"/home/bob" +"/tmp" +"/usr/local" +"/usr/src" + +# commands +"/bin/ls" +"/usr/bin/id -u" +"/usr/bin/su -" +"/usr/bin/mailq" +"/usr/bin/make -C /usr/src/usr.bin/sort install" +"/usr/bin/apt update" +"/usr/bin/rpm -e sudo" diff --git a/lib/iolog/regress/fuzz/fuzz_iolog_timing.c b/lib/iolog/regress/fuzz/fuzz_iolog_timing.c index cf894973a6..dac9736c6a 100644 --- a/lib/iolog/regress/fuzz/fuzz_iolog_timing.c +++ b/lib/iolog/regress/fuzz/fuzz_iolog_timing.c @@ -77,7 +77,7 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) char logdir[] = "/tmp/timing.XXXXXX"; int dfd = -1, fd = -1; - setprogname("fuzz_iolog_timing"); + initprogname("fuzz_iolog_timing"); if (getenv("SUDO_FUZZ_VERBOSE") == NULL) sudo_warn_set_conversation(fuzz_conversation); diff --git a/lib/iolog/regress/fuzz/fuzz_iolog_timing.dict b/lib/iolog/regress/fuzz/fuzz_iolog_timing.dict new file mode 100644 index 0000000000..42bdeb5643 --- /dev/null +++ b/lib/iolog/regress/fuzz/fuzz_iolog_timing.dict @@ -0,0 +1,89 @@ +# I/O log timing lines are formatted as: +# [0-4] sleep_time num_bytes +# 5 sleep_time lines cols +# 7 sleep_time signum|sigabbrev + +# Signal abbreviations +"ABRT" +"ALRM" +"BUS" +"CANCEL" +"CHLD" +"CLD" +"CONT" +"CONT" +"EMT" +"FPE" +"FREEZE" +"HUP" +"ILL" +"INFO" +"INT" +"IO" +"IOT" +"KILL" +"LOST" +"LWP" +"PIPE" +"POLL" +"PROF" +"PWR" +"QUIT" +"SEGV" +"STKFLT" +"STOP" +"STOP" +"SYS" +"TERM" +"THAW" +"TRAP" +"TSTP" +"TSTP" +"TTIN" +"TTIN" +"TTOU" +"TTOU" +"UNUSED" +"URG" +"USR1" +"USR2" +"VTALRM" +"WAITING" +"WINCH" +"XCPU" +"XFSZ" + +# Signal numbers, 0-32 +"0" +"1" +"2" +"3" +"4" +"5" +"6" +"7" +"8" +"9" +"10" +"11" +"12" +"13" +"14" +"15" +"16" +"17" +"18" +"19" +"20" +"21" +"22" +"23" +"24" +"25" +"26" +"27" +"28" +"29" +"30" +"31" +"32" diff --git a/lib/iolog/regress/iolog_json/check_iolog_json.c b/lib/iolog/regress/iolog_json/check_iolog_json.c index b50caca1ab..ce8565fcc6 100644 --- a/lib/iolog/regress/iolog_json/check_iolog_json.c +++ b/lib/iolog/regress/iolog_json/check_iolog_json.c @@ -202,7 +202,7 @@ main(int argc, char *argv[]) ntests++; - if (!sudo_json_init(&jsonc, 4, false, true)) { + if (!sudo_json_init(&jsonc, 4, false, true, true)) { errors++; continue; } diff --git a/lib/iolog/regress/iolog_json/test3.in b/lib/iolog/regress/iolog_json/test3.in index ea2df89b84..6f243e3bd3 100644 --- a/lib/iolog/regress/iolog_json/test3.in +++ b/lib/iolog/regress/iolog_json/test3.in @@ -3,7 +3,7 @@ "false": true, "number": 1234567890, "null": null, - "string": "nonsense", + "string": "non\u0073ense", "scope": { "a": "b", "bah": null diff --git a/lib/iolog/regress/iolog_json/test3.out.ok b/lib/iolog/regress/iolog_json/test3.out.ok new file mode 100644 index 0000000000..ea2df89b84 --- /dev/null +++ b/lib/iolog/regress/iolog_json/test3.out.ok @@ -0,0 +1,22 @@ +{ + "true": false, + "false": true, + "number": 1234567890, + "null": null, + "string": "nonsense", + "scope": { + "a": "b", + "bah": null + }, + "array1": [ + "foo", + "bar", + [ + 123, + null, + false, + "fizz", + "buzz" + ] + ] +} diff --git a/lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c b/lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c index f0ece1a09e..36935eec43 100644 --- a/lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c +++ b/lib/iolog/regress/iolog_mkpath/check_iolog_mkpath.c @@ -97,8 +97,19 @@ main(int argc, char *argv[]) } /* Clean up (avoid running via shell) */ - execvp("rm", (char **)rmargs); - wait(&status); + switch (fork()) { + case -1: + sudo_warn("fork"); + _exit(1); + case 0: + execvp("rm", (char **)rmargs); + _exit(1); + default: + wait(&status); + if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) + errors++; + break; + } return errors; } diff --git a/lib/util/Makefile.in b/lib/util/Makefile.in index ad97748f82..45d0eedff3 100644 --- a/lib/util/Makefile.in +++ b/lib/util/Makefile.in @@ -1,7 +1,7 @@ # # SPDX-License-Identifier: ISC # -# Copyright (c) 2011-2022 Todd C. Miller +# Copyright (c) 2011-2023 Todd C. Miller # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -55,7 +55,7 @@ CPP = @CPP@ HOSTCPP = @CPP_FOR_BUILD@ LIBTOOL = @LIBTOOL@ SHA1SUM = @SHA1SUM@ -GREP = @GREP@ +EGREP = @EGREP@ SED = @SED@ AWK = @AWK@ @@ -111,10 +111,12 @@ PVS_IGNORE = 'V707,V011,V002,V536' PVS_LOG_OPTS = -a 'GA:1,2' -e -t errorfile -d $(PVS_IGNORE) # Regression tests -TEST_PROGS = conf_test hltq_test parseln_test progname_test parse_gids_test \ - getgids getgrouplist_test multiarch_test open_parent_dir_test \ - strsplit_test strtobool_test strtoid_test strtomode_test \ - strtonum_test uuid_test @COMPAT_TEST_PROGS@ +TEST_PROGS = conf_test getgids getgrouplist_test hexchar_test hltq_test \ + json_test multiarch_test open_parent_dir_test parse_gids_test \ + parseln_test progname_test regex_test strsplit_test \ + strtobool_test strtoid_test strtomode_test strtonum_test \ + uuid_test @COMPAT_TEST_PROGS@ + TEST_LIBS = @LIBS@ TEST_LDFLAGS = @LDFLAGS@ TEST_VERBOSE = @@ -143,12 +145,13 @@ DEVEL = @DEVEL@ SHELL = @SHELL@ LTOBJS = basename.lo @DIGEST@ event.lo fatal.lo key_val.lo gethostname.lo \ - gettime.lo getgrouplist.lo gidlist.lo json.lo lbuf.lo locking.lo \ - logfac.lo logpri.lo mkdir_parents.lo mmap_alloc.lo multiarch.lo \ - parseln.lo progname.lo rcstr.lo regex.lo roundup.lo secure_path.lo \ - setgroups.lo strsplit.lo strtobool.lo strtoid.lo strtomode.lo \ - strtonum.lo sudo_conf.lo sudo_debug.lo sudo_dso.lo term.lo \ - ttyname_dev.lo ttysize.lo uuid.lo @COMMON_OBJS@ @LTLIBOBJS@ + gettime.lo getgrouplist.lo gidlist.lo hexchar.lo json.lo lbuf.lo \ + locking.lo logfac.lo logpri.lo mkdir_parents.lo mmap_alloc.lo \ + multiarch.lo parseln.lo progname.lo rcstr.lo regex.lo roundup.lo \ + secure_path.lo setgroups.lo strsplit.lo strtobool.lo strtoid.lo \ + strtomode.lo strtonum.lo sudo_conf.lo sudo_debug.lo sudo_dso.lo \ + term.lo ttyname_dev.lo ttysize.lo uuid.lo \ + @COMMON_OBJS@ @LTLIBOBJS@ IOBJS = $(LTOBJS:.lo=.i) @@ -164,18 +167,24 @@ CLOSEFROM_TEST_OBJS = closefrom_test.lo closefrom.lo CONF_TEST_OBJS = conf_test.lo sudo_conf.lo -HLTQ_TEST_OBJS = hltq_test.lo - FNM_TEST_OBJS = fnm_test.lo fnmatch.lo GLOBTEST_OBJS = globtest.lo glob.lo GETDELIM_TEST_OBJS = getdelim_test.lo getdelim.lo +HLTQ_TEST_OBJS = hltq_test.lo + +HEXCHAR_TEST_OBJS = hexchar_test.lo hexchar.lo + +JSON_TEST_OBJS = json_test.lo json.lo + MULTIARCH_TEST_OBJS = multiarch_test.lo multiarch.lo OPEN_PARENT_DIR_TEST_OBJS = open_parent_dir_test.lo mkdir_parents.lo +REGEX_TEST_OBJS = regex_test.lo regex.lo + STRTOBOOL_TEST_OBJS = strtobool_test.lo strtobool.lo STRTOMODE_TEST_OBJS = strtomode_test.lo strtomode.lo @@ -284,6 +293,12 @@ getdelim_test: $(GETDELIM_TEST_OBJS) libsudo_util.la hltq_test: $(HLTQ_TEST_OBJS) libsudo_util.la $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(HLTQ_TEST_OBJS) libsudo_util.la $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LDFLAGS) $(TEST_LIBS) +hexchar_test: $(HEXCHAR_TEST_OBJS) libsudo_util.la + $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(HEXCHAR_TEST_OBJS) libsudo_util.la $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LDFLAGS) $(TEST_LIBS) + +json_test: $(JSON_TEST_OBJS) libsudo_util.la + $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(JSON_TEST_OBJS) libsudo_util.la $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LDFLAGS) $(TEST_LIBS) + mktemp_test: $(MKTEMP_TEST_OBJS) libsudo_util.la $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(MKTEMP_TEST_OBJS) libsudo_util.la $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LDFLAGS) $(TEST_LIBS) @@ -311,6 +326,9 @@ getgrouplist_test: $(GETGROUPLIST_TEST_OBJS) libsudo_util.la strsplit_test: $(STRSPLIT_TEST_OBJS) libsudo_util.la $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(STRSPLIT_TEST_OBJS) libsudo_util.la $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LDFLAGS) $(TEST_LIBS) +regex_test: $(REGEX_TEST_OBJS) libsudo_util.la + $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(REGEX_TEST_OBJS) libsudo_util.la $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LDFLAGS) $(TEST_LIBS) + strsig_test: $(STRSIG_TEST_OBJS) libsudo_util.la $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(STRSIG_TEST_OBJS) libsudo_util.la $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LDFLAGS) $(TEST_LIBS) @@ -342,11 +360,9 @@ fuzz_sudo_conf_seed_corpus.zip: rm -rf $$tdir run-fuzz_sudo_conf: fuzz_sudo_conf - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -408,11 +424,9 @@ fuzz: run-fuzz_sudo_conf check-fuzzer: $(FUZZ_PROGS) @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -424,11 +438,9 @@ check-fuzzer: $(FUZZ_PROGS) # Note: some regress checks are run from srcdir for consistent error messages check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -437,21 +449,15 @@ check: $(TEST_PROGS) check-fuzzer if test -f closefrom_test; then \ ./closefrom_test || rval=`expr $$rval + $$?`; \ fi; \ - if test -f parse_gids_test; then \ - ./parse_gids_test || rval=`expr $$rval + $$?`; \ - fi; \ - if test -f strsplit_test; then \ - ./strsplit_test || rval=`expr $$rval + $$?`; \ - fi; \ if test -f fnm_test; then \ ./fnm_test $(srcdir)/regress/fnmatch/fnm_test.in || rval=`expr $$rval + $$?`; \ fi; \ if test -f globtest; then \ mkdir -p `$(SED) 's@/[^/]*$$@@' $(srcdir)/regress/glob/files | sort -u`; \ touch `cat $(srcdir)/regress/glob/files`; \ - chmod 0755 `$(GREP) '/r[^/]*$$' $(srcdir)/regress/glob/files`; \ - chmod 0444 `$(GREP) '/s[^/]*$$' $(srcdir)/regress/glob/files`; \ - chmod 0711 `$(GREP) '/t[^/]*$$' $(srcdir)/regress/glob/files`; \ + chmod 0755 `$(EGREP) '/r[^/]*$$' $(srcdir)/regress/glob/files`; \ + chmod 0444 `$(EGREP) '/s[^/]*$$' $(srcdir)/regress/glob/files`; \ + chmod 0711 `$(EGREP) '/t[^/]*$$' $(srcdir)/regress/glob/files`; \ ./globtest $(srcdir)/regress/glob/globtest.in || rval=`expr $$rval + $$?`; \ rm -rf fake; \ fi; \ @@ -467,12 +473,17 @@ check: $(TEST_PROGS) check-fuzzer ./getgrouplist_test || rval=`expr $$rval + $$?`; \ ./multiarch_test || rval=`expr $$rval + $$?`; \ ./open_parent_dir_test || rval=`expr $$rval + $$?`; \ + ./parse_gids_test || rval=`expr $$rval + $$?`; \ + ./regex_test || rval=`expr $$rval + $$?`; \ + ./strsplit_test || rval=`expr $$rval + $$?`; \ ./strtobool_test || rval=`expr $$rval + $$?`; \ ./strtoid_test || rval=`expr $$rval + $$?`; \ ./strtomode_test || rval=`expr $$rval + $$?`; \ ./strtonum_test || rval=`expr $$rval + $$?`; \ ./uuid_test || rval=`expr $$rval + $$?`; \ ./hltq_test || rval=`expr $$rval + $$?`; \ + ./hexchar_test || rval=`expr $$rval + $$?`; \ + ./json_test || rval=`expr $$rval + $$?`; \ ./progname_test || rval=`expr $$rval + $$?`; \ rm -f ./progname_test2; ln -s ./progname_test ./progname_test2; \ ./progname_test2 || rval=`expr $$rval + $$?`; \ @@ -941,6 +952,28 @@ gmtime_r.i: $(srcdir)/gmtime_r.c $(incdir)/compat/stdbool.h \ $(CC) -E -o $@ $(CPPFLAGS) $< gmtime_r.plog: gmtime_r.i rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/gmtime_r.c --i-file $< --output-file $@ +hexchar.lo: $(srcdir)/hexchar.c $(incdir)/compat/stdbool.h \ + $(incdir)/sudo_compat.h $(incdir)/sudo_debug.h \ + $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \ + $(top_builddir)/config.h + $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/hexchar.c +hexchar.i: $(srcdir)/hexchar.c $(incdir)/compat/stdbool.h \ + $(incdir)/sudo_compat.h $(incdir)/sudo_debug.h \ + $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \ + $(top_builddir)/config.h + $(CC) -E -o $@ $(CPPFLAGS) $< +hexchar.plog: hexchar.i + rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/hexchar.c --i-file $< --output-file $@ +hexchar_test.lo: $(srcdir)/regress/hexchar/hexchar_test.c \ + $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ + $(incdir)/sudo_util.h $(top_builddir)/config.h + $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/regress/hexchar/hexchar_test.c +hexchar_test.i: $(srcdir)/regress/hexchar/hexchar_test.c \ + $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ + $(incdir)/sudo_util.h $(top_builddir)/config.h + $(CC) -E -o $@ $(CPPFLAGS) $< +hexchar_test.plog: hexchar_test.i + rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/regress/hexchar/hexchar_test.c --i-file $< --output-file $@ hltq_test.lo: $(srcdir)/regress/tailq/hltq_test.c $(incdir)/compat/stdbool.h \ $(incdir)/sudo_compat.h $(incdir)/sudo_fatal.h \ $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \ @@ -981,6 +1014,18 @@ json.i: $(srcdir)/json.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ $(CC) -E -o $@ $(CPPFLAGS) $< json.plog: json.i rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/json.c --i-file $< --output-file $@ +json_test.lo: $(srcdir)/regress/json/json_test.c $(incdir)/compat/stdbool.h \ + $(incdir)/sudo_compat.h $(incdir)/sudo_fatal.h \ + $(incdir)/sudo_json.h $(incdir)/sudo_plugin.h \ + $(incdir)/sudo_util.h $(top_builddir)/config.h + $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/regress/json/json_test.c +json_test.i: $(srcdir)/regress/json/json_test.c $(incdir)/compat/stdbool.h \ + $(incdir)/sudo_compat.h $(incdir)/sudo_fatal.h \ + $(incdir)/sudo_json.h $(incdir)/sudo_plugin.h \ + $(incdir)/sudo_util.h $(top_builddir)/config.h + $(CC) -E -o $@ $(CPPFLAGS) $< +json_test.plog: json_test.i + rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/regress/json/json_test.c --i-file $< --output-file $@ key_val.lo: $(srcdir)/key_val.c $(incdir)/compat/stdbool.h \ $(incdir)/sudo_compat.h $(incdir)/sudo_debug.h \ $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \ @@ -1275,6 +1320,18 @@ regex.i: $(srcdir)/regex.c $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ $(CC) -E -o $@ $(CPPFLAGS) $< regex.plog: regex.i rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/regex.c --i-file $< --output-file $@ +regex_test.lo: $(srcdir)/regress/regex/regex_test.c $(incdir)/compat/stdbool.h \ + $(incdir)/sudo_compat.h $(incdir)/sudo_fatal.h \ + $(incdir)/sudo_plugin.h $(incdir)/sudo_util.h \ + $(top_builddir)/config.h + $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/regress/regex/regex_test.c +regex_test.i: $(srcdir)/regress/regex/regex_test.c $(incdir)/compat/stdbool.h \ + $(incdir)/sudo_compat.h $(incdir)/sudo_fatal.h \ + $(incdir)/sudo_plugin.h $(incdir)/sudo_util.h \ + $(top_builddir)/config.h + $(CC) -E -o $@ $(CPPFLAGS) $< +regex_test.plog: regex_test.i + rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/regress/regex/regex_test.c --i-file $< --output-file $@ roundup.lo: $(srcdir)/roundup.c $(incdir)/compat/stdbool.h \ $(incdir)/sudo_compat.h $(incdir)/sudo_debug.h \ $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \ diff --git a/lib/util/fatal.c b/lib/util/fatal.c index cf2303ffc2..7d2e09d18a 100644 --- a/lib/util/fatal.c +++ b/lib/util/fatal.c @@ -239,8 +239,10 @@ warning(const char *errstr, const char *fmt, va_list ap) fputs(": ", stderr); fputs(errstr, stderr); } +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION if (sudo_term_is_raw(fileno(stderr))) putc('\r', stderr); +#endif putc('\n', stderr); } diff --git a/plugins/sudoers/hexchar.c b/lib/util/hexchar.c similarity index 87% rename from plugins/sudoers/hexchar.c rename to lib/util/hexchar.c index 510d27c64f..81cd619df1 100644 --- a/plugins/sudoers/hexchar.c +++ b/lib/util/hexchar.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2013-2015 Todd C. Miller + * Copyright (c) 2013-2015, 2023 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -23,18 +23,20 @@ #include -#include "sudoers.h" +#include "sudo_compat.h" +#include "sudo_debug.h" +#include "sudo_util.h" /* * Converts a two-byte hex string to decimal. - * Returns the decimal value or -1 for invalid input. + * Returns a value 0-255 on success or -1 for invalid input. */ int -hexchar(const char *s) +sudo_hexchar_v1(const char *s) { unsigned char result[2]; int i; - debug_decl(hexchar, SUDOERS_DEBUG_UTIL); + debug_decl(sudo_hexchar, SUDO_DEBUG_UTIL); for (i = 0; i < 2; i++) { switch (s[i]) { diff --git a/lib/util/inet_ntop.c b/lib/util/inet_ntop.c index 2471d7622f..d72d9756eb 100644 --- a/lib/util/inet_ntop.c +++ b/lib/util/inet_ntop.c @@ -76,7 +76,7 @@ inet_ntop4(const unsigned char *src, char *dst, socklen_t size) int len; len = snprintf(dst, size, fmt, src[0], src[1], src[2], src[3]); - if (len < 0 || len >= size) { + if (len < 0 || (size_t)len >= size) { errno = ENOSPC; return (NULL); } diff --git a/lib/util/json.c b/lib/util/json.c index 266129dcaf..359498b28e 100644 --- a/lib/util/json.c +++ b/lib/util/json.c @@ -23,6 +23,7 @@ #include +#include #include #include #ifdef HAVE_STDBOOL_H @@ -116,18 +117,19 @@ json_append_buf(struct json_container *jsonc, const char *str) /* * Append a quoted JSON string, escaping special chars and expanding as needed. - * Does not support unicode escapes. + * Treats strings as 8-bit ASCII, escaping control characters. */ static bool json_append_string(struct json_container *jsonc, const char *str) { - char ch; + const char hex[] = "0123456789abcdef"; + unsigned char ch; debug_decl(json_append_string, SUDO_DEBUG_UTIL); if (!json_append_buf(jsonc, "\"")) debug_return_bool(false); while ((ch = *str++) != '\0') { - char buf[3], *cp = buf; + char buf[sizeof("\\u0000")], *cp = buf; switch (ch) { case '"': @@ -154,9 +156,20 @@ json_append_string(struct json_container *jsonc, const char *str) *cp++ = '\\'; ch = 't'; break; + default: + if (iscntrl(ch)) { + /* Escape control characters like \u0000 */ + *cp++ = '\\'; + *cp++ = 'u'; + *cp++ = '0'; + *cp++ = '0'; + *cp++ = hex[ch >> 4]; + ch = hex[ch & 0x0f]; + } + break; } *cp++ = ch; - *cp++ = '\0'; + *cp = '\0'; if (!json_append_buf(jsonc, buf)) debug_return_bool(false); } @@ -167,8 +180,8 @@ json_append_string(struct json_container *jsonc, const char *str) } bool -sudo_json_init_v1(struct json_container *jsonc, int indent, bool minimal, - bool memfatal) +sudo_json_init_v2(struct json_container *jsonc, int indent, bool minimal, + bool memfatal, bool quiet) { debug_decl(sudo_json_init, SUDO_DEBUG_UTIL); @@ -177,6 +190,7 @@ sudo_json_init_v1(struct json_container *jsonc, int indent, bool minimal, jsonc->indent_increment = indent; jsonc->minimal = minimal; jsonc->memfatal = memfatal; + jsonc->quiet = quiet; jsonc->buf = malloc(64 * 1024); if (jsonc->buf == NULL) { if (jsonc->memfatal) { @@ -193,6 +207,13 @@ sudo_json_init_v1(struct json_container *jsonc, int indent, bool minimal, debug_return_bool(true); } +bool +sudo_json_init_v1(struct json_container *jsonc, int indent, bool minimal, + bool memfatal) +{ + return sudo_json_init_v2(jsonc, indent, minimal, memfatal, false); +} + void sudo_json_free_v1(struct json_container *jsonc) { @@ -296,69 +317,83 @@ static bool sudo_json_add_value_int(struct json_container *jsonc, const char *name, struct json_value *value, bool as_object) { + struct json_container saved_container = *jsonc; char numbuf[(((sizeof(long long) * 8) + 2) / 3) + 2]; debug_decl(sudo_json_add_value, SUDO_DEBUG_UTIL); /* Add comma if we are continuing an object/array. */ if (jsonc->need_comma) { if (!json_append_buf(jsonc, ",")) - debug_return_bool(false); + goto bad; } if (!json_new_line(jsonc)) - debug_return_bool(false); + goto bad; jsonc->need_comma = true; if (as_object) { if (!json_append_buf(jsonc, jsonc->minimal ? "{" : "{ ")) - debug_return_bool(false); + goto bad; } /* name */ if (name != NULL) { if (!json_append_string(jsonc, name)) - debug_return_bool(false); + goto bad; if (!json_append_buf(jsonc, jsonc->minimal ? ":" : ": ")) - debug_return_bool(false); + goto bad; } /* value */ switch (value->type) { case JSON_STRING: if (!json_append_string(jsonc, value->u.string)) - debug_return_bool(false); + goto bad; break; case JSON_ID: snprintf(numbuf, sizeof(numbuf), "%u", (unsigned int)value->u.id); if (!json_append_buf(jsonc, numbuf)) - debug_return_bool(false); + goto bad; break; case JSON_NUMBER: snprintf(numbuf, sizeof(numbuf), "%lld", value->u.number); if (!json_append_buf(jsonc, numbuf)) - debug_return_bool(false); + goto bad; break; case JSON_NULL: if (!json_append_buf(jsonc, "null")) - debug_return_bool(false); + goto bad; break; case JSON_BOOL: if (!json_append_buf(jsonc, value->u.boolean ? "true" : "false")) - debug_return_bool(false); + goto bad; break; case JSON_ARRAY: - sudo_fatalx("internal error: can't print JSON_ARRAY"); - break; + if (!jsonc->quiet) + sudo_warnx("internal error: add JSON_ARRAY as a value"); + goto bad; case JSON_OBJECT: - sudo_fatalx("internal error: can't print JSON_OBJECT"); - break; + if (!jsonc->quiet) + sudo_warnx("internal error: add JSON_OBJECT as a value"); + goto bad; + default: + if (!jsonc->quiet) + sudo_warnx("internal error: unknown JSON type %d", value->type); + goto bad; } if (as_object) { if (!json_append_buf(jsonc, jsonc->minimal ? "}" : " }")) - debug_return_bool(false); + goto bad; } debug_return_bool(true); +bad: + /* Restore container but handle reallocation of buf. */ + saved_container.buf = jsonc->buf; + saved_container.bufsize = jsonc->bufsize; + *jsonc = saved_container; + jsonc->buf[jsonc->buflen] = '\0'; + debug_return_bool(false); } bool diff --git a/lib/util/lbuf.c b/lib/util/lbuf.c index 735598cc32..72bcac26fe 100644 --- a/lib/util/lbuf.c +++ b/lib/util/lbuf.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2007-2015 Todd C. Miller + * Copyright (c) 2007-2015, 2023 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -30,6 +30,7 @@ #include "sudo_compat.h" #include "sudo_debug.h" #include "sudo_lbuf.h" +#include "sudo_util.h" void sudo_lbuf_init_v1(struct sudo_lbuf *lbuf, sudo_lbuf_output_t output, @@ -64,17 +65,23 @@ sudo_lbuf_destroy_v1(struct sudo_lbuf *lbuf) } static bool -sudo_lbuf_expand(struct sudo_lbuf *lbuf, int extra) +sudo_lbuf_expand(struct sudo_lbuf *lbuf, unsigned int extra) { debug_decl(sudo_lbuf_expand, SUDO_DEBUG_UTIL); - if (lbuf->len + extra + 1 >= lbuf->size) { + if (lbuf->len + extra + 1 <= lbuf->len) { + sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO, + "integer overflow updating lbuf->len"); + lbuf->error = 1; + debug_return_bool(false); + } + + if (lbuf->len + extra + 1 > lbuf->size) { + unsigned int new_size = sudo_pow2_roundup(lbuf->len + extra + 1); char *new_buf; - int new_size = lbuf->size; - do { - new_size += 256; - } while (lbuf->len + extra + 1 >= new_size); + if (new_size < 1024) + new_size = 1024; if ((new_buf = realloc(lbuf->buf, new_size)) == NULL) { sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO, "unable to allocate memory"); @@ -87,6 +94,112 @@ sudo_lbuf_expand(struct sudo_lbuf *lbuf, int extra) debug_return_bool(true); } +/* + * Escape a character in octal form (#0n) and store it as a string + * in buf, which must have at least 6 bytes available. + * Returns the length of buf, not counting the terminating NUL byte. + */ +static int +escape(unsigned char ch, char *buf) +{ + const int len = ch < 0100 ? (ch < 010 ? 3 : 4) : 5; + + /* Work backwards from the least significant digit to most significant. */ + switch (len) { + case 5: + buf[4] = (ch & 7) + '0'; + ch >>= 3; + FALLTHROUGH; + case 4: + buf[3] = (ch & 7) + '0'; + ch >>= 3; + FALLTHROUGH; + case 3: + buf[2] = (ch & 7) + '0'; + buf[1] = '0'; + buf[0] = '#'; + break; + } + buf[len] = '\0'; + + return len; +} + +/* + * Parse the format and append strings, only %s and %% escapes are supported. + * Any non-printable characters are escaped in octal as #0nn. + */ +bool +sudo_lbuf_append_esc_v1(struct sudo_lbuf *lbuf, int flags, const char *fmt, ...) +{ + unsigned int saved_len = lbuf->len; + bool ret = false; + const char *s; + va_list ap; + debug_decl(sudo_lbuf_append_esc, SUDO_DEBUG_UTIL); + + if (sudo_lbuf_error(lbuf)) + debug_return_bool(false); + +#define should_escape(ch) \ + ((ISSET(flags, LBUF_ESC_CNTRL) && iscntrl((unsigned char)ch)) || \ + (ISSET(flags, LBUF_ESC_BLANK) && isblank((unsigned char)ch))) +#define should_quote(ch) \ + (ISSET(flags, LBUF_ESC_QUOTE) && (ch == '\'' || ch == '\\')) + + va_start(ap, fmt); + while (*fmt != '\0') { + if (fmt[0] == '%' && fmt[1] == 's') { + if ((s = va_arg(ap, char *)) == NULL) + s = "(NULL)"; + while (*s != '\0') { + if (should_escape(*s)) { + if (!sudo_lbuf_expand(lbuf, sizeof("#0177") - 1)) + goto done; + lbuf->len += escape(*s++, lbuf->buf + lbuf->len); + continue; + } + if (should_quote(*s)) { + if (!sudo_lbuf_expand(lbuf, 2)) + goto done; + lbuf->buf[lbuf->len++] = '\\'; + lbuf->buf[lbuf->len++] = *s++; + continue; + } + if (!sudo_lbuf_expand(lbuf, 1)) + goto done; + lbuf->buf[lbuf->len++] = *s++; + } + fmt += 2; + continue; + } + if (should_escape(*fmt)) { + if (!sudo_lbuf_expand(lbuf, sizeof("#0177") - 1)) + goto done; + if (*fmt == '\'') { + lbuf->buf[lbuf->len++] = '\\'; + lbuf->buf[lbuf->len++] = *fmt++; + } else { + lbuf->len += escape(*fmt++, lbuf->buf + lbuf->len); + } + continue; + } + if (!sudo_lbuf_expand(lbuf, 1)) + goto done; + lbuf->buf[lbuf->len++] = *fmt++; + } + ret = true; + +done: + if (!ret) + lbuf->len = saved_len; + if (lbuf->size != 0) + lbuf->buf[lbuf->len] = '\0'; + va_end(ap); + + debug_return_bool(ret); +} + /* * Parse the format and append strings, only %s and %% escapes are supported. * Any characters in set are quoted with a backslash. @@ -94,10 +207,11 @@ sudo_lbuf_expand(struct sudo_lbuf *lbuf, int extra) bool sudo_lbuf_append_quoted_v1(struct sudo_lbuf *lbuf, const char *set, const char *fmt, ...) { - int len, saved_len = lbuf->len; + unsigned int saved_len = lbuf->len; bool ret = false; const char *cp, *s; va_list ap; + int len; debug_decl(sudo_lbuf_append_quoted, SUDO_DEBUG_UTIL); if (sudo_lbuf_error(lbuf)) @@ -152,10 +266,11 @@ sudo_lbuf_append_quoted_v1(struct sudo_lbuf *lbuf, const char *set, const char * bool sudo_lbuf_append_v1(struct sudo_lbuf *lbuf, const char *fmt, ...) { - int len, saved_len = lbuf->len; + unsigned int saved_len = lbuf->len; bool ret = false; va_list ap; const char *s; + int len; debug_decl(sudo_lbuf_append, SUDO_DEBUG_UTIL); if (sudo_lbuf_error(lbuf)) @@ -279,12 +394,10 @@ sudo_lbuf_print_v1(struct sudo_lbuf *lbuf) /* For very small widths just give up... */ len = lbuf->continuation ? strlen(lbuf->continuation) : 0; if (lbuf->cols <= lbuf->indent + len + 20) { - if (lbuf->len > 0) { - lbuf->buf[lbuf->len] = '\0'; - lbuf->output(lbuf->buf); - if (lbuf->buf[lbuf->len - 1] != '\n') - lbuf->output("\n"); - } + lbuf->buf[lbuf->len] = '\0'; + lbuf->output(lbuf->buf); + if (lbuf->buf[lbuf->len - 1] != '\n') + lbuf->output("\n"); goto done; } diff --git a/lib/util/mkdir_parents.c b/lib/util/mkdir_parents.c index ba46b3968f..61867a31db 100644 --- a/lib/util/mkdir_parents.c +++ b/lib/util/mkdir_parents.c @@ -106,7 +106,7 @@ sudo_open_parent_dir_v1(const char *path, uid_t uid, gid_t gid, mode_t mode, /* Iterate over path components, skipping the last one. */ pathend = cp + strlen(cp); - for (cp = sudo_strsplit(cp, pathend, "/", &ep); cp != NULL && *ep != '\0'; + for (cp = sudo_strsplit(cp, pathend, "/", &ep); cp != NULL && ep < pathend; cp = sudo_strsplit(NULL, pathend, "/", &ep)) { size_t len = (size_t)(ep - cp); int dfd; diff --git a/lib/util/mmap_alloc.c b/lib/util/mmap_alloc.c index df3d4cbcc2..cd678a07c5 100644 --- a/lib/util/mmap_alloc.c +++ b/lib/util/mmap_alloc.c @@ -116,8 +116,10 @@ sudo_mmap_strdup_v1(const char *str) return NULL; } newstr = sudo_mmap_alloc_v1(len + 1); - memcpy(newstr, str, len); - newstr[len] = '\0'; + if (newstr != NULL) { + memcpy(newstr, str, len); + newstr[len] = '\0'; + } return newstr; } diff --git a/lib/util/multiarch.c b/lib/util/multiarch.c index dfdc296ba0..53d85d7fff 100644 --- a/lib/util/multiarch.c +++ b/lib/util/multiarch.c @@ -24,6 +24,7 @@ #include #ifdef __linux__ +# include # include #endif diff --git a/lib/util/rcstr.c b/lib/util/rcstr.c index d990a99e9e..08b00bcd78 100644 --- a/lib/util/rcstr.c +++ b/lib/util/rcstr.c @@ -49,8 +49,10 @@ sudo_rcstr_dup(const char *src) debug_decl(sudo_rcstr_dup, SUDO_DEBUG_UTIL); dst = sudo_rcstr_alloc(len); - memcpy(dst, src, len); - dst[len] = '\0'; + if (dst != NULL) { + memcpy(dst, src, len); + dst[len] = '\0'; + } debug_return_ptr(dst); } diff --git a/lib/util/regex.c b/lib/util/regex.c index 3ffc90358e..602f43b677 100644 --- a/lib/util/regex.c +++ b/lib/util/regex.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2022 Todd C. Miller + * Copyright (c) 2023 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -26,6 +26,8 @@ #include #include #include +#include +#include #include #include "sudo_compat.h" @@ -36,30 +38,56 @@ static char errbuf[1024]; /* - * Like strdup but collapses repeated '?', '*' and '+' ops in a regex. - * Glibc regcomp() has a bug where it uses excessive memory for repeated - * '+' ops. Collapse them to avoid running the fuzzer out of memory. + * Parse a number between 0 and INT_MAX, handling escaped digits. + * Returns the number on success or -1 on error. + * Sets endp to the first non-matching character. */ -static char * -dup_pattern(const char *src) +static int +parse_num(const char *str, char **endp) { - char *dst, *ret; - char ch, prev = '\0'; - size_t len; - debug_decl(dup_pattern, SUDO_DEBUG_UTIL); - - len = strlen(src); - ret = malloc(len + 1); - if (ret == NULL) - debug_return_ptr(NULL); - - dst = ret; - while ((ch = *src++) != '\0') { + debug_decl(check_pattern, SUDO_DEBUG_UTIL); + const unsigned int lastval = INT_MAX / 10; + const unsigned int remainder = INT_MAX % 10; + unsigned int result = 0; + unsigned char ch; + + while ((ch = *str++) != '\0') { + if (ch == '\\' && isdigit((unsigned int)str[0])) + ch = *str++; + else if (!isdigit(ch)) + break; + ch -= '0'; + if (result > lastval || (result == lastval && ch > remainder)) { + result = -1; + break; + } + result *= 10; + result += ch; + } + *endp = (char *)(str - 1); + + debug_return_int(result); +} + +/* + * Check pattern for invalid repetition sequences. + * This is implementation-specific behavior, not all regcomp(3) forbid them. + * Glibc allows it but uses excessive memory for repeated '+' ops. + */ +static int +check_pattern(const char *pattern) +{ + debug_decl(check_pattern, SUDO_DEBUG_UTIL); + const char *cp = pattern; + int b1, b2 = 0; + char ch, *ep, prev = '\0'; + + while ((ch = *cp++) != '\0') { switch (ch) { case '\\': - if (*src != '\0') { - *dst++ = '\\'; - *dst++ = *src++; + if (*cp != '\0') { + /* Skip escaped character. */ + cp++; prev = '\0'; continue; } @@ -67,17 +95,49 @@ dup_pattern(const char *src) case '?': case '*': case '+': - if (ch == prev) { - continue; + if (prev == '?' || prev == '*' || prev == '+' || prev == '{' ) { + /* Invalid repetition operator. */ + debug_return_int(REG_BADRPT); } break; + case '{': + /* + * Try to match bound: {[0-9\\]*\?,[0-9\\]*} + * GNU libc supports escaped digits and commas. + */ + b1 = parse_num(cp, &ep); + switch (ep[0]) { + case '\\': + if (ep[1] != ',') + break; + ep++; + FALLTHROUGH; + case ',': + cp = ep + 1; + b2 = parse_num(cp, &ep); + break; + } + cp = ep; + if (*cp == '}') { + if (b1 < 0 || b1 > 255 || b2 < 0 || b2 > 255) { + /* Invalid bound value. */ + debug_return_int(REG_BADBR); + } + if (prev == '?' || prev == '*' || prev == '+' || prev == '{' ) { + /* Invalid repetition operator. */ + debug_return_int(REG_BADRPT); + } + /* Skip past '}', prev will be set to '{' below */ + cp++; + break; + } + prev = '\0'; + continue; } - *dst++ = ch; prev = ch; } - *dst = '\0'; - debug_return_ptr(ret); + debug_return_int(0); } /* @@ -108,22 +168,19 @@ sudo_regex_compile_v1(void *v, const char *pattern, const char **errstr) cp = pattern[0] == '^' ? pattern + 1 : pattern; if (strncmp(cp, "(?i)", 4) == 0) { cflags |= REG_ICASE; - copy = dup_pattern(pattern + 4); + copy = strdup(pattern + 4); if (copy == NULL) { *errstr = N_("unable to allocate memory"); debug_return_bool(false); } if (pattern[0] == '^') copy[0] = '^'; - } else { - copy = dup_pattern(pattern); - if (copy == NULL) { - *errstr = N_("unable to allocate memory"); - debug_return_bool(false); - } + pattern = copy; } - errcode = regcomp(preg, copy, cflags); + errcode = check_pattern(pattern); + if (errcode == 0) + errcode = regcomp(preg, pattern, cflags); if (errcode == 0) { if (preg == &rebuf) regfree(&rebuf); diff --git a/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.1 b/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.1 index 4d07875365..1a58c8770b 100644 --- a/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.1 +++ b/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.1 @@ -61,14 +61,6 @@ # #Path plugin_dir /usr/local/libexec/sudo -# -# Sudo developer mode: -# Set developer_mode true|false -# -# Allow loading of plugins that are owned by non-root or are writable -# by "group" or "other". Should only be used during plugin development. -#Set developer_mode true - # # Core dumps: # Set disable_coredump true|false diff --git a/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.2 b/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.2 index c99e623a7d..05039a5ed1 100644 --- a/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.2 +++ b/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.2 @@ -61,14 +61,6 @@ Path noexec /usr/local/libexec/sudo/sudo_noexec.so # Path plugin_dir /usr/local/libexec/sudo -# -# Sudo developer mode: -# Set developer_mode true|false -# -# Allow loading of plugins that are owned by non-root or are writable -# by "group" or "other". Should only be used during plugin development. -Set developer_mode true - # # Core dumps: # Set disable_coredump true|false diff --git a/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.3 b/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.3 index 52f9c85002..bcfafb2c39 100644 --- a/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.3 +++ b/lib/util/regress/corpus/seed/sudo_conf/sudo.conf.3 @@ -66,14 +66,6 @@ Path plugin_dir /usr/local/libexec/sudo # Path sesh /usr/local/libexec/sudo/sesh -# -# Sudo developer mode: -# Set developer_mode true|false -# -# Allow loading of plugins that are owned by non-root or are writable -# by "group" or "other". Should only be used during plugin development. -Set developer_mode true - # # Core dumps: # Set disable_coredump true|false diff --git a/lib/util/regress/fuzz/fuzz_sudo_conf.c b/lib/util/regress/fuzz/fuzz_sudo_conf.c index bfa62f8e2d..4e700868ef 100644 --- a/lib/util/regress/fuzz/fuzz_sudo_conf.c +++ b/lib/util/regress/fuzz/fuzz_sudo_conf.c @@ -26,6 +26,8 @@ # include #endif +#define SUDO_ERROR_WRAP 0 + #include "sudo_compat.h" #include "sudo_conf.h" #include "sudo_debug.h" @@ -64,11 +66,17 @@ fuzz_conversation(int num_msgs, const struct sudo_conv_message msgs[], int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { + struct plugin_info_list *plugins = sudo_conf_plugins(); + struct sudo_conf_debug_list *debug_list = sudo_conf_debugging(); + struct sudo_conf_debug_file_list *debug_files; char tempfile[] = "/tmp/sudo_conf.XXXXXX"; + struct sudo_conf_debug *debug_spec; + struct sudo_debug_file *debug_file; + struct plugin_info *info; size_t nwritten; int fd; - setprogname("fuzz_sudo_conf"); + initprogname("fuzz_sudo_conf"); if (getenv("SUDO_FUZZ_VERBOSE") == NULL) sudo_warn_set_conversation(fuzz_conversation); @@ -87,6 +95,52 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) sudo_conf_clear_paths(); sudo_conf_read(tempfile, SUDO_CONF_ALL); + /* Path settings. */ + if (sudo_conf_askpass_path() != NULL) + sudo_warnx("Path askpass %s", sudo_conf_askpass_path()); + if (sudo_conf_sesh_path() != NULL) + sudo_warnx("Path sesh %s", sudo_conf_sesh_path()); + if (sudo_conf_intercept_path() != NULL) + sudo_warnx("Path intercept %s", sudo_conf_intercept_path()); + if (sudo_conf_noexec_path() != NULL) + sudo_warnx("Path noexec %s", sudo_conf_noexec_path()); + if (sudo_conf_plugin_dir_path() != NULL) + sudo_warnx("Path plugin_dir %s", sudo_conf_plugin_dir_path()); + + /* Other settings. */ + sudo_warnx("Set disable_coredump %s", + sudo_conf_disable_coredump() ? "true" : "false"); + sudo_warnx("Set group_source %s", + sudo_conf_group_source() == GROUP_SOURCE_ADAPTIVE ? "adaptive" : + sudo_conf_group_source() == GROUP_SOURCE_STATIC ? "static" : "dynamic"); + sudo_warnx("Set max_groups %d", sudo_conf_max_groups()); + sudo_warnx("Set probe_interfaces %s", + sudo_conf_probe_interfaces() ? "true" : "false"); + + /* Plugins. */ + plugins = sudo_conf_plugins(); + TAILQ_FOREACH(info, plugins, entries) { + /* We don't bother with the plugin options. */ + sudo_warnx("Plugin %s %s", info->symbol_name, info->path); + } + + /* Debug settings. */ + debug_list = sudo_conf_debugging(); + TAILQ_FOREACH(debug_spec, debug_list, entries) { + TAILQ_FOREACH(debug_file, &debug_spec->debug_files, entries) { + sudo_warnx("Debug %s %s %s", debug_spec->progname, + debug_file->debug_file, debug_file->debug_flags); + } + } + + debug_files = sudo_conf_debug_files(getprogname()); + if (debug_files != NULL) { + TAILQ_FOREACH(debug_file, debug_files, entries) { + sudo_warnx("Debug %s %s %s", getprogname(), + debug_file->debug_file, debug_file->debug_flags); + } + } + unlink(tempfile); fflush(stdout); diff --git a/lib/util/regress/fuzz/fuzz_sudo_conf.dict b/lib/util/regress/fuzz/fuzz_sudo_conf.dict index fbe5cb3f06..4b26917cf3 100644 --- a/lib/util/regress/fuzz/fuzz_sudo_conf.dict +++ b/lib/util/regress/fuzz/fuzz_sudo_conf.dict @@ -12,7 +12,6 @@ "devsearch" # Variables -"developer_mode" "disable_coredump" "group_source" "max_groups" diff --git a/plugins/sudoers/regress/parser/check_hexchar.c b/lib/util/regress/hexchar/hexchar_test.c similarity index 90% rename from plugins/sudoers/regress/parser/check_hexchar.c rename to lib/util/regress/hexchar/hexchar_test.c index b7382c14bf..a51bf7f01b 100644 --- a/plugins/sudoers/regress/parser/check_hexchar.c +++ b/lib/util/regress/hexchar/hexchar_test.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2014-2015 Todd C. Miller + * Copyright (c) 2014-2015, 2023 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -27,8 +27,6 @@ #include "sudo_compat.h" #include "sudo_util.h" -int hexchar(const char *s); - sudo_dso_public int main(int argc, char *argv[]); struct hexchar_test { @@ -44,7 +42,7 @@ main(int argc, char *argv[]) static const char xdigs_lower[] = "0123456789abcdef"; static const char xdigs_upper[] = "0123456789ABCDEF"; - initprogname(argc > 0 ? argv[0] : "check_hexchar"); + initprogname(argc > 0 ? argv[0] : "hexchar_test"); /* Build up test data. */ ntests = 256 + 256 + 3; @@ -68,9 +66,9 @@ main(int argc, char *argv[]) test_data[ntests - 1].value = -1; for (i = 0; i < ntests; i++) { - result = hexchar(test_data[i].hex); + result = sudo_hexchar(test_data[i].hex); if (result != test_data[i].value) { - fprintf(stderr, "check_hexchar: expected %d, got %d\n", + fprintf(stderr, "%s: expected %d, got %d\n", getprogname(), test_data[i].value, result); errors++; } diff --git a/lib/util/regress/json/json_test.c b/lib/util/regress/json/json_test.c new file mode 100644 index 0000000000..8dc67193e7 --- /dev/null +++ b/lib/util/regress/json/json_test.c @@ -0,0 +1,235 @@ +/* + * SPDX-License-Identifier: ISC + * + * Copyright (c) 2022 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +#include +#include +#include +#include +#include +#include + +#define SUDO_ERROR_WRAP 0 + +#include "sudo_compat.h" +#include "sudo_json.h" +#include "sudo_util.h" +#include "sudo_fatal.h" + +sudo_dso_public int main(int argc, char *argv[]); + +/* Expected JSON output */ +const char outbuf[] = "\n" + " \"test1\": {\n" + " \"string1\": \"test\\\\\\b\\f\\n\\r\\t string1\",\n" + " \"id1\": 4294967295,\n" + " \"number1\": -1,\n" + " \"bool1\": true,\n" + " \"bool2\": false,\n" + " \"null1\": null,\n" + " \"array1\": [\n" + " \"string2\": \"test\\f\\u0011string2\",\n" + " \"number2\": -9223372036854775808,\n" + " \"number3\": 9223372036854775807\n" + " ]\n" + " }"; + +/* + * Simple tests for sudo json functions() + */ +int +main(int argc, char *argv[]) +{ + struct json_container jsonc; + struct json_value value; + int ch, errors = 0, ntests = 0; + + initprogname(argc > 0 ? argv[0] : "json_test"); + + while ((ch = getopt(argc, argv, "v")) != -1) { + switch (ch) { + case 'v': + /* ignore */ + break; + default: + fprintf(stderr, "usage: %s [-v]\n", getprogname()); + return EXIT_FAILURE; + } + } + argc -= optind; + argv += optind; + + ntests++; + if (!sudo_json_init(&jsonc, 4, false, true, true)) { + sudo_warnx("unable to initialize json"); + errors++; + goto done; + } + + /* Open main JSON object. */ + ntests++; + if (!sudo_json_open_object(&jsonc, "test1")) { + sudo_warnx("unable to open json object"); + errors++; + goto done; + } + + /* Verify invalid value is detected. */ + value.type = -1; + value.u.string = NULL; + ntests++; + if (sudo_json_add_value(&jsonc, "bogus1", &value)) { + /* should have failed, not a fatal error */ + sudo_warnx("should not be able to add bogus type value"); + errors++; + } + + /* Verify that adding an array is not allowed. */ + value.type = JSON_ARRAY; + value.u.string = NULL; + ntests++; + if (sudo_json_add_value(&jsonc, "bogus2", &value)) { + /* should have failed, not a fatal error */ + sudo_warnx("should not be able to add array type value"); + errors++; + } + + /* Verify that adding an object is not allowed. */ + value.type = JSON_OBJECT; + value.u.string = NULL; + ntests++; + if (sudo_json_add_value(&jsonc, "bogus3", &value)) { + /* should have failed, not a fatal error */ + sudo_warnx("should not be able to add object type value"); + errors++; + } + + value.type = JSON_STRING; + value.u.string = "test\\\b\f\n\r\t string1"; + ntests++; + if (!sudo_json_add_value(&jsonc, "string1", &value)) { + /* not a fatal error */ + sudo_warnx("unable to add string value (string1)"); + errors++; + } + + value.type = JSON_ID; + value.u.id = 0xffffffff; + ntests++; + if (!sudo_json_add_value(&jsonc, "id1", &value)) { + /* not a fatal error */ + sudo_warnx("unable to add ID value (0xffffffff)"); + errors++; + } + + value.type = JSON_NUMBER; + value.u.number = -1; + ntests++; + if (!sudo_json_add_value(&jsonc, "number1", &value)) { + /* not a fatal error */ + sudo_warnx("unable to add number value (-1)"); + errors++; + } + + value.type = JSON_BOOL; + value.u.boolean = true; + ntests++; + if (!sudo_json_add_value(&jsonc, "bool1", &value)) { + /* not a fatal error */ + sudo_warnx("unable to add bool value (true)"); + errors++; + } + value.u.boolean = false; + ntests++; + if (!sudo_json_add_value(&jsonc, "bool2", &value)) { + /* not a fatal error */ + sudo_warnx("unable to add bool value (false)"); + errors++; + } + + value.type = JSON_NULL; + ntests++; + if (!sudo_json_add_value(&jsonc, "null1", &value)) { + /* not a fatal error */ + sudo_warnx("unable to add null value"); + errors++; + } + + /* Open JSON array. */ + ntests++; + if (!sudo_json_open_array(&jsonc, "array1")) { + sudo_warnx("unable to open json array"); + errors++; + goto done; + } + + value.type = JSON_STRING; + value.u.string = "test\x0c\x11string2"; + ntests++; + if (!sudo_json_add_value(&jsonc, "string2", &value)) { + /* not a fatal error */ + sudo_warnx("unable to add string value (string2)"); + errors++; + } + + value.type = JSON_NUMBER; + value.u.number = LLONG_MIN; + ntests++; + if (!sudo_json_add_value(&jsonc, "number2", &value)) { + /* not a fatal error */ + sudo_warnx("unable to add number value (LLONG_MIN)"); + errors++; + } + value.u.number = LLONG_MAX; + ntests++; + if (!sudo_json_add_value(&jsonc, "number3", &value)) { + /* not a fatal error */ + sudo_warnx("unable to add number value (LLONG_MAX)"); + errors++; + } + + /* Close JSON array. */ + if (!sudo_json_close_array(&jsonc)) { + sudo_warnx("unable to close json array"); + errors++; + goto done; + } + + /* Close main JSON object. */ + if (!sudo_json_close_object(&jsonc)) { + sudo_warnx("unable to close json object"); + errors++; + goto done; + } + + if (strcmp(outbuf, jsonc.buf) != 0) { + fprintf(stderr, "Expected:\n%s\n", outbuf); + fprintf(stderr, "Received:\n%s\n", jsonc.buf); + } + +done: + sudo_json_free(&jsonc); + + if (ntests != 0) { + printf("%s: %d tests run, %d errors, %d%% success rate\n", + getprogname(), ntests, errors, (ntests - errors) * 100 / ntests); + } + + return errors; +} diff --git a/lib/util/regress/multiarch/multiarch_test.c b/lib/util/regress/multiarch/multiarch_test.c index dfceeb8522..1c60aff927 100644 --- a/lib/util/regress/multiarch/multiarch_test.c +++ b/lib/util/regress/multiarch/multiarch_test.c @@ -165,9 +165,15 @@ main(int argc, char *argv[]) sudo_warnx("%s: expected %s got %s", test_data[ch].inpath, test_data[ch].outpath, outpath); errors++; - free(outpath); } + /* For test_data[5], inpath is allocated and outpath is NULL. */ + if (test_data[ch].outpath != NULL) + free(test_data[ch].outpath); + else + free((char *)test_data[ch].inpath); + free(outpath); } + free(test_data); if (ntests != 0) { printf("%s: %d tests run, %d errors, %d%% success rate\n", diff --git a/lib/util/regress/regex/regex_test.c b/lib/util/regress/regex/regex_test.c new file mode 100644 index 0000000000..ed6986e161 --- /dev/null +++ b/lib/util/regress/regex/regex_test.c @@ -0,0 +1,126 @@ +/* + * SPDX-License-Identifier: ISC + * + * Copyright (c) 2022 Todd C. Miller + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include + +#include +#include +#include +#include +#include +#ifdef HAVE_STDBOOL_H +# include +#else +# include "compat/stdbool.h" +#endif + +#define SUDO_ERROR_WRAP 0 + +#include "sudo_compat.h" +#include "sudo_fatal.h" +#include "sudo_util.h" + +sudo_dso_public int main(int argc, char *argv[]); + +struct regex_test { + const char *pattern; + bool result; +}; + +static struct regex_test test_data[] = { + { "ab++", false }, + { "ab\\++", true }, + { "ab+\\+", true }, + { "ab**", false }, + { "ab\\**", true }, + { "ab*\\*", true }, + { "ab??", false }, + { "ab\\??", true }, + { "ab?\\?", true }, + { "ab{1}{1}", false }, + { "ab{1}{1,1}", false }, + { "ab{1}{,1}", false }, + { "ab{1}{1,}", false }, + { "ab{1}\\{1}", true }, + { "ab{1}\\{1,1}", true }, + { "ab{1}\\{,1}", true }, + { "ab{1}\\{1,}", true }, + { "ab+*", false }, + { "ab\\+*", true }, + { "ab+\\*", true }, + { "ab*+", false }, + { "ab\\*+", true }, + { "ab*\\+", true }, + { "ab?*", false }, + { "ab\\?*", true }, + { "ab?\\*", true }, + { "ab{1}*", false }, + { "ab\\{1}*", true }, + { "ab{1}\\*", true }, + { "ab{256}", false }, + { "ab{,256}", false }, + { "ab{256,}", false }, + { "ab{1,256}", false }, + { "ab{1,\\256}", false }, + { "ab{1,2\\56}", false }, + { "ab{256,1}", false }, + { "ab{\\256,1}", false }, + { "ab{2\\56,1}", false }, + { NULL } +}; + +int +main(int argc, char *argv[]) +{ + struct regex_test *td; + const char *errstr; + int errors = 0, ntests = 0; + bool result; + int ch; + + initprogname(argc > 0 ? argv[0] : "regex_test"); + + while ((ch = getopt(argc, argv, "v")) != -1) { + switch (ch) { + case 'v': + /* ignore */ + break; + default: + fprintf(stderr, "usage: %s [-v]\n", getprogname()); + return EXIT_FAILURE; + } + } + argc -= optind; + argv += optind; + + for (td = test_data; td->pattern != NULL; td++) { + ntests++; + result = sudo_regex_compile(NULL, td->pattern, &errstr); + if (result != td->result) { + sudo_warnx("%s: expected %d, got %d", td->pattern, (int)td->result, + (int)result); + errors++; + } + } + + if (ntests != 0) { + printf("%s: %d tests run, %d errors, %d%% success rate\n", + getprogname(), ntests, errors, (ntests - errors) * 100 / ntests); + } + return errors; +} diff --git a/lib/util/regress/sudo_conf/conf_test.c b/lib/util/regress/sudo_conf/conf_test.c index 3235019a2a..1d9c1b6840 100644 --- a/lib/util/regress/sudo_conf/conf_test.c +++ b/lib/util/regress/sudo_conf/conf_test.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2013-2014 Todd C. Miller + * Copyright (c) 2013-2022 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -89,18 +89,20 @@ sudo_conf_dump(void) struct sudo_debug_file *debug_file; struct plugin_info *info; - printf("Set developer_mode %s\n", - sudo_conf_developer_mode() ? "true" : "false"); printf("Set disable_coredump %s\n", sudo_conf_disable_coredump() ? "true" : "false"); printf("Set group_source %s\n", sudo_conf_group_source() == GROUP_SOURCE_ADAPTIVE ? "adaptive" : sudo_conf_group_source() == GROUP_SOURCE_STATIC ? "static" : "dynamic"); printf("Set max_groups %d\n", sudo_conf_max_groups()); + printf("Set probe_interfaces %s\n", + sudo_conf_probe_interfaces() ? "true" : "false"); if (sudo_conf_askpass_path() != NULL) printf("Path askpass %s\n", sudo_conf_askpass_path()); if (sudo_conf_sesh_path() != NULL) printf("Path sesh %s\n", sudo_conf_sesh_path()); + if (sudo_conf_intercept_path() != NULL) + printf("Path intercept %s\n", sudo_conf_intercept_path()); if (sudo_conf_noexec_path() != NULL) printf("Path noexec %s\n", sudo_conf_noexec_path()); if (sudo_conf_plugin_dir_path() != NULL) diff --git a/lib/util/regress/sudo_conf/test1.in b/lib/util/regress/sudo_conf/test1.in index 4727153a0c..bc9f6268fa 100644 --- a/lib/util/regress/sudo_conf/test1.in +++ b/lib/util/regress/sudo_conf/test1.in @@ -55,15 +55,6 @@ Path noexec /usr/libexec/sudo_noexec.so # Set disable_coredump false -# -# Developer mode: -# -# By default, sudo enforces that each plugin it loads is only modifiable as -# non root user. This might not be very convenient for plugin development, -# so this can be disabled by setting "developer_mode" to true. -# -Set developer_mode true - # # User groups: # diff --git a/lib/util/regress/sudo_conf/test1.out.ok b/lib/util/regress/sudo_conf/test1.out.ok index 47584e9f95..d5b784caf9 100644 --- a/lib/util/regress/sudo_conf/test1.out.ok +++ b/lib/util/regress/sudo_conf/test1.out.ok @@ -1,7 +1,7 @@ -Set developer_mode true Set disable_coredump false Set group_source static Set max_groups -1 +Set probe_interfaces true Path askpass /usr/X11R6/bin/ssh-askpass Path noexec /usr/libexec/sudo_noexec.so Plugin sudoers_policy sudoers.so diff --git a/lib/util/regress/sudo_conf/test2.out.ok b/lib/util/regress/sudo_conf/test2.out.ok index d7c595e332..cfd8a085e9 100644 --- a/lib/util/regress/sudo_conf/test2.out.ok +++ b/lib/util/regress/sudo_conf/test2.out.ok @@ -1,4 +1,4 @@ -Set developer_mode false Set disable_coredump true Set group_source adaptive Set max_groups -1 +Set probe_interfaces true diff --git a/lib/util/regress/sudo_conf/test3.out.ok b/lib/util/regress/sudo_conf/test3.out.ok index 8281666510..3ff22846b2 100644 --- a/lib/util/regress/sudo_conf/test3.out.ok +++ b/lib/util/regress/sudo_conf/test3.out.ok @@ -1,6 +1,6 @@ -Set developer_mode false Set disable_coredump true Set group_source adaptive Set max_groups -1 +Set probe_interfaces true Plugin sudoers_policy sudoers.so sudoers_file=/etc/sudoers sudoers_mode=0400 sudoers_gid=0 sudoers_uid=0 Plugin sudoers_io sudoers.so diff --git a/lib/util/regress/sudo_conf/test4.out.ok b/lib/util/regress/sudo_conf/test4.out.ok index d7c595e332..cfd8a085e9 100644 --- a/lib/util/regress/sudo_conf/test4.out.ok +++ b/lib/util/regress/sudo_conf/test4.out.ok @@ -1,4 +1,4 @@ -Set developer_mode false Set disable_coredump true Set group_source adaptive Set max_groups -1 +Set probe_interfaces true diff --git a/lib/util/regress/sudo_conf/test5.out.ok b/lib/util/regress/sudo_conf/test5.out.ok index d7c595e332..cfd8a085e9 100644 --- a/lib/util/regress/sudo_conf/test5.out.ok +++ b/lib/util/regress/sudo_conf/test5.out.ok @@ -1,4 +1,4 @@ -Set developer_mode false Set disable_coredump true Set group_source adaptive Set max_groups -1 +Set probe_interfaces true diff --git a/lib/util/regress/sudo_conf/test6.out.ok b/lib/util/regress/sudo_conf/test6.out.ok index d6e938ae27..674ae38fab 100644 --- a/lib/util/regress/sudo_conf/test6.out.ok +++ b/lib/util/regress/sudo_conf/test6.out.ok @@ -1,4 +1,4 @@ -Set developer_mode false Set disable_coredump true Set group_source adaptive Set max_groups 16 +Set probe_interfaces true diff --git a/lib/util/regress/sudo_conf/test7.out.ok b/lib/util/regress/sudo_conf/test7.out.ok index fedef8bab7..7ec856dcda 100644 --- a/lib/util/regress/sudo_conf/test7.out.ok +++ b/lib/util/regress/sudo_conf/test7.out.ok @@ -1,7 +1,7 @@ -Set developer_mode false Set disable_coredump true Set group_source adaptive Set max_groups -1 +Set probe_interfaces true Debug sudo /var/log/sudo_debug all@info Debug sudo /var/log/sudo_debug util@debug Debug visudo /var/log/sudo_debug match@debug diff --git a/lib/util/regress/sudo_conf/test8.err.ok b/lib/util/regress/sudo_conf/test8.err.ok deleted file mode 100644 index 2ff67737bc..0000000000 --- a/lib/util/regress/sudo_conf/test8.err.ok +++ /dev/null @@ -1 +0,0 @@ -conf_test: invalid value for developer_mode "foo" in regress/sudo_conf/test8.in, line 1 diff --git a/lib/util/regress/sudo_conf/test8.in b/lib/util/regress/sudo_conf/test8.in deleted file mode 100644 index e9a6773690..0000000000 --- a/lib/util/regress/sudo_conf/test8.in +++ /dev/null @@ -1 +0,0 @@ -Set developer_mode foo diff --git a/lib/util/regress/sudo_conf/test8.out.ok b/lib/util/regress/sudo_conf/test8.out.ok deleted file mode 100644 index d7c595e332..0000000000 --- a/lib/util/regress/sudo_conf/test8.out.ok +++ /dev/null @@ -1,4 +0,0 @@ -Set developer_mode false -Set disable_coredump true -Set group_source adaptive -Set max_groups -1 diff --git a/lib/util/sha2.c b/lib/util/sha2.c index f769f77f21..a9e3857406 100644 --- a/lib/util/sha2.c +++ b/lib/util/sha2.c @@ -276,7 +276,7 @@ SHA256Pad(SHA2_CTX *ctx) SHA256Update(ctx, (uint8_t *)"\200", 1); /* Pad message such that the resulting length modulo 512 is 448. */ - while ((ctx->count[0] & 504) != 448) + while ((ctx->count[0] & 511) != 448) SHA256Update(ctx, (uint8_t *)"\0", 1); /* Append length of message in bits and do final SHA256Transform(). */ @@ -490,7 +490,7 @@ SHA512Pad(SHA2_CTX *ctx) SHA512Update(ctx, (uint8_t *)"\200", 1); /* Pad message such that the resulting length modulo 1024 is 896. */ - while ((ctx->count[0] & 1016) != 896) + while ((ctx->count[0] & 1023) != 896) SHA512Update(ctx, (uint8_t *)"\0", 1); /* Append length of message in bits and do final SHA512Transform(). */ diff --git a/lib/util/snprintf.c b/lib/util/snprintf.c index 6e3f1fcf9c..8c75ba5d59 100644 --- a/lib/util/snprintf.c +++ b/lib/util/snprintf.c @@ -1,5 +1,5 @@ /* $OpenBSD: vfprintf.c,v 1.67 2014/12/21 00:23:30 daniel Exp $ */ -/* +/* * SPDX-License-Identifier: BSD-3-Clause * * Copyright (c) 1999-2005, 2008, 2010-2016 @@ -131,10 +131,8 @@ __wcsconv(wchar_t *wcsarg, int prec) memset(&mbs, 0, sizeof(mbs)); p = wcsarg; nbytes = wcsrtombs(NULL, (const wchar_t **)&p, 0, &mbs); - if (nbytes == (size_t)-1) { - errno = EILSEQ; + if (nbytes == (size_t)-1) return NULL; - } } else { /* * Optimisation: if the output precision is small enough, @@ -154,10 +152,8 @@ __wcsconv(wchar_t *wcsarg, int prec) break; nbytes += clen; } - if (clen == (size_t)-1) { - errno = EILSEQ; + if (clen == (size_t)-1) return NULL; - } } } if ((convbuf = malloc(nbytes + 1)) == NULL) @@ -169,7 +165,6 @@ __wcsconv(wchar_t *wcsarg, int prec) if ((nbytes = wcsrtombs(convbuf, (const wchar_t **)&p, nbytes, &mbs)) == (size_t)-1) { free(convbuf); - errno = EILSEQ; return NULL; } convbuf[nbytes] = '\0'; @@ -233,7 +228,7 @@ xxxprintf(char **strp, size_t strsize, int alloc, const char *fmt0, va_list ap) { char *fmt; /* format string */ int ch; /* character from fmt */ - int n, n2; /* handy integers (short term usage) */ + int n; /* handy integers (short term usage) */ char *cp; /* handy char pointer (short term usage) */ int flags; /* flags as above */ int ret; /* return value accumulator */ @@ -308,6 +303,9 @@ xxxprintf(char **strp, size_t strsize, int alloc, const char *fmt0, va_list ap) static const char xdigs_lower[16] = "0123456789abcdef"; static const char xdigs_upper[16] = "0123456789ABCDEF"; + /* + * BEWARE, these `goto done' on error, and PAD uses `n'. + */ /* Print chars to "str", (allocate as needed if alloc is set). */ #define PRINT(ptr, len) do { \ const char *p = ptr; \ @@ -330,7 +328,6 @@ xxxprintf(char **strp, size_t strsize, int alloc, const char *fmt0, va_list ap) } \ } while (0) - /* BEWARE, PAD uses `n' and PRINTANDPAD uses `n2'. */ #define PAD(plen, pstr) do { \ if ((n = (plen)) > 0) { \ while (n > PADSIZE) { \ @@ -341,7 +338,7 @@ xxxprintf(char **strp, size_t strsize, int alloc, const char *fmt0, va_list ap) } \ } while (0) #define PRINTANDPAD(p, ep, len, with) do { \ - n2 = (ep) - (p); \ + int n2 = (ep) - (p); \ if (n2 > (len)) \ n2 = (len); \ if (n2 > 0) \ @@ -388,8 +385,8 @@ xxxprintf(char **strp, size_t strsize, int alloc, const char *fmt0, va_list ap) * Get * arguments, including the form *nn$. Preserve the nextarg * that the argument can be gotten once the type is determined. */ -#define GETASTER(val) \ - n2 = 0; \ +#define GETASTER(val) do { \ + int n2 = 0; \ cp = fmt; \ while (is_digit(*cp)) { \ APPEND_DIGIT(n2, *cp); \ @@ -399,7 +396,10 @@ xxxprintf(char **strp, size_t strsize, int alloc, const char *fmt0, va_list ap) int hold = nextarg; \ if (argtable == NULL) { \ argtable = statargtable; \ - __find_arguments(fmt0, orgap, &argtable); \ + if (__find_arguments(fmt0, orgap, &argtable) == -1) { \ + ret = -1; \ + goto done; \ + } \ } \ nextarg = n2; \ val = GETARG(int); \ @@ -407,7 +407,8 @@ xxxprintf(char **strp, size_t strsize, int alloc, const char *fmt0, va_list ap) fmt = ++cp; \ } else { \ val = GETARG(int); \ - } + } \ +} while (0) /* * Get the argument indexed by nextarg. If the argument table is @@ -448,12 +449,14 @@ xxxprintf(char **strp, size_t strsize, int alloc, const char *fmt0, va_list ap) */ for (;;) { for (cp = fmt; (ch = *fmt) != '\0' && ch != '%'; fmt++) - /* void */; - if ((n = fmt - cp) != 0) { - if (n > INT_MAX - ret) + continue; + + if (fmt != cp) { + ptrdiff_t m = fmt - cp; + if (m < 0 || m > INT_MAX - ret) goto overflow; - PRINT(cp, n); - ret += n; + PRINT(cp, m); + ret += m; } if (ch == '\0') goto done; @@ -518,8 +521,11 @@ reswitch: switch (ch) { nextarg = n; if (argtable == NULL) { argtable = statargtable; - __find_arguments(fmt0, orgap, - &argtable); + if (__find_arguments(fmt0, orgap, + &argtable) == -1) { + ret = -1; + goto done; + } } goto rflag; } @@ -544,8 +550,11 @@ reswitch: switch (ch) { nextarg = n; if (argtable == NULL) { argtable = statargtable; - __find_arguments(fmt0, orgap, - &argtable); + if (__find_arguments(fmt0, orgap, + &argtable) == -1) { + ret = -1; + goto done; + } } goto rflag; } @@ -594,7 +603,7 @@ reswitch: switch (ch) { mbseqlen = wcrtomb(buf, (wchar_t)GETARG(wint_t), &mbs); if (mbseqlen == (size_t)-1) { - errno = EILSEQ; + ret = -1; goto done; } cp = buf; @@ -795,44 +804,35 @@ reswitch: switch (ch) { xdigs = xdigs_lower; ox[1] = 'x'; goto nosign; - case 's': + case 's': { + size_t len; + #ifdef PRINTF_WIDE_CHAR if (flags & LONGINT) { wchar_t *wcp; - if (convbuf != NULL) { - free(convbuf); - convbuf = NULL; - } + free(convbuf); + convbuf = NULL; if ((wcp = GETARG(wchar_t *)) == NULL) { cp = (char *)"(null)"; } else { convbuf = __wcsconv(wcp, prec); - if (convbuf == NULL) + if (convbuf == NULL) { + ret = -1; goto done; + } cp = convbuf; } } else #endif /* PRINTF_WIDE_CHAR */ if ((cp = GETARG(char *)) == NULL) cp = (char *)"(null)"; - if (prec >= 0) { - /* - * can't use strlen; can only look for the - * NUL in the first `prec' characters, and - * strlen() will go further. - */ - char *p = memchr(cp, 0, prec); - - size = p ? (p - cp) : prec; - } else { - size_t len; - - if ((len = strlen(cp)) > INT_MAX) - goto overflow; - size = (int)len; - } + len = prec >= 0 ? strnlen(cp, prec) : strlen(cp); + if (len > INT_MAX) + goto overflow; + size = (int)len; sign = '\0'; + } break; case 'U': flags |= LONGINT; @@ -1025,8 +1025,7 @@ number: if ((dprec = prec) >= 0) finish: #ifdef PRINTF_WIDE_CHAR - if (convbuf) - free(convbuf); + free(convbuf); #endif #ifdef FLOATING_POINT if (dtoaresult) @@ -1085,7 +1084,7 @@ __find_arguments(const char *fmt0, va_list ap, union arg **argtable) { char *fmt; /* format string */ int ch; /* character from fmt */ - int n, n2; /* handy integer (short term usage) */ + int n; /* handy integer (short term usage) */ char *cp; /* handy char pointer (short term usage) */ int flags; /* flags as above */ unsigned char *typetable; /* table of types */ @@ -1105,7 +1104,7 @@ __find_arguments(const char *fmt0, va_list ap, union arg **argtable) typetable[nextarg++] = type) #define ADDSARG() \ - ((flags&MAXINT) ? ADDTYPE(T_MAXINT) : \ + ((flags&MAXINT) ? ADDTYPE(T_MAXINT) : \ ((flags&PTRINT) ? ADDTYPE(T_PTRINT) : \ ((flags&SIZEINT) ? ADDTYPE(T_SSIZEINT) : \ ((flags&LLONGINT) ? ADDTYPE(T_LLONG) : \ @@ -1114,7 +1113,7 @@ __find_arguments(const char *fmt0, va_list ap, union arg **argtable) ((flags&CHARINT) ? ADDTYPE(T_CHAR) : ADDTYPE(T_INT)))))))) #define ADDUARG() \ - ((flags&MAXINT) ? ADDTYPE(T_MAXUINT) : \ + ((flags&MAXINT) ? ADDTYPE(T_MAXUINT) : \ ((flags&PTRINT) ? ADDTYPE(T_PTRINT) : \ ((flags&SIZEINT) ? ADDTYPE(T_SIZEINT) : \ ((flags&LLONGINT) ? ADDTYPE(T_U_LLONG) : \ @@ -1125,8 +1124,8 @@ __find_arguments(const char *fmt0, va_list ap, union arg **argtable) /* * Add * arguments to the type array. */ -#define ADDASTER() \ - n2 = 0; \ +#define ADDASTER() do { \ + int n2 = 0; \ cp = fmt; \ while (is_digit(*cp)) { \ APPEND_DIGIT(n2, *cp); \ @@ -1140,7 +1139,8 @@ __find_arguments(const char *fmt0, va_list ap, union arg **argtable) fmt = ++cp; \ } else { \ ADDTYPE(T_INT); \ - } + } \ +} while (0) fmt = (char *)fmt0; typetable = stattypetable; tablesize = STATIC_ARG_TBL_SIZE; @@ -1153,7 +1153,9 @@ __find_arguments(const char *fmt0, va_list ap, union arg **argtable) */ for (;;) { for (cp = fmt; (ch = *fmt) != '\0' && ch != '%'; fmt++) - /* void */; + continue; + if (ch == '\0') + goto done; fmt++; /* skip over '%' */ flags = 0; @@ -1436,7 +1438,7 @@ __grow_type_table(unsigned char **typetable, int *tablesize) unsigned char *new = sudo_mmap_alloc(newsize); if (new == NULL) return -1; - memmove(new, *typetable, *tablesize); + memcpy(new, *typetable, *tablesize); sudo_mmap_free(*typetable); *typetable = new; } @@ -1446,7 +1448,6 @@ __grow_type_table(unsigned char **typetable, int *tablesize) return 0; } - #ifdef FLOATING_POINT static int exponent(char *p0, int exp, int fmtch) diff --git a/lib/util/sudo_conf.c b/lib/util/sudo_conf.c index 5f046ffa1b..9c56120986 100644 --- a/lib/util/sudo_conf.c +++ b/lib/util/sudo_conf.c @@ -74,7 +74,6 @@ struct sudo_conf_path_table { struct sudo_conf_settings { bool updated; - bool developer_mode; bool disable_coredump; bool probe_interfaces; int group_source; @@ -94,14 +93,12 @@ static struct sudo_conf_table sudo_conf_table[] = { { NULL } }; -static int set_var_developer_mode(const char *entry, const char *conf_file, unsigned int); static int set_var_disable_coredump(const char *entry, const char *conf_file, unsigned int); static int set_var_group_source(const char *entry, const char *conf_file, unsigned int); static int set_var_max_groups(const char *entry, const char *conf_file, unsigned int); static int set_var_probe_interfaces(const char *entry, const char *conf_file, unsigned int); static struct sudo_conf_table sudo_conf_var_table[] = { - { "developer_mode", sizeof("developer_mode") - 1, set_var_developer_mode }, { "disable_coredump", sizeof("disable_coredump") - 1, set_var_disable_coredump }, { "group_source", sizeof("group_source") - 1, set_var_group_source }, { "max_groups", sizeof("max_groups") - 1, set_var_max_groups }, @@ -140,7 +137,6 @@ static struct sudo_conf_table sudo_conf_var_table[] = { #define SUDO_CONF_SETTINGS_INITIALIZER { \ false, /* updated */ \ - false, /* developer_mode */ \ true, /* disable_coredump */ \ true, /* probe_interfaces */ \ GROUP_SOURCE_DEFAULT, /* group_source */ \ @@ -393,22 +389,6 @@ parse_plugin(const char *entry, const char *conf_file, unsigned int lineno) debug_return_int(-1); } -static int -set_var_developer_mode(const char *strval, const char *conf_file, - unsigned int lineno) -{ - int val = sudo_strtobool(strval); - debug_decl(set_var_developer_mode, SUDO_DEBUG_UTIL); - - if (val == -1) { - sudo_warnx(U_("invalid value for %s \"%s\" in %s, line %u"), - "developer_mode", strval, conf_file, lineno); - debug_return_bool(false); - } - sudo_conf_data.settings.developer_mode = val; - debug_return_bool(true); -} - static int set_var_disable_coredump(const char *strval, const char *conf_file, unsigned int lineno) @@ -419,10 +399,10 @@ set_var_disable_coredump(const char *strval, const char *conf_file, if (val == -1) { sudo_warnx(U_("invalid value for %s \"%s\" in %s, line %u"), "disable_coredump", strval, conf_file, lineno); - debug_return_bool(false); + debug_return_int(false); } sudo_conf_data.settings.disable_coredump = val; - debug_return_bool(true); + debug_return_int(true); } static int @@ -440,9 +420,9 @@ set_var_group_source(const char *strval, const char *conf_file, } else { sudo_warnx(U_("unsupported group source \"%s\" in %s, line %u"), strval, conf_file, lineno); - debug_return_bool(false); + debug_return_int(false); } - debug_return_bool(true); + debug_return_int(true); } static int @@ -456,10 +436,10 @@ set_var_max_groups(const char *strval, const char *conf_file, if (max_groups <= 0) { sudo_warnx(U_("invalid max groups \"%s\" in %s, line %u"), strval, conf_file, lineno); - debug_return_bool(false); + debug_return_int(false); } sudo_conf_data.settings.max_groups = max_groups; - debug_return_bool(true); + debug_return_int(true); } static int @@ -472,10 +452,10 @@ set_var_probe_interfaces(const char *strval, const char *conf_file, if (val == -1) { sudo_warnx(U_("invalid value for %s \"%s\" in %s, line %u"), "probe_interfaces", strval, conf_file, lineno); - debug_return_bool(false); + debug_return_int(false); } sudo_conf_data.settings.probe_interfaces = val; - debug_return_bool(true); + debug_return_int(true); } const char * @@ -569,7 +549,8 @@ sudo_conf_debug_files_v1(const char *progname) bool sudo_conf_developer_mode_v1(void) { - return sudo_conf_data.settings.developer_mode; + /* Developer mode was removed in sudo 1.9.13. */ + return false; } bool @@ -650,7 +631,6 @@ sudo_conf_init(int conf_types) int sudo_conf_read_v1(const char *conf_file, int conf_types) { - struct stat sb; FILE *fp = NULL; int fd, ret = false; char *prev_locale, *line = NULL; @@ -671,14 +651,11 @@ sudo_conf_read_v1(const char *conf_file, int conf_types) if (prev_locale[0] != 'C' || prev_locale[1] != '\0') setlocale(LC_ALL, "C"); - if (conf_file != NULL) { - fd = open(conf_file, O_RDONLY); - if (fd == -1) { - sudo_warn(U_("unable to open %s"), conf_file); - goto done; - } - } else { +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + if (conf_file == NULL) { + struct stat sb; int error; + conf_file = _PATH_SUDO_CONF; fd = sudo_secure_open_file(conf_file, ROOT_UID, -1, &sb, &error); if (fd == -1) { @@ -708,6 +685,17 @@ sudo_conf_read_v1(const char *conf_file, int conf_types) } goto done; } + } else +#else + if (conf_file == NULL) + conf_file = _PATH_SUDO_CONF; +#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */ + { + fd = open(conf_file, O_RDONLY); + if (fd == -1) { + sudo_warn(U_("unable to open %s"), conf_file); + goto done; + } } if ((fp = fdopen(fd, "r")) == NULL) { diff --git a/lib/util/sudo_dso.c b/lib/util/sudo_dso.c index 8c680e034c..d38fedf81a 100644 --- a/lib/util/sudo_dso.c +++ b/lib/util/sudo_dso.c @@ -24,6 +24,7 @@ #include #ifdef __linux__ +# include # include #endif @@ -123,7 +124,7 @@ sudo_dso_findsym_v1(void *vhandle, const char *symbol) } /* - * Note that the behavior of of SUDO_DSO_NEXT and SUDO_DSO_SELF + * Note that the behavior of of SUDO_DSO_NEXT and SUDO_DSO_SELF * differs from most implementations when called from * a shared library. */ @@ -175,7 +176,7 @@ sudo_dso_strerror_v1(void) # endif # if defined(__linux__) -/* +/* * On Linux systems that use multi-arch, the actual DSO may be * in a machine-specific subdirectory. If the specified path * contains /lib/ or /libexec/, insert a multi-arch directory @@ -214,6 +215,7 @@ sudo_dso_load_v1(const char *path, int mode) void *ret; # ifdef RTLD_MEMBER char *cp; + size_t pathlen; # endif /* Check prelinked symbols first. */ @@ -235,28 +237,58 @@ sudo_dso_load_v1(const char *path, int mode) SET(flags, RTLD_LOCAL); # ifdef RTLD_MEMBER - /* Check for AIX path(module) syntax and add RTLD_MEMBER for a module. */ - cp = strrchr(path, '('); - if (cp != NULL) { - size_t len = strlen(cp); - if (len > 2 && cp[len - 1] == '\0') + /* Check for AIX shlib.a(member) syntax and dlopen() with RTLD_MEMBER. */ + pathlen = strlen(path); + if (pathlen > 2 && path[pathlen - 1] == ')') { + cp = strrchr(path, '('); + if (cp != NULL && cp > path + 2 && cp[-2] == '.' && cp[-1] == 'a') { + /* Only for archive files (e.g. sudoers.a). */ SET(flags, RTLD_MEMBER); + } } # endif /* RTLD_MEMBER */ ret = dlopen(path, flags); # if defined(RTLD_MEMBER) - /* - * If we try to dlopen() an AIX .a file without an explicit member - * it will fail with ENOEXEC. Try again using the default member. - */ - if (ret == NULL && !ISSET(flags, RTLD_MEMBER) && errno == ENOEXEC) { - if (asprintf(&cp, "%s(%s)", path, SUDO_DSO_MEMBER) != -1) { - ret = dlopen(cp, flags|RTLD_MEMBER); - free(cp); - } - if (ret == NULL) { - /* Retry with the original path so we get the correct error. */ - ret = dlopen(path, flags); + /* Special fallback handling for AIX shared objects. */ + if (ret == NULL && !ISSET(flags, RTLD_MEMBER)) { + switch (errno) { + case ENOEXEC: + /* + * If we try to dlopen() an AIX .a file without an explicit member + * it will fail with ENOEXEC. Try again using the default member. + */ + if (pathlen > 2 && strcmp(&path[pathlen - 2], ".a") == 0) { + int len = asprintf(&cp, "%s(%s)", path, SUDO_DSO_MEMBER); + if (len != -1) { + ret = dlopen(cp, flags|RTLD_MEMBER); + free(cp); + } + if (ret == NULL) { + /* Retry with the original path to get the correct error. */ + ret = dlopen(path, flags); + } + } + break; + case ENOENT: + /* + * If the .so file is missing but the .a file exists, try to + * dlopen() the AIX .a file using the .so name as the member. + * This is for compatibility with versions of sudo that use + * SVR4-style shared libs, not AIX-style shared libs. + */ + if (pathlen > 3 && strcmp(&path[pathlen - 3], ".so") == 0) { + int len = asprintf(&cp, "%.*s.a(%s)", (int)(pathlen - 3), + path, sudo_basename(path)); + if (len != -1) { + ret = dlopen(cp, flags|RTLD_MEMBER); + free(cp); + } + if (ret == NULL) { + /* Retry with the original path to get the correct error. */ + ret = dlopen(path, flags); + } + } + break; } } # endif /* RTLD_MEMBER */ diff --git a/lib/util/term.c b/lib/util/term.c index 05f32478ef..41d2725129 100644 --- a/lib/util/term.c +++ b/lib/util/term.c @@ -115,6 +115,7 @@ tcsetattr_nobg(int fd, int flags, struct termios *tp) { struct sigaction sa, osa; int rc; + debug_decl(tcsetattr_nobg, SUDO_DEBUG_UTIL); /* * If we receive SIGTTOU from tcsetattr() it means we are @@ -131,7 +132,7 @@ tcsetattr_nobg(int fd, int flags, struct termios *tp) } while (rc != 0 && errno == EINTR && !got_sigttou); sigaction(SIGTTOU, &osa, NULL); - return rc; + debug_return_int(rc); } /* diff --git a/lib/util/util.exp.in b/lib/util/util.exp.in index 99ea923c49..6c8130a029 100644 --- a/lib/util/util.exp.in +++ b/lib/util/util.exp.in @@ -88,6 +88,7 @@ sudo_gethostname_v1 sudo_gettime_awake_v1 sudo_gettime_mono_v1 sudo_gettime_real_v1 +sudo_hexchar_v1 sudo_json_add_value_as_object_v1 sudo_json_add_value_v1 sudo_json_close_array_v1 @@ -96,8 +97,10 @@ sudo_json_free_v1 sudo_json_get_buf_v1 sudo_json_get_len_v1 sudo_json_init_v1 +sudo_json_init_v2 sudo_json_open_array_v1 sudo_json_open_object_v1 +sudo_lbuf_append_esc_v1 sudo_lbuf_append_quoted_v1 sudo_lbuf_append_v1 sudo_lbuf_clearerr_v1 diff --git a/logsrvd/Makefile.in b/logsrvd/Makefile.in index c9ba8658cf..edd35bc37e 100644 --- a/logsrvd/Makefile.in +++ b/logsrvd/Makefile.in @@ -36,7 +36,7 @@ cross_compiling = @CROSS_COMPILING@ CC = @CC@ LIBTOOL = @LIBTOOL@ SHA1SUM = @SHA1SUM@ -GREP = @GREP@ +EGREP = @EGREP@ SED = @SED@ # Our install program supports extra flags... @@ -195,11 +195,9 @@ fuzz_logsrvd_conf_seed_corpus.zip: rm -rf $$tdir run-fuzz_logsrvd_conf: fuzz_logsrvd_conf - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -258,11 +256,9 @@ fuzz: run-fuzz_logsrvd_conf check-fuzzer: $(FUZZ_PROGS) @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -273,11 +269,9 @@ check-fuzzer: $(FUZZ_PROGS) check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ diff --git a/logsrvd/logsrvd.c b/logsrvd/logsrvd.c index a09b7b6976..17edb84a56 100644 --- a/logsrvd/logsrvd.c +++ b/logsrvd/logsrvd.c @@ -1415,7 +1415,7 @@ new_connection(int sock, bool tls, const union sockaddr_union *sa_un, if (sa_un->sa.sa_family == AF_INET) { inet_ntop(AF_INET, &sa_un->sin.sin_addr, closure->ipaddr, sizeof(closure->ipaddr)); -#if defined(HAVE_STRUCT_IN6_ADDR) +#ifdef HAVE_STRUCT_IN6_ADDR } else if (sa_un->sa.sa_family == AF_INET6) { inet_ntop(AF_INET6, &sa_un->sin6.sin6_addr, closure->ipaddr, sizeof(closure->ipaddr)); @@ -1675,9 +1675,11 @@ server_dump_stats(void) case AF_INET: inet_ntop(AF_INET, &sa_un->sin.sin_addr, ipaddr, sizeof(ipaddr)); break; +#ifdef HAVE_STRUCT_IN6_ADDR case AF_INET6: inet_ntop(AF_INET6, &sa_un->sin6.sin6_addr, ipaddr, sizeof(ipaddr)); break; +#endif /* HAVE_STRUCT_IN6_ADDR */ default: (void)strlcpy(ipaddr, "[unknown]", sizeof(ipaddr)); break; diff --git a/logsrvd/logsrvd_conf.c b/logsrvd/logsrvd_conf.c index 39bfa873b1..1cde0ba76b 100644 --- a/logsrvd/logsrvd_conf.c +++ b/logsrvd/logsrvd_conf.c @@ -544,6 +544,9 @@ append_address(struct server_address_list *addresses, const char *str, hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; +#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + hints.ai_flags |= AI_NUMERICSERV; +#endif error = getaddrinfo(host, port, &hints, &res0); if (error != 0) { sudo_gai_warn(error, U_("%s:%s"), host ? host : "*", port); diff --git a/logsrvd/logsrvd_journal.c b/logsrvd/logsrvd_journal.c index 831610cfa6..354d71c80a 100644 --- a/logsrvd/logsrvd_journal.c +++ b/logsrvd/logsrvd_journal.c @@ -70,6 +70,7 @@ journal_fdopen(int fd, const char *journal_path, { debug_decl(journal_fdopen, SUDO_DEBUG_UTIL); + free(closure->journal_path); closure->journal_path = strdup(journal_path); if (closure->journal_path == NULL) { sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory")); @@ -77,6 +78,8 @@ journal_fdopen(int fd, const char *journal_path, } /* Defer fdopen() until last--it cannot be undone. */ + if (closure->journal != NULL) + fclose(closure->journal); if ((closure->journal = fdopen(fd, "r+")) == NULL) { sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO, "unable to fdopen journal file %s", journal_path); diff --git a/logsrvd/logsrvd_local.c b/logsrvd/logsrvd_local.c index 4d1f9d7dda..99b0a3f027 100644 --- a/logsrvd/logsrvd_local.c +++ b/logsrvd/logsrvd_local.c @@ -312,7 +312,7 @@ store_exit_info_json(int dfd, struct eventlog *evlog) off_t pos; debug_decl(store_exit_info_json, SUDO_DEBUG_UTIL); - if (!sudo_json_init(&jsonc, 4, false, false)) + if (!sudo_json_init(&jsonc, 4, false, false, false)) goto done; fd = iolog_openat(dfd, "log.json", O_RDWR); diff --git a/logsrvd/logsrvd_relay.c b/logsrvd/logsrvd_relay.c index dc192888cb..f9e7f303b1 100644 --- a/logsrvd/logsrvd_relay.c +++ b/logsrvd/logsrvd_relay.c @@ -347,9 +347,11 @@ connect_relay_next(struct connection_closure *closure) case AF_INET: addr = (char *)&relay->sa_un.sin.sin_addr; break; +#ifdef HAVE_STRUCT_IN6_ADDR case AF_INET6: addr = (char *)&relay->sa_un.sin6.sin6_addr; break; +#endif default: errno = EAFNOSUPPORT; sudo_warn("connect"); diff --git a/logsrvd/regress/fuzz/fuzz_logsrvd_conf.c b/logsrvd/regress/fuzz/fuzz_logsrvd_conf.c index 1964d443b1..39cd663997 100644 --- a/logsrvd/regress/fuzz/fuzz_logsrvd_conf.c +++ b/logsrvd/regress/fuzz/fuzz_logsrvd_conf.c @@ -98,7 +98,7 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) size_t nwritten; int fd; - setprogname("fuzz_logsrvd_conf"); + initprogname("fuzz_logsrvd_conf"); if (getenv("SUDO_FUZZ_VERBOSE") == NULL) sudo_warn_set_conversation(fuzz_conversation); diff --git a/m4/ax_append_flag.m4 b/m4/ax_append_flag.m4 index 08f2e07ec6..dd6d8b6140 100644 --- a/m4/ax_append_flag.m4 +++ b/m4/ax_append_flag.m4 @@ -1,5 +1,5 @@ # =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_append_flag.html +# https://www.gnu.org/software/autoconf-archive/ax_append_flag.html # =========================================================================== # # SYNOPSIS @@ -23,33 +23,12 @@ # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2011 Maarten Bosmans # -# 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 . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. -#serial 6 +#serial 8 AC_DEFUN([AX_APPEND_FLAG], [dnl diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4 index c3a8d695a1..bd753b34d7 100644 --- a/m4/ax_check_compile_flag.m4 +++ b/m4/ax_check_compile_flag.m4 @@ -1,10 +1,10 @@ # =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html # =========================================================================== # # SYNOPSIS # -# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS]) +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) # # DESCRIPTION # @@ -19,6 +19,8 @@ # the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to # force the compiler to issue an error when a bad flag is given. # +# INPUT gives an alternative input source to AC_COMPILE_IFELSE. +# # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this # macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. # @@ -27,45 +29,24 @@ # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2011 Maarten Bosmans # -# 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 . -# -# As a special exception, the respective Autoconf Macro's copyright owner -# gives unlimited permission to copy, distribute and modify the configure -# scripts that are the output of Autoconf when processing the Macro. You -# need not follow the terms of the GNU General Public License when using -# or distributing such scripts, even though portions of the text of the -# Macro appear in them. The GNU General Public License (GPL) does govern -# all other use of the material that constitutes the Autoconf Macro. -# -# This special exception to the GPL applies to versions of the Autoconf -# Macro released by the Autoconf Archive. When you make and distribute a -# modified version of the Autoconf Macro, you may extend this special -# exception to the GPL to apply to your modified version as well. +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. -#serial 2 +#serial 6 AC_DEFUN([AX_CHECK_COMPILE_FLAG], -[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX +[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], + AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], [AS_VAR_SET(CACHEVAR,[yes])], [AS_VAR_SET(CACHEVAR,[no])]) _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) -AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], +AS_VAR_IF(CACHEVAR,yes, [m4_default([$2], :)], [m4_default([$3], :)]) AS_VAR_POPDEF([CACHEVAR])dnl diff --git a/m4/ax_func_getaddrinfo.m4 b/m4/ax_func_getaddrinfo.m4 index de3301b343..7cde7b924a 100644 --- a/m4/ax_func_getaddrinfo.m4 +++ b/m4/ax_func_getaddrinfo.m4 @@ -26,7 +26,7 @@ AC_CACHE_VAL(ax_cv_func_getaddrinfo, int main() { return getaddrinfo(0, 0, 0, 0); }]])], [ax_cv_func_getaddrinfo=yes], [ax_cv_func_getaddrinfo=no])]) AC_MSG_RESULT([$ax_cv_func_getaddrinfo]) if test X"$ax_cv_func_getaddrinfo" = X"yes"; then - AC_DEFINE(HAVE_GETADDRINFO, 1, [Define to 1 if you have the `getaddrinfo' function.]) + AC_DEFINE(HAVE_GETADDRINFO, 1, [Define to 1 if you have the 'getaddrinfo' function.]) else # Not found in libc, check libsocket and libinet _found=no diff --git a/m4/ax_func_snprintf.m4 b/m4/ax_func_snprintf.m4 index c060d6e9ff..dfaa03dd31 100644 --- a/m4/ax_func_snprintf.m4 +++ b/m4/ax_func_snprintf.m4 @@ -1,5 +1,5 @@ # =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_func_snprintf.html +# https://www.gnu.org/software/autoconf-archive/ax_func_snprintf.html # =========================================================================== # # SYNOPSIS @@ -24,8 +24,9 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 5 +#serial 7 +AU_ALIAS([AC_FUNC_SNPRINTF], [AX_FUNC_SNPRINTF]) AC_DEFUN([AX_FUNC_SNPRINTF], [AC_CHECK_FUNCS(snprintf vsnprintf) AC_MSG_CHECKING(for working snprintf) diff --git a/m4/ax_prog_cc_for_build.m4 b/m4/ax_prog_cc_for_build.m4 index 28fb18b907..33eaa389fd 100644 --- a/m4/ax_prog_cc_for_build.m4 +++ b/m4/ax_prog_cc_for_build.m4 @@ -32,7 +32,7 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 20 +#serial 21 AU_ALIAS([AC_PROG_CC_FOR_BUILD], [AX_PROG_CC_FOR_BUILD]) AC_DEFUN([AX_PROG_CC_FOR_BUILD], [dnl @@ -89,16 +89,16 @@ AC_LANG_PUSH([C]) dnl The pushdef([ac_cv_c_compiler_gnu], ...) currently does not cover dnl the use of this variable in _AC_LANG_COMPILER_GNU called by dnl AC_PROG_CC. Unset this cache variable temporarily as a workaround. -was_set_ac_cv_c_compiler_gnu=${[ac_cv_c_compiler_gnu]+y} -AS_IF([test ${was_set_ac_cv_c_compiler_gnu}], - [saved_ac_cv_c_compiler_gnu=$[ac_cv_c_compiler_gnu] +was_set_c_compiler_gnu=${[ac_cv_c_compiler_gnu]+y} +AS_IF([test ${was_set_c_compiler_gnu}], + [saved_c_compiler_gnu=$[ac_cv_c_compiler_gnu] AS_UNSET([[ac_cv_c_compiler_gnu]])]) AC_PROG_CC dnl Restore ac_cv_c_compiler_gnu -AS_IF([test ${was_set_ac_cv_c_compiler_gnu}], - [[ac_cv_c_compiler_gnu]=saved_ac_cv_c_compiler_gnu]) +AS_IF([test ${was_set_c_compiler_gnu}], + [[ac_cv_c_compiler_gnu]=$[saved_c_compiler_gnu]]) _AC_COMPILER_EXEEXT _AC_COMPILER_OBJEXT diff --git a/m4/gettext.m4 b/m4/gettext.m4 new file mode 100644 index 0000000000..f25bf7b4ab --- /dev/null +++ b/m4/gettext.m4 @@ -0,0 +1,61 @@ +AC_DEFUN([SUDO_CHECK_GETTEXT], [ + # gettext() and friends may be located in libc (Linux and Solaris) + # or in libintl. However, it is possible to have libintl installed + # even when gettext() is present in libc. In the case of GNU libintl, + # gettext() will be defined to gettext_libintl in libintl.h. + # Since gcc prefers /usr/local/include to /usr/include, we need to + # make sure we use the gettext() that matches the include file. + if test "$enable_nls" != "no"; then + if test "$enable_nls" != "yes"; then + AX_APPEND_FLAG([-I${enable_nls}/include], [CPPFLAGS]) + SUDO_APPEND_LIBPATH(LDFLAGS, [$enable_nls/lib]) + fi + OLIBS="$LIBS" + for l in "libc" "-lintl" "-lintl -liconv"; do + if test "$l" = "libc"; then + # If user specified a dir for libintl ignore libc + if test "$enable_nls" != "yes"; then + continue + fi + gettext_name=sudo_cv_gettext + AC_MSG_CHECKING([for gettext]) + else + LIBS="$OLIBS $l" + gettext_name=sudo_cv_gettext"`echo $l|sed -e 's/ //g' -e 's/-/_/g'`" + AC_MSG_CHECKING([for gettext in $l]) + fi + AC_CACHE_VAL($gettext_name, [ + AC_LINK_IFELSE( + [ + AC_LANG_PROGRAM([[#include ]], [(void)gettext((char *)0);]) + ], [eval $gettext_name=yes], [eval $gettext_name=no] + ) + ]) + eval gettext_result="\$$gettext_name" + AC_MSG_RESULT($gettext_result) + if test "$gettext_result" = "yes"; then + AC_CHECK_FUNCS([ngettext]) + break + fi + done + LIBS="$OLIBS" + + if test "$sudo_cv_gettext" = "yes"; then + SUDO_NLS=enabled + # For Solaris we need links from lang to lang.UTF-8 in localedir + case "$host_os" in + solaris2*) LOCALEDIR_SUFFIX=".UTF-8";; + esac + elif test "$sudo_cv_gettext_lintl" = "yes"; then + SUDO_NLS=enabled + LIBINTL="-lintl" + elif test "$sudo_cv_gettext_lintl_liconv" = "yes"; then + SUDO_NLS=enabled + LIBINTL="-lintl -liconv" + fi + if test X"$SUDO_NLS" = X"enabled"; then + AC_DEFINE(HAVE_LIBINTL_H) + SUDO_APPEND_COMPAT_EXP(sudo_warn_gettext_v1) + fi + fi +]) diff --git a/m4/hardening.m4 b/m4/hardening.m4 new file mode 100644 index 0000000000..f7d2a8c291 --- /dev/null +++ b/m4/hardening.m4 @@ -0,0 +1,124 @@ +AC_DEFUN([SUDO_CHECK_HARDENING], [ + if test "$enable_hardening" != "no"; then + # + # Attempt to use _FORTIFY_SOURCE with sprintf. If the headers support + # it but libc does not, __sprintf_chk should be an undefined symbol. + # + O_CPPFLAGS="$CPPFLAGS" + AX_APPEND_FLAG([-D_FORTIFY_SOURCE=2], [CPPFLAGS]) + AC_CACHE_CHECK([whether _FORTIFY_SOURCE may be specified], + [sudo_cv_use_fortify_source], + [AC_LINK_IFELSE([ + AC_LANG_PROGRAM( + [[]], [[char buf[4]; (void)sprintf(buf, "%s", "foo");]] + )], + [sudo_cv_use_fortify_source=yes], + [sudo_cv_use_fortify_source=no] + ) + ] + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[]], [[]])], + [sudo_cv_use_fortify_source=yes], + [sudo_cv_use_fortify_source=no] + ) + ] + ) + if test "$sudo_cv_use_fortify_source" != yes; then + CPPFLAGS="$O_CPPFLAGS" + fi + + dnl + dnl The following tests rely on AC_LANG_WERROR. + dnl + if test -n "$GCC" -a "$enable_ssp" != "no"; then + AC_CACHE_CHECK([for compiler stack protector support], + [sudo_cv_var_stack_protector], + [ + # Avoid CFLAGS since the compiler might optimize away our + # test. We don't want CPPFLAGS or LIBS to interfere with + # the test but keep LDFLAGS as it may have an rpath needed + # to find the ssp lib. + _CPPFLAGS="$CPPFLAGS" + _CFLAGS="$CFLAGS" + _LDFLAGS="$LDFLAGS" + _LIBS="$LIBS" + CPPFLAGS= + LIBS= + + sudo_cv_var_stack_protector="-fstack-protector-strong" + CFLAGS="$sudo_cv_var_stack_protector" + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], + [[char buf[1024]; buf[1023] = '\0';]]) + ], [], [ + sudo_cv_var_stack_protector="-fstack-protector-all" + CFLAGS="$sudo_cv_var_stack_protector" + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], + [[char buf[1024]; buf[1023] = '\0';]]) + ], [], [ + sudo_cv_var_stack_protector="-fstack-protector" + CFLAGS="$sudo_cv_var_stack_protector" + LDFLAGS="$_LDFLAGS $sudo_cv_var_stack_protector" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT], + [[char buf[1024]; buf[1023] = '\0';]]) + ], [], [ + sudo_cv_var_stack_protector=no + ]) + ]) + ]) + CPPFLAGS="$_CPPFLAGS" + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + LIBS="$_LIBS" + ] + ) + if test X"$sudo_cv_var_stack_protector" != X"no"; then + HARDENING_CFLAGS="$sudo_cv_var_stack_protector" + HARDENING_LDFLAGS="-Wc,$sudo_cv_var_stack_protector" + fi + fi + + # The gcc front-end may accept -fstack-clash-protection even if the + # machine-specific code does not support it. We use a test program + # with a large stack allocation to try to cause the compiler to + # insert the stack clash protection code, or fail if not supported. + if test -n "$GCC"; then + AC_CACHE_CHECK([whether C compiler supports -fstack-clash-protection], + [sudo_cv_check_cflags___fstack_clash_protection], + [ + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fstack-clash-protection" + AC_COMPILE_IFELSE([ + AC_LANG_SOURCE([[int main(int argc, char *argv[]) { char buf[16384], *src = argv[0], *dst = buf; while ((*dst++ = *src++) != '\0') { continue; } return buf[argc]; }]]) + ], [sudo_cv_check_cflags___fstack_clash_protection=yes], [sudo_cv_check_cflags___fstack_clash_protection=no]) + CFLAGS="$_CFLAGS" + ] + ) + if test X"$sudo_cv_check_cflags___fstack_clash_protection" = X"yes"; then + AX_CHECK_LINK_FLAG([-fstack-clash-protection], [ + AX_APPEND_FLAG([-fstack-clash-protection], [HARDENING_CFLAGS]) + AX_APPEND_FLAG([-Wc,-fstack-clash-protection], [HARDENING_LDFLAGS]) + ]) + fi + + # Check for control-flow transfer instrumentation (Intel CET). + AX_CHECK_COMPILE_FLAG([-fcf-protection], [ + AX_CHECK_LINK_FLAG([-fcf-protection], [ + AX_APPEND_FLAG([-fcf-protection], [HARDENING_CFLAGS]) + AX_APPEND_FLAG([-Wc,-fcf-protection], [HARDENING_LDFLAGS]) + ]) + ]) + fi + + # Linker-specific hardening flags. + if test X"$with_gnu_ld" = X"yes"; then + # GNU ld, and similar (gold, lld, etc). + AX_CHECK_LINK_FLAG([-Wl,-z,relro], [AX_APPEND_FLAG([-Wl,-z,relro], [HARDENING_LDFLAGS])]) + AX_CHECK_LINK_FLAG([-Wl,-z,now], [AX_APPEND_FLAG([-Wl,-z,now], [HARDENING_LDFLAGS])]) + AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [AX_APPEND_FLAG([-Wl,-z,noexecstack], [HARDENING_LDFLAGS])]) + fi + fi]) diff --git a/m4/ldap.m4 b/m4/ldap.m4 new file mode 100644 index 0000000000..78c21e0bc0 --- /dev/null +++ b/m4/ldap.m4 @@ -0,0 +1,130 @@ +AC_DEFUN([SUDO_CHECK_LDAP], [ + if test ${with_ldap-'no'} != "no"; then + O_LDFLAGS="$LDFLAGS" + if test "$with_ldap" != "yes"; then + SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_ldap}/lib]) + LDFLAGS="$LDFLAGS -L${with_ldap}/lib" + if test -d "${with_ldap}/lib64"; then + SUDO_APPEND_LIBPATH(SUDOERS_LDFLAGS, [${with_ldap}/lib64]) + LDFLAGS="$LDFLAGS -L${with_ldap}/lib64" + fi + AX_APPEND_FLAG([-I${with_ldap}/include], [CPPFLAGS]) + with_ldap=yes + fi + SUDOERS_OBJS="${SUDOERS_OBJS} ldap.lo ldap_conf.lo" + case "$SUDOERS_OBJS" in + *ldap_util.lo*) ;; + *) SUDOERS_OBJS="${SUDOERS_OBJS} ldap_util.lo";; + esac + LDAP="" + + _LIBS="$LIBS" + LDAP_LIBS="" + IBMLDAP_EXTRA="" + found=no + # On HP-UX, libibmldap has a hidden dependency on libCsup + case "$host_os" in + hpux*) AC_CHECK_LIB([Csup], [main], [IBMLDAP_EXTRA=" -lCsup"]);; + esac + AC_SEARCH_LIBS([ldap_init], ["ibmldap${IBMLDAP_EXTRA}" "ibmldap -lidsldif${IBMLDAP_EXTRA}" "ldap" "ldap -llber" "ldap -llber -lssl -lcrypto" "ibmldap${IBMLDAP_EXTRA}]", [ + test "${ac_cv_search_ldap_init}" != "none required" && LDAP_LIBS="${ac_cv_search_ldap_init}" + found=yes + ]) + # If nothing linked, try -lldap and hope for the best + if test "$found" = "no"; then + LDAP_LIBS="-lldap" + fi + LIBS="${_LIBS} ${LDAP_LIBS}" + + AC_CHECK_DECL([LBER_OPT_DEBUG_LEVEL], [ + case "$LDAP_LIBS" in + *-llber*) + # Already linking with -llber + ;; + *) # Link with -llber for ber_set_option() if it exists + AC_CHECK_LIB([lber], [ber_set_option], [found=yes], [found=no]) + if test X"$found" = X"yes"; then + LDAP_LIBS="$LDAP_LIBS -llber" + fi + ;; + esac + ], [], [AC_INCLUDES_DEFAULT +#include ]) + AC_CACHE_CHECK([whether lber.h is needed when including ldap.h], [sudo_cv_header_lber_h], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include +#include ]], [[(void)ldap_init(0, 0)]])], [ + # No need to explicitly include lber.h when including ldap.h. + sudo_cv_header_lber_h=no + ], [ + sudo_cv_header_lber_h=yes + ]) + ]) + if test X"$sudo_cv_header_lber_h" = X"yes"; then + AC_DEFINE(HAVE_LBER_H) + fi + + if test ${enable_sasl-'yes'} = "yes"; then + found_sasl_h=no + AC_CHECK_HEADERS([sasl/sasl.h] [sasl.h], [ + found_sasl_h=yes + AC_CHECK_FUNCS([ldap_sasl_interactive_bind_s]) + break + ]) + if test X${enable_sasl} = X"yes"; then + if test X"$found_sasl_h" != X"yes"; then + AC_MSG_ERROR([--enable-sasl specified but unable to locate SASL development headers.]) + fi + if test X"$ac_cv_func_ldap_sasl_interactive_bind_s" != X"yes"; then : + AC_MSG_ERROR([--enable-sasl specified but SASL support is missing in your LDAP library]) + fi + fi + fi + AC_CHECK_HEADERS([ldapssl.h] [ldap_ssl.h] [mps/ldap_ssl.h], [break], [], [#include ]) + AC_CHECK_FUNCS([ldap_initialize ldap_start_tls_s ldapssl_init ldapssl_set_strength ldap_unbind_ext_s ldap_str2dn ldap_create ldap_sasl_bind_s ldap_ssl_init ldap_ssl_client_init ldap_start_tls_s_np]) + AC_CHECK_FUNCS([ldap_search_ext_s ldap_search_st], [break]) + + if test X"$check_gss_krb5_ccache_name" = X"yes"; then + AC_CHECK_LIB([gssapi], [gss_krb5_ccache_name], [ + AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME) + LDAP_LIBS="${LDAP_LIBS} -lgssapi" + ], [ + AC_CHECK_LIB(gssapi_krb5, gss_krb5_ccache_name, [ + AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME) + LDAP_LIBS="${LDAP_LIBS} -lgssapi_krb5" + ]) + ]) + + # gssapi headers may be separate or part of Kerberos V + found=no + O_CPPFLAGS="$CPPFLAGS" + for dir in "" "kerberosV" "krb5" "kerberos5" "kerberosv5"; do + test X"$dir" != X"" && CPPFLAGS="$O_CPPFLAGS -I/usr/include/${dir}" + # Use AC_PREPROC_IFELSE to check existence to avoid caching + # since we test with multiple values of CPPFLAGS + AC_PREPROC_IFELSE([ + AC_LANG_PROGRAM([[#include ]]) + ], [ + AC_CHECK_HEADERS([gssapi/gssapi.h]) + break + ], [ + AC_PREPROC_IFELSE([ + AC_LANG_PROGRAM([[#include ]]) + ], [ + AC_CHECK_HEADERS([gssapi.h]) + break + ]) + ]) + done + if test X"$ac_cv_header_gssapi_gssapi_h" != X"no"; then + AC_CHECK_HEADERS([gssapi/gssapi_krb5.h]) + elif test X"$ac_cv_header_gssapi_h" = X"no"; then + CPPFLAGS="$O_CPPFLAGS" + AC_MSG_WARN([unable to locate gssapi.h, you will have to edit the Makefile and add -I/path/to/gssapi/includes to CPPFLAGS]) + fi + fi + + SUDOERS_LIBS="${SUDOERS_LIBS} ${LDAP_LIBS}" + LIBS="$_LIBS" + LDFLAGS="$O_LDFLAGS" + fi +]) diff --git a/m4/openssl.m4 b/m4/openssl.m4 new file mode 100644 index 0000000000..a2e4941ae8 --- /dev/null +++ b/m4/openssl.m4 @@ -0,0 +1,294 @@ +AC_DEFUN([SUDO_CHECK_OPENSSL], [ + openssl_missing=no + if test "${enable_openssl-no}" != no; then + # Use pkg-config to find the openssl cflags and libs if possible. + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + PKG_CONFIG_LIBDIR= + for d in ${enable_openssl}/*/pkgconfig; do + if test -d "$d"; then + PKG_CONFIG_LIBDIR="$PKG_CONFIG_LIBDIR:$d" + fi + done + if test -n "$PKG_CONFIG_LIBDIR"; then + PKG_CONFIG_LIBDIR=${PKG_CONFIG_LIBDIR#:} + export PKG_CONFIG_LIBDIR + fi + elif test "$cross_compiling" = "yes" -a -z "$PKG_CONFIG"; then + # Cannot use pkg-config when cross-compiling + PKG_CONFIG=false + fi + : ${PKG_CONFIG='pkg-config'} + pkg_openssl=`printf $enable_openssl_pkgconfig_template "openssl"` + pkg_libcrypto=lib`printf $enable_openssl_pkgconfig_template "crypto"` + if $PKG_CONFIG --exists "$pkg_openssl >= 1.0.1" >/dev/null 2>&1; then + AC_DEFINE(HAVE_OPENSSL) + if test "$enable_openssl" = "maybe"; then + enable_openssl=yes + fi + + # Check whether --static is needed (don't assume name of ssl lib) + # There may be dependent libraries or -pthread. + O_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs-only-L $pkg_openssl`" + libssl="`$PKG_CONFIG --libs-only-l $pkg_openssl | sed 's/^ *-l//'`" + libssl_extra="`echo $libssl | sed 's/^[[^ ]]* *//'`" + libssl="`echo $libssl | sed 's/ .*//'`" + AC_CHECK_LIB([$libssl], [SSL_new], [STATIC=""], [STATIC="--static"], [$libssl_extra]) + LDFLAGS="$O_LDFLAGS" + + # Use pkg-config to determine OpenSSL libs and cflags + for f in `$PKG_CONFIG $STATIC --libs $pkg_openssl`; do + case "$f" in + -L*) + f="${f#-L}" + SUDO_APPEND_LIBPATH([LIBTLS], [$f]) + ;; + *) + AX_APPEND_FLAG([$f], [LIBTLS]) + ;; + esac + done + if $PKG_CONFIG --exists $pkg_libcrypto >/dev/null 2>&1; then + # Use OpenSSL's sha2 functions if possible (don't assume name of crypto) + O_LDFLAGS="$LDFLAGS" + libcrypto= + libcrypto_extra= + for f in `$PKG_CONFIG $STATIC --libs $pkg_libcrypto`; do + case "$f" in + -l*) + if test -z "$libcrypto"; then + libcrypto="${f#-l}" + else + libcrypto_extra="$libcrypto_extra $f" + fi + ;; + *) + AX_APPEND_FLAG([$f], [LDFLAGS]) + ;; + esac + done + AC_CHECK_LIB([$libcrypto], [EVP_MD_CTX_new], [DIGEST=digest_openssl.lo], [], [$libcrypto_extra]) + LDFLAGS="$O_LDFLAGS" + + # Use pkg-config to determine libcrypto libs and cflags + for f in `$PKG_CONFIG $STATIC --libs $pkg_libcrypto`; do + case "$f" in + -L*) + f="${f#-L}" + SUDO_APPEND_LIBPATH([LIBCRYPTO], [$f]) + ;; + *) + AX_APPEND_FLAG([$f], [LIBCRYPTO]) + ;; + esac + done + else + # No separate pkg config for libcrypto + LIBCRYPTO="$LIBTLS" + LIBCRYPTO_R="$LIBTLS_R" + fi + for f in `$PKG_CONFIG --cflags-only-I $pkg_openssl`; do + AX_APPEND_FLAG([$f], [CPPFLAGS]) + done + else + # No pkg-config file present, try to do it manually + O_LDFLAGS="$LDFLAGS" + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + SUDO_APPEND_LIBPATH(LDFLAGS, [${enable_openssl}/lib]) + fi + AC_CHECK_LIB([ssl], [SSL_new], [ + # Check OPENSSL_VERSION_NUMBER in headers + O_CPPFLAGS="$CPPFLAGS" + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + # Note: we only reset CPPFLAGS on failure + AX_APPEND_FLAG([-I${enable_openssl}/include], [CPPFLAGS]) + fi + AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[#include +#if !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x1000100fL +#error "OpenSSL too old" +#endif + ]])], [ + # OpenSSL >= 1.0.1 detected, use it. + AC_DEFINE(HAVE_OPENSSL) + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + SUDO_APPEND_LIBPATH(LIBCRYPTO, [${enable_openssl}/lib]) + SUDO_APPEND_LIBPATH(LIBTLS, [${enable_openssl}/lib]) + else + enable_openssl=yes + fi + LIBCRYPTO="${LIBCRYPTO} -lcrypto" + LIBTLS="${LIBTLS} -lssl -lcrypto" + + # Use OpenSSL's sha2 functions if possible + AC_CHECK_LIB([crypto], [EVP_MD_CTX_new], [ + DIGEST=digest_openssl.lo + ]) + ], [ + # OpenSSL < 1.0.1 detected, ignore it. + if test "$enable_openssl" = "maybe"; then + AC_MSG_WARN([OpenSSL too old (1.0.1 or higher required), Sudo logsrv connections will not be encrypted.]) + openssl_missing=yes + enable_openssl=no + else + AC_MSG_ERROR([OpenSSL too old (1.0.1 or higher required).]) + fi + CPPFLAGS="$O_CPPFLAGS" + ]) + ], [ + if test "$enable_openssl" = "maybe"; then + openssl_missing=yes + enable_openssl=no + else + AC_MSG_ERROR([OpenSSL development libraries not found.]) + fi + ], [-lcrypto]) + LDFLAGS="$O_LDFLAGS" + fi + if test "$enable_openssl" != "yes" -a "$enable_openssl" != "maybe"; then + unset PKG_CONFIG_LIBDIR + fi + fi + # + # Note that enable_openssl may be reset above. + # + if test "${enable_openssl-no}" != no; then + OLIBS="$LIBS" + LIBS="$LIBS $LIBTLS" + AC_CHECK_FUNCS([X509_STORE_CTX_get0_cert ASN1_STRING_get0_data SSL_CTX_get0_certificate SSL_CTX_set0_tmp_dh_pkey TLS_method]) + # SSL_CTX_set_min_proto_version may be a macro + AC_CHECK_DECL([SSL_CTX_set_min_proto_version], [AC_DEFINE(HAVE_SSL_CTX_SET_MIN_PROTO_VERSION)], [], [ + AC_INCLUDES_DEFAULT + #include + ]) + # LibreSSL TLS 1.3 support may not be enabled, check for declaration too. + AC_CHECK_FUNC([SSL_CTX_set_ciphersuites], [ + AC_CHECK_DECL([SSL_CTX_set_ciphersuites], [AC_DEFINE(HAVE_SSL_CTX_SET_CIPHERSUITES)], [], [ + AC_INCLUDES_DEFAULT + #include + ]) + ]) + LIBS="$OLIBS" + elif test "${enable_wolfssl-no}" != no; then + # Check for OpenSSL compatibility functions in wolfSSL. + # Use pkg-config to find the wolfssl cflags and libs if possible. + if test "$enable_wolfssl" != "yes"; then + PKG_CONFIG_LIBDIR="${enable_wolfssl}/lib/pkgconfig:${enable_wolfssl}/lib64/pkgconfig:${enable_wolfssl}/share/pkgconfig" + export PKG_CONFIG_LIBDIR + elif test "$cross_compiling" = "yes" -a -z "$PKG_CONFIG"; then + # Cannot use pkg-config when cross-compiling + PKG_CONFIG=false + fi + : ${PKG_CONFIG='pkg-config'} + if $PKG_CONFIG --exists wolfssl >/dev/null 2>&1; then + AC_DEFINE(HAVE_OPENSSL) + AC_DEFINE(HAVE_WOLFSSL) + + O_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS `$PKG_CONFIG --cflags-only-I wolfssl`" + O_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS `$PKG_CONFIG --libs-only-L wolfssl`" + + # Check whether --static is needed + libssl="`$PKG_CONFIG --libs-only-l wolfssl | sed 's/^ *-l//'`" + libssl_extra=`echo $libssl | sed 's/^[[^ ]]* *//'` + libssl=`echo $libssl | sed 's/ .*//'` + AC_CHECK_LIB([$libssl], [wolfSSL_new], [STATIC=""], [STATIC="--static"], [$libssl_extra]) + + # Use wolfSSL's sha2 functions if possible + AC_CHECK_DECL([EVP_MD_CTX_new], [DIGEST=digest_openssl.lo], [], [ + AC_INCLUDES_DEFAULT + #include + #include + ]) + CPPFLAGS="$O_CPPFLAGS" + LDFLAGS="$O_LDFLAGS" + + # Use pkg-config to determine wolfSSL libs and cflags + for f in `$PKG_CONFIG $STATIC --libs wolfssl`; do + case "$f" in + -L*) + f="${f#-L}" + SUDO_APPEND_LIBPATH([LIBTLS], [$f]) + ;; + *) + AX_APPEND_FLAG([$f], [LIBTLS]) + ;; + esac + done + # No separate pkg config for libcrypto + LIBCRYPTO="$LIBTLS" + LIBCRYPTO_R="$LIBTLS_R" + for f in `$PKG_CONFIG --cflags-only-I wolfssl`; do + AX_APPEND_FLAG([$f], [CPPFLAGS]) + # So we find the openssl compat headers under wolfssl + AX_APPEND_FLAG([$f/wolfssl], [CPPFLAGS]) + done + if test "$CPPFLAGS" = "$O_CPPFLAGS"; then + # So we find the openssl compat headers under wolfssl (XXX) + AX_APPEND_FLAG([-I/usr/include/wolfssl], [CPPFLAGS]) + fi + else + AC_DEFINE(HAVE_OPENSSL) + AC_DEFINE(HAVE_WOLFSSL) + + # No pkg-config file present, try to do it manually + if test "$enable_wolfssl" != "yes"; then + SUDO_APPEND_LIBPATH(LIBCRYPTO, [${enable_wolfssl}/lib]) + SUDO_APPEND_LIBPATH(LIBTLS, [${enable_wolfssl}/lib]) + AX_APPEND_FLAG([-I${enable_wolfssl}/include], [CPPFLAGS]) + # So we find the openssl compat headers under wolfssl + AX_APPEND_FLAG([-I${enable_wolfssl}/include/wolfssl], [CPPFLAGS]) + else + # So we find the openssl compat headers under wolfssl (XXX) + AX_APPEND_FLAG([-I/usr/include/wolfssl], [CPPFLAGS]) + fi + LIBTLS="${LIBTLS} -lwolfssl" + LIBCRYPTO="${LIBCRYPTO} -lwolfssl" + + # Use wolfSSL's sha2 functions if possible + AC_CHECK_DECL([EVP_MD_CTX_new], [DIGEST=digest_openssl.lo], [], [ + AC_INCLUDES_DEFAULT + #include + #include + ]) + fi + dnl + dnl Check for specific OpenSSL API compatibility macros + dnl + AC_CHECK_DECL([X509_STORE_CTX_get0_cert], [AC_DEFINE(HAVE_X509_STORE_CTX_GET0_CERT)], [], [ + AC_INCLUDES_DEFAULT + #include + #include + ]) + AC_CHECK_DECL([ASN1_STRING_get0_data], [AC_DEFINE(HAVE_ASN1_STRING_GET0_DATA)], [], [ + AC_INCLUDES_DEFAULT + #include + #include + ]) + AC_CHECK_DECL([SSL_CTX_get0_certificate], [AC_DEFINE(HAVE_SSL_CTX_GET0_CERTIFICATE)], [], [ + AC_INCLUDES_DEFAULT + #include + #include + ]) + AC_CHECK_DECL([SSL_CTX_set0_tmp_dh_pkey], [AC_DEFINE(HAVE_SSL_CTX_SET0_TMP_DH_PKEY)], [], [ + AC_INCLUDES_DEFAULT + #include + #include + ]) + AC_CHECK_DECL([TLS_method], [AC_DEFINE(HAVE_TLS_METHOD)], [], [ + AC_INCLUDES_DEFAULT + #include + #include + ]) + AC_CHECK_DECL([SSL_CTX_set_min_proto_version], [AC_DEFINE(HAVE_SSL_CTX_SET_MIN_PROTO_VERSION)], [], [ + AC_INCLUDES_DEFAULT + #include + #include + ]) + AC_CHECK_DECL([SSL_CTX_set_ciphersuites], [AC_DEFINE(HAVE_SSL_CTX_SET_CIPHERSUITES)], [], [ + AC_INCLUDES_DEFAULT + #include + #include + ]) + fi +]) diff --git a/m4/pie.m4 b/m4/pie.m4 new file mode 100644 index 0000000000..f2eb470510 --- /dev/null +++ b/m4/pie.m4 @@ -0,0 +1,86 @@ +AC_DEFUN([SUDO_CHECK_PIE_SUPPORT], [ + dnl + dnl Check for PIE executable support if using gcc. + dnl This test relies on AC_LANG_WERROR + dnl + if test -n "$GCC"; then + if test X"$enable_pie" = X""; then + case "$host_os" in + linux*) + # Attempt to build with PIE support + enable_pie="maybe" + ;; + esac + fi + if test X"$enable_pie" != X""; then + if test "$enable_pie" = "no"; then + AX_CHECK_COMPILE_FLAG([-fno-pie], [ + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fno-pie" + AX_CHECK_LINK_FLAG([-nopie], [ + PIE_CFLAGS="-fno-pie" + PIE_LDFLAGS="-nopie" + ]) + CFLAGS="$_CFLAGS" + ]) + else + AX_CHECK_COMPILE_FLAG([-fPIE], [ + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fPIE" + _LDFLAGS="$LDFLAGS" + AX_CHECK_LINK_FLAG([-pie], [ + if test "$enable_pie" = "maybe"; then + LDFLAGS="$LDFLAGS -pie" + SUDO_WORKING_PIE([enable_pie=yes], []) + fi + if test "$enable_pie" = "yes"; then + PIE_CFLAGS="-fPIE" + PIE_LDFLAGS="-Wc,-fPIE -pie" + fi + ]) + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + ]) + fi + fi + fi + if test X"$enable_pie" != X"no" -a X"$with_gnu_ld" = X"no"; then + # Solaris 11.1 and higher ld supports PIE executables, ASLR, + # non-executable stack and non-executable heap. + case "$host_os" in + solaris2.1[[1-9]]|solaris2.[[2-9]][[0-9]]) + # This assumes lt_prog_compiler_pic is a single flag, + # which is the case on Solaris. + if test -n "$lt_prog_compiler_pic"; then + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + AX_CHECK_LINK_FLAG([-Wl,-ztype=pie], [ + # Try building PIE if not disabled. + if test X"$enable_pie" = X""; then + LDFLAGS="$LDFLAGS -Wl,-ztype=pie" + SUDO_WORKING_PIE([enable_pie=yes], []) + fi + if test "$enable_pie" = "yes"; then + PIE_CFLAGS="$lt_prog_compiler_pic" + PIE_LDFLAGS="-Wc,$lt_prog_compiler_pic -Wl,-ztype=pie" + fi + ]) + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + fi + # These flags are only valid when linking an executable + # so we cannot add them to HARDENING_LDFLAGS. + AX_CHECK_LINK_FLAG([-Wl,-zaslr], [ + AX_APPEND_FLAG([-Wl,-zaslr], [PIE_LDFLAGS]) + ]) + AX_CHECK_LINK_FLAG([-Wl,-znxheap], [ + AX_APPEND_FLAG([-Wl,-znxheap], [PIE_LDFLAGS]) + ]) + AX_CHECK_LINK_FLAG([-Wl,-znxstack], [ + AX_APPEND_FLAG([-Wl,-znxstack], [PIE_LDFLAGS]) + ]) + ;; + esac + fi +]) diff --git a/m4/sanitizer.m4 b/m4/sanitizer.m4 new file mode 100644 index 0000000000..57917a764c --- /dev/null +++ b/m4/sanitizer.m4 @@ -0,0 +1,63 @@ +AC_DEFUN([SUDO_CHECK_SANITIZER], [ + if test X"${enable_sanitizer}{enable_fuzzer}" != X"nono"; then + dnl + dnl For fuzz_policy we redefine getaddrinfo() and freeaddrinfo(), but + dnl this can cause problems with ld.lld when sanitizers are enabled. + dnl + AX_CHECK_LINK_FLAG([-Wl,--allow-multiple-definition], [AX_APPEND_FLAG([-Wl,--allow-multiple-definition], [ASAN_LDFLAGS])]) + fi + + dnl + dnl Check for -fsanitize support + dnl This test relies on AC_LANG_WERROR + dnl + if test X"$enable_sanitizer" != X"no"; then + AX_CHECK_COMPILE_FLAG([$enable_sanitizer], [ + AX_APPEND_FLAG([$enable_sanitizer], [ASAN_CFLAGS]) + AX_APPEND_FLAG([-XCClinker], [ASAN_LDFLAGS]) + AX_APPEND_FLAG([$enable_sanitizer], [ASAN_LDFLAGS]) + AX_CHECK_COMPILE_FLAG([-fno-omit-frame-pointer], [ + AX_APPEND_FLAG([-fno-omit-frame-pointer], [CFLAGS]) + ]) + AC_DEFINE(NO_LEAKS) + dnl + dnl Check for libasan.so to preload it before sudo_intercept.so. + dnl gcc links asan dynamically, clang links it statically. + dnl + case `$CC --version 2>&1` in + *gcc*) + libasan=`$CC -print-file-name=libasan.so 2>/dev/null` + if test -n "$libasan" -a X"$libasan" != X"libasan.so"; then + # libasan.so may be a linker script + libasan="`awk 'BEGIN {lib=ARGV[[1]]} /^INPUT/ {lib=$[3]} END {print lib}' \"$libasan\"`" + SUDO_DEFINE_UNQUOTED(_PATH_ASAN_LIB, "$libasan", [Path to the libasan.so shared library]) + fi + ;; + esac + ], [ + AC_MSG_ERROR([$CC does not support the $enable_sanitizer flag]) + ]) + fi + + if test X"$enable_fuzzer" = X"yes"; then + AX_CHECK_COMPILE_FLAG([-fsanitize=fuzzer-no-link], [ + AX_APPEND_FLAG([-fsanitize=fuzzer-no-link], [ASAN_CFLAGS]) + AX_APPEND_FLAG([-XCClinker], [ASAN_LDFLAGS]) + AX_APPEND_FLAG([-fsanitize=fuzzer-no-link], [ASAN_LDFLAGS]) + if test -z "$FUZZ_ENGINE"; then + FUZZ_ENGINE="-fsanitize=fuzzer" + fi + AX_CHECK_COMPILE_FLAG([-fno-omit-frame-pointer], [ + AX_APPEND_FLAG([-fno-omit-frame-pointer], [CFLAGS]) + ]) + # Use CFLAGS, not CPPFLAGS to match oss-fuzz behavior + AX_APPEND_FLAG([-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION], [CFLAGS]) + AC_DEFINE(NO_LEAKS) + ], [ + AC_MSG_ERROR([$CC does not support the -fsanitize=fuzzer-no-link flag]) + ]) + else + # Not using compiler fuzzing support, link with stub library. + FUZZ_ENGINE='$(top_builddir)/lib/fuzzstub/libsudo_fuzzstub.la' + fi +]) diff --git a/m4/sudo.m4 b/m4/sudo.m4 index 7023ac4935..21a43a07d0 100644 --- a/m4/sudo.m4 +++ b/m4/sudo.m4 @@ -2,7 +2,7 @@ dnl Local m4 macros for autoconf (used by sudo) dnl dnl SPDX-License-Identifier: ISC dnl -dnl Copyright (c) 1994-1996, 1998-2005, 2007-2015 +dnl Copyright (c) 1994-1996, 1998-2005, 2007-2022 dnl Todd C. Miller dnl dnl Permission to use, copy, modify, and distribute this software for any @@ -17,9 +17,6 @@ dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. dnl -dnl XXX - should cache values in all cases!!! -dnl -dnl checks for programs dnl dnl check for sendmail in well-known locations @@ -58,100 +55,117 @@ AC_DEFUN([SUDO_PROG_BSHELL], [ ])dnl dnl -dnl check for utmp file +dnl Check for path to utmp file if not using getutid(), etc. dnl -AC_DEFUN([SUDO_PATH_UTMP], [AC_MSG_CHECKING([for utmp file path]) -found=no -for p in "/var/run/utmp" "/var/adm/utmp" "/etc/utmp"; do - if test -r "$p"; then - found=yes - AC_MSG_RESULT([$p]) - SUDO_DEFINE_UNQUOTED(_PATH_UTMP, "$p") - break +AC_DEFUN([SUDO_PATH_UTMP], [ + AC_CACHE_CHECK([for utmp file path], [sudo_cv_path_UTMP], [ + sudo_cv_path_UTMP=no + for p in "/var/run/utmp" "/var/adm/utmp" "/etc/utmp"; do + if test -r "$p"; then + sudo_cv_path_UTMP="$p" + break + fi + done + ]) + if test X"$sudo_cv_path_UTMP" != X"no"; then + SUDO_DEFINE_UNQUOTED(_PATH_UTMP, "$sudo_cv_path_UTMP") fi -done -if test X"$found" != X"yes"; then - AC_MSG_RESULT([not found]) -fi -])dnl +]) dnl dnl Where the log file goes, use /var/log if it exists, else /{var,usr}/adm dnl -AC_DEFUN([SUDO_LOGFILE], [AC_MSG_CHECKING(for log file location) - if test "${with_logpath-yes}" != "yes"; then +AC_DEFUN([SUDO_LOGFILE], [ + if test -n "$with_logpath"; then logpath="$with_logpath" else - # Default value of logpath set in configure.ac - for d in /var/log /var/adm /usr/adm; do - if test -d "$d"; then - logpath="$d/sudo.log" - break - fi - done + AC_CACHE_CHECK([for log file location], [sudo_cv_log_path], [ + # Default value of logpath set in configure.ac + sudo_cv_log_path="$logpath" + for d in /var/log /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_log_path="$d/sudo.log" + break + fi + done + ]) + logpath="$sudo_cv_log_path" fi - AC_MSG_RESULT($logpath) SUDO_DEFINE_UNQUOTED(_PATH_SUDO_LOGFILE, "$logpath") -])dnl +]) dnl dnl Detect time zone file directory, if any. dnl -AC_DEFUN([SUDO_TZDIR], [AC_MSG_CHECKING(time zone data directory) -tzdir="$with_tzdir" -if test -z "$tzdir"; then - tzdir=no - for d in /usr/share /usr/share/lib /usr/lib /etc; do - if test -d "$d/zoneinfo"; then - tzdir="$d/zoneinfo" - break - fi - done -fi -AC_MSG_RESULT([$tzdir]) -if test "${tzdir}" != "no"; then - SUDO_DEFINE_UNQUOTED(_PATH_ZONEINFO, "$tzdir") -fi -])dnl +AC_DEFUN([SUDO_TZDIR], [ + if test -n "$with_tzdir"; then + tzdir="$with_tzdir" + else + AC_CACHE_CHECK([time zone data directory], [sudo_cv_tz_dir], [ + sudo_cv_tz_dir=no + for d in /usr/share /usr/share/lib /usr/lib /etc; do + if test -d "$d/zoneinfo"; then + sudo_cv_tz_dir="$d/zoneinfo" + break + fi + done + ]) + tzdir="$sudo_cv_tz_dir" + fi + if test X"$tzdir" != X"no"; then + SUDO_DEFINE_UNQUOTED(_PATH_ZONEINFO, "$tzdir") + fi +]) dnl dnl Parent directory for time stamp dir. dnl -AC_DEFUN([SUDO_RUNDIR], [AC_MSG_CHECKING(for sudo run dir location) -if test -n "$with_rundir"; then - rundir="$with_rundir" -elif test -n "$runstatedir" && test "$runstatedir" != '${localstatedir}/run'; then - rundir="$runstatedir/sudo" -else - # No --with-rundir or --runstatedir specified - for d in /run /var/run /var/db /var/lib /var/adm /usr/adm; do - if test -d "$d"; then - rundir="$d/sudo" - break - fi - done -fi -AC_MSG_RESULT([$rundir]) -SUDO_DEFINE_UNQUOTED(_PATH_SUDO_TIMEDIR, "$rundir/ts") -SUDO_DEFINE_UNQUOTED(_PATH_SUDO_LOGSRVD_PID, "$rundir/sudo_logsrvd.pid") -])dnl +AC_DEFUN([SUDO_RUNDIR], [ + if test -n "$with_rundir"; then + rundir="$with_rundir" + elif test -n "$runstatedir" && test "$runstatedir" != '${localstatedir}/run'; then + rundir="$runstatedir/sudo" + else + # No --with-rundir or --runstatedir specified + AC_CACHE_CHECK([for sudo run dir location], [sudo_cv_run_dir], [ + sudo_cv_run_dir=no + for d in /run /var/run /var/db /var/lib /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_run_dir="$d/sudo" + break + fi + done + ]) + rundir="$sudo_cv_run_dir" + fi + if test X"$rundir" != X"no"; then + SUDO_DEFINE_UNQUOTED(_PATH_SUDO_TIMEDIR, "$rundir/ts") + SUDO_DEFINE_UNQUOTED(_PATH_SUDO_LOGSRVD_PID, "$rundir/sudo_logsrvd.pid") + fi +]) dnl dnl Parent directory for the lecture status dir. dnl -AC_DEFUN([SUDO_VARDIR], [AC_MSG_CHECKING(for sudo var dir location) -vardir="$with_vardir" -if test -z "$vardir"; then - for d in /var/db /var/lib /var/adm /usr/adm; do - if test -d "$d"; then - vardir="$d/sudo" - break - fi - done -fi -AC_MSG_RESULT([$vardir]) -SUDO_DEFINE_UNQUOTED(_PATH_SUDO_LECTURE_DIR, "$vardir/lectured") -])dnl +AC_DEFUN([SUDO_VARDIR], [ + if test -n "$with_vardir"; then + vardir="$with_vardir" + else + AC_CACHE_CHECK([for sudo var dir location], [sudo_cv_var_dir], [ + sudo_cv_var_dir=no + for d in /var/db /var/lib /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_var_dir="$d/sudo" + break + fi + done + ]) + vardir="$sudo_cv_var_dir" + fi + if test X"$vardir" != X"no"; then + SUDO_DEFINE_UNQUOTED(_PATH_SUDO_LECTURE_DIR, "$vardir/lectured") + fi +]) dnl dnl Where the sudo_logsrvd relay temporary log files go, use @@ -159,68 +173,68 @@ dnl /var/log/sudo_logsrvd if /var/log exists, else dnl /{var,usr}/adm/sudo_logsrvd dnl AC_DEFUN([SUDO_RELAY_DIR], [ - AC_MSG_CHECKING(for sudo_logsrvd relay dir location) if test "${with_relaydir-yes}" != "yes"; then relay_dir="$with_relaydir" else - # Default value of relay_dir set in configure.ac - for d in /var/log /var/adm /usr/adm; do - if test -d "$d"; then - relay_dir="$d/sudo_logsrvd" - break - fi - done - fi - if test "${with_relaydir}" != "no"; then - SUDO_DEFINE_UNQUOTED(_PATH_SUDO_RELAY_DIR, "$relay_dir") + AC_CACHE_CHECK([for sudo_logsrvd relay dir location], [sudo_cv_relay_dir], [ + # Default value of relay_dir set in configure.ac + sudo_cv_relay_dir="$relay_dir" + for d in /var/log /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_relay_dir="$d/sudo_logsrvd" + break + fi + done + ]) + relay_dir="$sudo_cv_relay_dir" fi - AC_MSG_RESULT($relay_dir) -])dnl + SUDO_DEFINE_UNQUOTED(_PATH_SUDO_RELAY_DIR, "$relay_dir") +]) dnl dnl Where the I/O log files go, use /var/log/sudo-io if dnl /var/log exists, else /{var,usr}/adm/sudo-io dnl AC_DEFUN([SUDO_IO_LOGDIR], [ - AC_MSG_CHECKING(for I/O log dir location) if test "${with_iologdir-yes}" != "yes"; then iolog_dir="$with_iologdir" else - # Default value of iolog_dir set in configure.ac - for d in /var/log /var/adm /usr/adm; do - if test -d "$d"; then - iolog_dir="$d/sudo-io" - break - fi - done - fi - if test "${with_iologdir}" != "no"; then - SUDO_DEFINE_UNQUOTED(_PATH_SUDO_IO_LOGDIR, "$iolog_dir") + AC_CACHE_CHECK([for I/O log dir location], [sudo_cv_iolog_dir], [ + # Default value of iolog_dir set in configure.ac + sudo_cv_iolog_dir="$iolog_dir" + for d in /var/log /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_iolog_dir="$d/sudo-io" + break + fi + done + ]) + iolog_dir="$sudo_cv_iolog_dir" fi - AC_MSG_RESULT($iolog_dir) -])dnl + SUDO_DEFINE_UNQUOTED(_PATH_SUDO_IO_LOGDIR, "$iolog_dir") +]) dnl dnl Where the log files go, use /var/log if it exists, else /{var,usr}/adm dnl AC_DEFUN([SUDO_LOGDIR], [ - AC_MSG_CHECKING(for log dir location) if test "${with_logdir-yes}" != "yes"; then log_dir="$with_logdir" else - # Default value of log_dir set in configure.ac - for d in /var/log /var/adm /usr/adm; do - if test -d "$d"; then - log_dir="$d" - break - fi - done - fi - if test "${with_logdir}" != "no"; then - SUDO_DEFINE_UNQUOTED(_PATH_SUDO_LOGDIR, "$log_dir") + AC_CACHE_CHECK([for log dir location], [sudo_cv_log_dir], [ + # Default value of log_dir set in configure.ac + sudo_cv_log_dir="$log_dir" + for d in /var/log /var/adm /usr/adm; do + if test -d "$d"; then + sudo_cv_log_dir="$d" + break + fi + done + ]) + log_dir="$sudo_cv_log_dir" fi - AC_MSG_RESULT($log_dir) -])dnl + SUDO_DEFINE_UNQUOTED(_PATH_SUDO_LOGDIR, "$log_dir") +]) dnl dnl check for working fnmatch(3) @@ -286,6 +300,43 @@ AC_DEFUN([SUDO_CHECK_LIB], [ fi ]) +AC_DEFUN([SUDO_CHECK_NET_FUNC], [ + _LIBS="$LIBS" + LIBS="${LIBS} ${NET_LIBS}" + found=true + AC_CHECK_FUNC([$1], [$2], [ + # Look for $1 in network libraries appending to NET_LIBS as needed. + # May need to link with -lnsl and -lsocket due to unresolved symbols + found=false + for libs in "-lsocket" "-linet" "-lsocket -lnsl" "-lresolv"; do + _libs= + for lib in $libs; do + case "$NET_LIBS" in + *"$lib"*) ;; + *) _libs="$_libs $lib";; + esac + done + libs="${_libs# }" + test -z "$libs" && continue + lib="`echo \"$libs\"|sed -e 's/^-l//' -e 's/ .*$//'`" + extralibs="`echo \"$libs\"|sed 's/^-l[[^ ]]*//'`" + SUDO_CHECK_LIB($lib, $1, [ + found=true + NET_LIBS="${NET_LIBS}${NET_LIBS+ }$libs" + INET_PTON_LIBS="$libs" + case "$libs" in + *-lresolv*) + AC_DEFINE(NEED_RESOLV_H) + ;; + esac + break + ], [], [$extralibs]) + done + ]) + LIBS="$_LIBS" + AS_IF([test $found = true], [$2], [$3]) +]) + dnl dnl check unsetenv() return value dnl @@ -303,7 +354,7 @@ AC_DEFUN([SUDO_FUNC_UNSETENV_VOID], [sudo_cv_func_unsetenv_void=no])]) if test $sudo_cv_func_unsetenv_void = yes; then AC_DEFINE(UNSETENV_VOID, 1, - [Define to 1 if the `unsetenv' function returns void instead of `int'.]) + [Define to 1 if the 'unsetenv' function returns void instead of 'int'.]) fi ]) @@ -319,7 +370,7 @@ int putenv(const char *string) {return 0;}], [])], [sudo_cv_func_putenv_const=no]) ]) if test $sudo_cv_func_putenv_const = yes; then - AC_DEFINE(PUTENV_CONST, const, [Define to const if the `putenv' takes a const argument.]) + AC_DEFINE(PUTENV_CONST, const, [Define to const if the 'putenv' takes a const argument.]) else AC_DEFINE(PUTENV_CONST, []) fi @@ -341,7 +392,7 @@ int au_close(int d, int keep, au_event_t event, au_emod_t emod) {return 0;}], [] [sudo_cv_func_au_close_solaris11=no]) ]) if test $sudo_cv_func_au_close_solaris11 = yes; then - AC_DEFINE(HAVE_AU_CLOSE_SOLARIS11, 1, [Define to 1 if the `au_close' functions takes 4 arguments like Solaris 11.]) + AC_DEFINE(HAVE_AU_CLOSE_SOLARIS11, 1, [Define to 1 if the 'au_close' functions takes 4 arguments like Solaris 11.]) fi ]) @@ -359,7 +410,7 @@ void SHA224Update(SHA2_CTX *context, const void *data, size_t len) {return;}], [ ]) if test $sudo_cv_func_sha2_void_ptr = yes; then AC_DEFINE(SHA2_VOID_PTR, 1, - [Define to 1 if the sha2 functions use `const void *' instead of `const unsigned char'.]) + [Define to 1 if the sha2 functions use 'const void *' instead of 'const unsigned char'.]) fi ]) @@ -429,25 +480,25 @@ AC_DEFUN([SUDO_CHECK_UTMP_MEMBERS], [ dnl Check for utmp/utmpx/utmps struct members. dnl AC_CHECK_MEMBER([struct $1.ut_id], [ - AC_DEFINE(HAVE_STRUCT_UTMP_UT_ID, 1, [Define to 1 if `ut_id' is a member of `struct utmp'.]) + AC_DEFINE(HAVE_STRUCT_UTMP_UT_ID, 1, [Define to 1 if 'ut_id' is a member of 'struct utmp'.]) ], [], [ # include # include <$1.h> ]) AC_CHECK_MEMBER([struct $1.ut_pid], [ - AC_DEFINE(HAVE_STRUCT_UTMP_UT_PID, 1, [Define to 1 if `ut_pid' is a member of `struct utmp'.]) + AC_DEFINE(HAVE_STRUCT_UTMP_UT_PID, 1, [Define to 1 if 'ut_pid' is a member of 'struct utmp'.]) ], [], [ # include # include <$1.h> ]) AC_CHECK_MEMBER([struct $1.ut_tv], [ - AC_DEFINE(HAVE_STRUCT_UTMP_UT_TV, 1, [Define to 1 if `ut_tv' is a member of `struct utmp'.]) + AC_DEFINE(HAVE_STRUCT_UTMP_UT_TV, 1, [Define to 1 if 'ut_tv' is a member of 'struct utmp'.]) ], [], [ # include # include <$1.h> ]) AC_CHECK_MEMBER([struct $1.ut_type], [ - AC_DEFINE(HAVE_STRUCT_UTMP_UT_TYPE, 1, [Define to 1 if `ut_type' is a member of `struct utmp'.]) + AC_DEFINE(HAVE_STRUCT_UTMP_UT_TYPE, 1, [Define to 1 if 'ut_type' is a member of 'struct utmp'.]) ], [], [ # include # include <$1.h> @@ -467,12 +518,12 @@ AC_DEFUN([SUDO_CHECK_UTMP_MEMBERS], [ dnl __e_termination visible when _GNU_SOURCE is *not* defined. dnl AC_CHECK_MEMBER([struct $1.ut_exit.__e_termination], [ - AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT, 1, [Define to 1 if `ut_exit' is a member of `struct utmp'.]) - AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT___E_TERMINATION, 1, [Define to 1 if `ut_exit.__e_termination' is a member of `struct utmp'.]) + AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT, 1, [Define to 1 if 'ut_exit' is a member of 'struct utmp'.]) + AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT___E_TERMINATION, 1, [Define to 1 if 'ut_exit.__e_termination' is a member of 'struct utmp'.]) ], [ AC_CHECK_MEMBER([struct $1.ut_exit.e_termination], [ - AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT, 1, [Define to 1 if `ut_exit' is a member of `struct utmp'.]) - AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT_E_TERMINATION, 1, [Define to 1 if `ut_exit.e_termination' is a member of `struct utmp'.]) + AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT, 1, [Define to 1 if 'ut_exit' is a member of 'struct utmp'.]) + AC_DEFINE(HAVE_STRUCT_UTMP_UT_EXIT_E_TERMINATION, 1, [Define to 1 if 'ut_exit.e_termination' is a member of 'struct utmp'.]) ], [], [ # include # include <$1.h> @@ -520,32 +571,97 @@ dnl Determine the mail spool location dnl NOTE: must be run *after* check for paths.h dnl AC_DEFUN([SUDO_MAILDIR], [ -maildir=no -if test X"$ac_cv_header_paths_h" = X"yes"; then -AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT + AC_CACHE_CHECK([for the user mail spool directory], [sudo_cv_mail_dir], [ + sudo_cv_mail_dir=no + if test X"$ac_cv_header_paths_h" = X"yes"; then + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT #include ], -[char *p = _PATH_MAILDIR;])], [maildir=yes], []) -fi -if test $maildir = no; then - # Solaris has maillock.h which defines MAILDIR - AC_CHECK_HEADERS(maillock.h, [ - SUDO_DEFINE(_PATH_MAILDIR, MAILDIR) - maildir=yes - ]) - if test $maildir = no; then - for d in /var/mail /var/spool/mail /usr/spool/mail; do - if test -d "$d"; then - maildir=yes - SUDO_DEFINE_UNQUOTED(_PATH_MAILDIR, "$d") - break - fi - done - if test $maildir = no; then - # unable to find mail dir, hope for the best - SUDO_DEFINE_UNQUOTED(_PATH_MAILDIR, "/var/mail") + [char *p = _PATH_MAILDIR;])], [sudo_cv_mail_dir="paths.h"], []) fi + if test $sudo_cv_mail_dir = no; then + # Solaris has maillock.h which defines MAILDIR + AC_CHECK_HEADERS(maillock.h, [ + sudo_cv_mail_dir=maillock.h + ], [ + sudo_cv_mail_dir=/var/mail + for d in /var/mail /var/spool/mail /usr/spool/mail; do + if test -d "$d"; then + sudo_cv_mail_dir="$d" + break + fi + done + ]) + fi + ]) + case "$sudo_cv_mail_dir" in + paths.h) + # _PATH_MAILDIR already present in paths.h. + ;; + maillock.h) + # Use MAILDIR from maillock.h + SUDO_DEFINE(_PATH_MAILDIR, MAILDIR) + AC_DEFINE(HAVE_MAILLOCK_H) + ;; + *) + SUDO_DEFINE_UNQUOTED(_PATH_MAILDIR, "$sudo_cv_mail_dir") + ;; + esac +]) + +dnl +dnl Create PVS-Studio.cfg for supported platforms or throw an error. +dnl +AC_DEFUN([SUDO_PVS_STUDIO_CFG], [ + if test X"$enable_pvs_studio" = X"yes"; then + # Determine preprocessor type + case "$CC" in + *clang*) preprocessor=clang;; + *gcc*) preprocessor=gcc;; + *) case `$CC --version 2>&1` in + *clang*) preprocessor=clang;; + *gcc*) preprocessor=gcc;; + *) AC_MSG_ERROR([Compiler must be gcc or clang for PVS-Studio.]);; + esac + ;; + esac + + # Determine platform (currently linux or macos) + case "$host" in + x86_64-*-linux*) pvs_platform=linux64;; + *86-*-linux*) pvs_platform=linux32;; + *-*-darwin*) pvs_platform=macos;; + *) AC_MSG_ERROR([PVS-Studio does not support $host.]);; + esac + + # Create a basic PVS-Studio.cfg file + cat > PVS-Studio.cfg <<-EOF + preprocessor = $preprocessor + platform = $pvs_platform + analysis-mode = 4 + language = C + EOF fi -fi +]) + +AC_DEFUN([SUDO_CPP_VARIADIC_MACROS], +[AC_CACHE_CHECK([for variadic macro support in cpp], +[sudo_cv_cpp_variadic_macros], [ + sudo_cv_cpp_variadic_macros=yes + if test X"$ac_cv_prog_cc_c99" = X"no"; then + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT +#if defined(__GNUC__) && __GNUC__ == 2 +# define sudo_fprintf(fp, fmt...) fprintf((fp), (fmt)) +#else +# define sudo_fprintf(fp, ...) fprintf((fp), __VA_ARGS__) +#endif], [sudo_fprintf(stderr, "a %s", "test"); + ])], [], [sudo_cv_cpp_variadic_macros=no]) + fi + ]) + if test X"$sudo_cv_cpp_variadic_macros" = X"no"; then + AC_DEFINE([NO_VARIADIC_MACROS], [1], [Define if your C preprocessor does not support variadic macros.]) + AC_MSG_WARN([your C preprocessor doesn't support variadic macros, debugging support will be limited]) + SUDO_APPEND_COMPAT_EXP(sudo_debug_printf_nvm_v1) + fi ]) dnl diff --git a/m4/visibility.m4 b/m4/visibility.m4 new file mode 100644 index 0000000000..48188cdcc5 --- /dev/null +++ b/m4/visibility.m4 @@ -0,0 +1,140 @@ +AC_DEFUN([SUDO_SYMBOL_VISIBILITY], [ + dnl + dnl Check for symbol visibility support. + dnl This test relies on AC_LANG_WERROR + dnl + if test -n "$GCC"; then + AX_CHECK_COMPILE_FLAG([-fvisibility=hidden], [ + AC_DEFINE(HAVE_DSO_VISIBILITY) + AX_APPEND_FLAG([-fvisibility=hidden], [CFLAGS]) + LT_LDEXPORTS= + LT_LDDEP= + ]) + else + case "$host_os" in + hpux*) + AX_CHECK_COMPILE_FLAG([-Bhidden_def], [ + # HP-UX cc may not allow __declspec(dllexport) to be + # used in conjunction with #pragma HP_DEFINED_EXTERNAL + # when redefining standard libc functions. + AC_CACHE_CHECK([whether __declspec(dllexport) can be used when overriding libc functions], + [sudo_cv_var_hpux_declspec_libc_function], + [ + _CFLAGS="$CFLAGS" + CFLAGS="${CFLAGS} -Bhidden_def" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include + __declspec(dllexport) char * getenv(const char *n) { return NULL; }]])], [ + sudo_cv_var_hpux_declspec_libc_function=yes + ], [ + sudo_cv_var_hpux_declspec_libc_function=no + ]) + CFLAGS="$_CFLAGS" + ] + ) + if test "$sudo_cv_var_hpux_declspec_libc_function" = "yes"; then + AC_DEFINE(HAVE_DSO_VISIBILITY) + AX_APPEND_FLAG([-Bhidden_def], [CFLAGS]) + LT_LDEXPORTS= + LT_LDDEP= + fi + ]) + ;; + solaris2*) + AX_CHECK_COMPILE_FLAG([-xldscope=hidden], [ + AC_DEFINE(HAVE_DSO_VISIBILITY) + AX_APPEND_FLAG([-xldscope=hidden], [CFLAGS]) + LT_LDEXPORTS= + LT_LDDEP= + ]) + ;; + esac + fi + + dnl + dnl Check whether ld supports version scripts (most ELF linkers). + dnl If possible, we use this even if the compiler has symbol visibility + dnl support so we will notice mismatches between the exports file and + dnl sudo_dso_public annotations in the source code. + dnl This test relies on AC_LANG_WERROR + dnl + if test "$lt_cv_prog_gnu_ld" = "yes"; then + AC_CACHE_CHECK([whether ld supports anonymous map files], + [sudo_cv_var_gnu_ld_anon_map], + [ + sudo_cv_var_gnu_ld_anon_map=no + cat > conftest.map <<-EOF + { + global: foo; + local: *; + }; + EOF + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_prog_compiler_pic -shared -Wl,--version-script,./conftest.map" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo;]], [[]])], + [sudo_cv_var_gnu_ld_anon_map=yes]) + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + rm -f conftest.map + ] + ) + if test "$sudo_cv_var_gnu_ld_anon_map" = "yes"; then + LT_LDDEP="\$(shlib_map)"; LT_LDEXPORTS="-Wl,--version-script,\$(shlib_map)" + fi + else + case "$host_os" in + solaris2*) + AC_CACHE_CHECK([whether ld supports anonymous map files], + [sudo_cv_var_solaris_ld_anon_map], + [ + sudo_cv_var_solaris_ld_anon_map=no + cat > conftest.map <<-EOF + { + global: foo; + local: *; + }; + EOF + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared -Wl,-M,./conftest.map" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo;]], [[]])], + [sudo_cv_var_solaris_ld_anon_map=yes]) + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + rm -f conftest.map + ] + ) + if test "$sudo_cv_var_solaris_ld_anon_map" = "yes"; then + LT_LDDEP="\$(shlib_map)"; LT_LDEXPORTS="-Wl,-M,\$(shlib_map)" + fi + ;; + hpux*) + AC_CACHE_CHECK([whether ld supports controlling exported symbols], + [sudo_cv_var_hpux_ld_symbol_export], + [ + sudo_cv_var_hpux_ld_symbol_export=no + echo "+e foo" > conftest.opt + _CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $lt_prog_compiler_pic" + _LDFLAGS="$LDFLAGS" + if test -n "$GCC"; then + LDFLAGS="$LDFLAGS -shared -Wl,-c,./conftest.opt" + else + LDFLAGS="$LDFLAGS -b -Wl,-c,./conftest.opt" + fi + AC_LINK_IFELSE([AC_LANG_PROGRAM([[int foo;]], [[]])], + [sudo_cv_var_hpux_ld_symbol_export=yes]) + CFLAGS="$_CFLAGS" + LDFLAGS="$_LDFLAGS" + rm -f conftest.opt + ] + ) + if test "$sudo_cv_var_hpux_ld_symbol_export" = "yes"; then + LT_LDDEP="\$(shlib_opt)"; LT_LDEXPORTS="-Wl,-c,\$(shlib_opt)" + fi + ;; + esac + fi +]) diff --git a/pathnames.h.in b/pathnames.h.in index 76d7bb2319..366830a39d 100644 --- a/pathnames.h.in +++ b/pathnames.h.in @@ -182,6 +182,10 @@ # undef _PATH_SUDO_DEVSEARCH #endif /* _PATH_SUDO_DEVSEARCH */ +#ifndef _PATH_SUDOERS_PLUGIN +# undef _PATH_SUDOERS_PLUGIN +#endif /* _PATH_SUDOERS_PLUGIN */ + #ifndef _PATH_ASAN_LIB # undef _PATH_ASAN_LIB #endif /* _PATH_ASAN_LIB */ diff --git a/plugins/audit_json/audit_json.c b/plugins/audit_json/audit_json.c index b419ca3869..3b7d325e97 100644 --- a/plugins/audit_json/audit_json.c +++ b/plugins/audit_json/audit_json.c @@ -437,7 +437,7 @@ audit_write_exit_record(int exit_status, int error) goto done; } - if (!sudo_json_init(&jsonc, 4, false, false)) + if (!sudo_json_init(&jsonc, 4, false, false, false)) goto oom; if (!sudo_json_open_object(&jsonc, "exit")) goto oom; @@ -522,7 +522,7 @@ audit_write_record(const char *audit_str, const char *plugin_name, goto done; } - if (!sudo_json_init(&jsonc, 4, false, false)) + if (!sudo_json_init(&jsonc, 4, false, false, false)) goto oom; if (!sudo_json_open_object(&jsonc, audit_str)) goto oom; diff --git a/plugins/group_file/getgrent.c b/plugins/group_file/getgrent.c index efb74b25bf..f37fb0ec23 100644 --- a/plugins/group_file/getgrent.c +++ b/plugins/group_file/getgrent.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2005,2008,2010-2015 Todd C. Miller + * Copyright (c) 2005,2008,2010-2015,2022 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -47,6 +47,7 @@ static int gr_stayopen; void mysetgrfile(const char *); void mysetgrent(void); void myendgrent(void); +int mysetgroupent(int); struct group *mygetgrent(void); struct group *mygetgrnam(const char *); struct group *mygetgrgid(gid_t); @@ -59,8 +60,8 @@ mysetgrfile(const char *file) myendgrent(); } -void -mysetgrent(void) +static int +open_group(int reset) { if (grf == NULL) { grf = fopen(grfile, "r"); @@ -70,10 +71,27 @@ mysetgrent(void) grf = NULL; } } - } else { + if (grf == NULL) + return 0; + } else if (reset) { rewind(grf); } - gr_stayopen = 1; + return 1; +} + +int +mysetgroupent(int stayopen) +{ + if (!open_group(1)) + return 0; + gr_stayopen = stayopen; + return 1; +} + +void +mysetgrent(void) +{ + mysetgroupent(0); } void @@ -97,6 +115,9 @@ mygetgrent(void) const char *errstr; int n; + if (!open_group(0)) + return NULL; + next_entry: if ((colon = fgets(grbuf, sizeof(grbuf), grf)) == NULL) return NULL; @@ -129,7 +150,7 @@ mygetgrent(void) gr.gr_mem[n] = cp; cp = strtok_r(NULL, ",", &last); } - gr.gr_mem[n++] = NULL; + gr.gr_mem[n] = NULL; } else gr.gr_mem = NULL; return &gr; @@ -140,16 +161,8 @@ mygetgrnam(const char *name) { struct group *gr; - if (grf == NULL) { - if ((grf = fopen(grfile, "r")) == NULL) - return NULL; - if (fcntl(fileno(grf), F_SETFD, FD_CLOEXEC) == -1) { - fclose(grf); - return NULL; - } - } else { - rewind(grf); - } + if (!open_group(1)) + return NULL; while ((gr = mygetgrent()) != NULL) { if (strcmp(gr->gr_name, name) == 0) break; @@ -166,16 +179,8 @@ mygetgrgid(gid_t gid) { struct group *gr; - if (grf == NULL) { - if ((grf = fopen(grfile, "r")) == NULL) - return NULL; - if (fcntl(fileno(grf), F_SETFD, FD_CLOEXEC) == -1) { - fclose(grf); - return NULL; - } - } else { - rewind(grf); - } + if (!open_group(1)) + return NULL; while ((gr = mygetgrent()) != NULL) { if (gr->gr_gid == gid) break; diff --git a/plugins/group_file/group_file.c b/plugins/group_file/group_file.c index 02672b75db..7c9a25d3e2 100644 --- a/plugins/group_file/group_file.c +++ b/plugins/group_file/group_file.c @@ -52,7 +52,7 @@ static sudo_printf_t sudo_log; extern void mysetgrfile(const char *); -extern void mysetgrent(void); +extern int mysetgroupent(int); extern void myendgrent(void); extern struct group *mygetgrnam(const char *); @@ -89,7 +89,8 @@ sample_init(int version, sudo_printf_t sudo_printf, char *const argv[]) } mysetgrfile(argv[0]); - mysetgrent(); + if (!mysetgroupent(1)) + return false; return true; } diff --git a/plugins/python/Makefile.in b/plugins/python/Makefile.in index 1510d22e7d..4cac26c725 100644 --- a/plugins/python/Makefile.in +++ b/plugins/python/Makefile.in @@ -36,7 +36,7 @@ cross_compiling = @CROSS_COMPILING@ # Compiler & tools to use CC = @CC@ LIBTOOL = @LIBTOOL@ -GREP = @GREP@ +EGREP = @EGREP@ SED = @SED@ AWK = @AWK@ @@ -115,13 +115,14 @@ install_gid = 0 SHELL = @SHELL@ -EXAMPLES = example_conversation.py example_debugging.py example_group_plugin.py example_io_plugin.py example_policy_plugin.py \ - example_audit_plugin.py example_approval_plugin.py +EXAMPLES = example_approval_plugin.py example_audit_plugin.py \ + example_conversation.py example_debugging.py \ + example_group_plugin.py example_io_plugin.py example_policy_plugin.py -OBJS = python_plugin_common.lo python_plugin_policy.lo python_plugin_io.lo python_plugin_group.lo pyhelpers.lo \ - python_loghandler.lo \ - python_importblocker.lo python_convmessage.lo sudo_python_module.lo sudo_python_debug.lo \ - python_baseplugin.lo python_plugin_audit.lo python_plugin_approval.lo +OBJS = python_plugin_common.lo python_plugin_policy.lo python_plugin_io.lo \ + python_plugin_group.lo pyhelpers.lo python_loghandler.lo \ + python_convmessage.lo sudo_python_module.lo sudo_python_debug.lo \ + python_baseplugin.lo python_plugin_audit.lo python_plugin_approval.lo IOBJS = $(OBJS:.lo=.i) @@ -228,11 +229,9 @@ check-fuzzer: check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -344,26 +343,6 @@ python_convmessage.i: $(srcdir)/python_convmessage.c \ $(CC) -E -o $@ $(CPPFLAGS) $< python_convmessage.plog: python_convmessage.i rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/python_convmessage.c --i-file $< --output-file $@ -python_importblocker.lo: $(srcdir)/python_importblocker.c \ - $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ - $(incdir)/sudo_debug.h $(incdir)/sudo_plugin.h \ - $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \ - $(srcdir)/pyhelpers.h \ - $(srcdir)/pyhelpers_cpychecker.h \ - $(srcdir)/sudo_python_debug.h \ - $(srcdir)/sudo_python_module.h $(top_builddir)/config.h - $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/python_importblocker.c -python_importblocker.i: $(srcdir)/python_importblocker.c \ - $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ - $(incdir)/sudo_debug.h $(incdir)/sudo_plugin.h \ - $(incdir)/sudo_queue.h $(incdir)/sudo_util.h \ - $(srcdir)/pyhelpers.h \ - $(srcdir)/pyhelpers_cpychecker.h \ - $(srcdir)/sudo_python_debug.h \ - $(srcdir)/sudo_python_module.h $(top_builddir)/config.h - $(CC) -E -o $@ $(CPPFLAGS) $< -python_importblocker.plog: python_importblocker.i - rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/python_importblocker.c --i-file $< --output-file $@ python_loghandler.lo: $(srcdir)/python_loghandler.c $(incdir)/compat/stdbool.h \ $(incdir)/sudo_compat.h $(incdir)/sudo_debug.h \ $(incdir)/sudo_plugin.h $(incdir)/sudo_queue.h \ diff --git a/plugins/python/python_importblocker.c b/plugins/python/python_importblocker.c deleted file mode 100644 index 109a816a46..0000000000 --- a/plugins/python/python_importblocker.c +++ /dev/null @@ -1,217 +0,0 @@ -/* - * SPDX-License-Identifier: ISC - * - * Copyright (c) 2019-2020 Robert Manner - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * This is an open source non-commercial project. Dear PVS-Studio, please check it. - * PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com - */ - -#include "sudo_python_module.h" - -#include "sudo_util.h" - -#include -#include -#include - - -static int -_verify_import(const char *file_path) -{ - debug_decl(_verify_import, PYTHON_DEBUG_INTERNAL); - - // Check mode and owner similar to what we do in open_sudoers(). - // This is to help avoid loading a potentially insecure module. - struct stat sb; - if (stat(file_path, &sb) != 0) { - PyErr_Format(PyExc_ImportError, "Failed to stat file '%s'", file_path); - debug_return_int(SUDO_RC_ERROR); - } - - if (sb.st_uid != ROOT_UID) { - PyErr_Format(PyExc_ImportError, "File '%s' must be owned by uid %d", file_path, ROOT_UID); - debug_return_int(SUDO_RC_ERROR); - } - - if ((sb.st_mode & (S_IWGRP|S_IWOTH)) != 0) { - PyErr_Format(PyExc_ImportError, "File '%s' must be only be writable by owner", file_path); - debug_return_int(SUDO_RC_ERROR); - } - - debug_return_int(SUDO_RC_OK); -} - -static PyObject * -_sudo_ImportBlocker__Init(PyObject *py_self, PyObject *py_args) -{ - debug_decl(_sudo_ImportBlocker__Init, PYTHON_DEBUG_C_CALLS); - - py_debug_python_call("ImportBlocker", "__init__", py_args, NULL, PYTHON_DEBUG_C_CALLS); - - PyObject *py_meta_path = NULL; - if (!PyArg_UnpackTuple(py_args, "sudo.ImportBlocker.__init__", 2, 2, &py_self, &py_meta_path)) - goto cleanup; - - if (PyObject_SetAttrString(py_self, "meta_path", py_meta_path) != 0) - goto cleanup; - -cleanup: - if (PyErr_Occurred()) - debug_return_ptr(NULL); - - debug_return_ptr_pynone; -} - -static PyObject * -_sudo_ImportBlocker__find_spec(PyObject *py_self, PyObject *py_args) -{ - debug_decl(_sudo_ImportBlocker__find_spec, PYTHON_DEBUG_C_CALLS); - - PyObject *py_fullname = NULL, *py_path = NULL, *py_target = NULL, - *py_meta_path = NULL, *py_meta_path_iterator = NULL, - *py_finder = NULL, *py_spec = NULL, *py_loader = NULL, - *py_import_path = NULL; - - py_debug_python_call("ImportBlocker", "find_spec", py_args, NULL, PYTHON_DEBUG_C_CALLS); - - if (!PyArg_UnpackTuple(py_args, "sudo.ImportBlocker.find_spec", 2, 4, &py_self, &py_fullname, &py_path, &py_target)) - goto cleanup; - - py_meta_path = PyObject_GetAttrString(py_self, "meta_path"); - if (py_meta_path == NULL) - goto cleanup; - - py_meta_path_iterator = PyObject_GetIter(py_meta_path); - if (py_meta_path_iterator == NULL) - goto cleanup; - - while ((py_finder = PyIter_Next(py_meta_path_iterator)) != NULL) { - py_spec = PyObject_CallMethod(py_finder, "find_spec", "(OO)", - py_fullname, py_path, py_target); - if (py_spec == NULL) { - goto cleanup; - } - - if (py_spec != Py_None && PyObject_HasAttrString(py_spec, "loader")) { - // the finder could be resolved and contains a loader - py_loader = PyObject_GetAttrString(py_spec, "loader"); - if (py_loader != NULL && PyObject_HasAttrString(py_loader, "get_filename")) { - // there is a file associated with the import (.py, .so, etc) - py_import_path = PyObject_CallMethod(py_loader, "get_filename", ""); - const char *import_path = PyUnicode_AsUTF8(py_import_path); - - sudo_debug_printf(SUDO_DEBUG_DIAG, "ImportBlocker: verifying permissions " - "on file '%s'\n", import_path); - if (_verify_import(import_path) != SUDO_RC_OK) - goto cleanup; - - Py_CLEAR(py_import_path); - - } else { - sudo_debug_printf(SUDO_DEBUG_DIAG, "ImportBlocker: internal module import '%s'\n", - PyUnicode_AsUTF8(py_fullname)); - } - - goto cleanup; - } - - Py_CLEAR(py_spec); - Py_CLEAR(py_finder); - } - - Py_CLEAR(py_spec); - py_spec = Py_None; - Py_INCREF(py_spec); - -cleanup: - Py_CLEAR(py_meta_path_iterator); - Py_CLEAR(py_meta_path); - Py_CLEAR(py_finder); - Py_CLEAR(py_import_path); - Py_CLEAR(py_loader); - - if (PyErr_Occurred()) { - Py_CLEAR(py_spec); - debug_return_ptr(NULL); - } - - debug_return_ptr(py_spec); -} - -static PyMethodDef _sudo_ImportBlocker_class_methods[] = -{ - {"__init__", _sudo_ImportBlocker__Init, METH_VARARGS, ""}, - {"find_spec", _sudo_ImportBlocker__find_spec, METH_VARARGS, ""}, - {NULL, NULL, 0, NULL} -}; - -// This possibly can be replaced with PySys_AddAuditHook for python >= 3.8 -// -// This function is equivalent of the python call: -// sys.meta_path = [sudo.ImportBlocker(sys.meta_path)] -int -sudo_module_register_importblocker(void) -{ - debug_decl(sudo_module_register_importblocker, PYTHON_DEBUG_C_CALLS); - - int rc = SUDO_RC_ERROR; - - PyObject *py_meta_path = NULL, *py_import_blocker_cls = NULL, - *py_import_blocker = NULL; - - py_meta_path = PySys_GetObject("meta_path"); // note: borrowed reference - if (py_meta_path == NULL) { - PyErr_Format(sudo_exc_SudoException, "'sys.meta_path' is not available. " - "Unable to register import blocker hook which is meant to " - "verify that no such module get loaded by the sudo python plugins" - "which are writable by others than root."); - goto cleanup; - } - Py_INCREF(py_meta_path); - - py_import_blocker_cls = sudo_module_create_class("sudo.ImportBlocker", _sudo_ImportBlocker_class_methods, NULL); - if (py_import_blocker_cls == NULL) - goto cleanup; - - // call the constructor - py_import_blocker = PyObject_CallFunctionObjArgs(py_import_blocker_cls, py_meta_path, NULL); - if (py_import_blocker == NULL) - goto cleanup; - - Py_DECREF(py_meta_path); - py_meta_path = PyList_New(1); - if (py_meta_path == NULL) - goto cleanup; - - if (PyList_SetItem(py_meta_path, 0, py_import_blocker) != 0) - goto cleanup; - py_import_blocker = NULL; // list has stolen it - - if (PySys_SetObject("meta_path", py_meta_path) != 0) { - goto cleanup; - } - - rc = SUDO_RC_OK; - -cleanup: - Py_CLEAR(py_meta_path); - Py_CLEAR(py_import_blocker); - Py_CLEAR(py_import_blocker_cls); - - debug_return_int(rc); -} diff --git a/plugins/python/python_plugin_audit.c b/plugins/python/python_plugin_audit.c index e2036ed6eb..58d59f75d1 100644 --- a/plugins/python/python_plugin_audit.c +++ b/plugins/python/python_plugin_audit.c @@ -62,8 +62,6 @@ _call_plugin_open(struct AuditPluginContext *audit_ctx, int submit_optind, char if (py_submit_argv != NULL) { rc = python_plugin_api_rc_call(plugin_ctx, CALLBACK_PYNAME(open), Py_BuildValue("(iO)", submit_optind, py_submit_argv)); - } else { - rc = SUDO_RC_ERROR; } Py_XDECREF(py_submit_argv); diff --git a/plugins/python/python_plugin_common.c b/plugins/python/python_plugin_common.c index a583a5e58b..0c174cb6c2 100644 --- a/plugins/python/python_plugin_common.c +++ b/plugins/python/python_plugin_common.c @@ -309,7 +309,6 @@ python_plugin_construct(struct PluginContext *plugin_ctx, unsigned int version, if (py_kwargs == NULL) { py_log_last_error("Failed to construct plugin instance"); - rc = SUDO_RC_ERROR; } else { rc = python_plugin_construct_custom(plugin_ctx, py_kwargs); } @@ -519,10 +518,6 @@ python_plugin_init(struct PluginContext *plugin_ctx, char * const plugin_options } PyThreadState_Swap(plugin_ctx->py_interpreter); - if (!sudo_conf_developer_mode() && sudo_module_register_importblocker() < 0) { - goto cleanup; - } - if (sudo_module_set_default_loghandler() < 0) goto cleanup; diff --git a/plugins/python/python_plugin_io.c b/plugins/python/python_plugin_io.c index 46289c3610..d554cb58b7 100644 --- a/plugins/python/python_plugin_io.c +++ b/plugins/python/python_plugin_io.c @@ -64,8 +64,6 @@ _call_plugin_open(struct IOPluginContext *io_ctx, int argc, char * const argv[], if (py_argv != NULL && py_command_info != NULL) { rc = python_plugin_api_rc_call(plugin_ctx, CALLBACK_PYNAME(open), Py_BuildValue("(OO)", py_argv, py_command_info)); - } else { - rc = SUDO_RC_ERROR; } if (rc != SUDO_RC_OK) diff --git a/plugins/python/python_plugin_policy.c b/plugins/python/python_plugin_policy.c index 776c9e0a48..5f356c2b55 100644 --- a/plugins/python/python_plugin_policy.c +++ b/plugins/python/python_plugin_policy.c @@ -132,7 +132,6 @@ python_plugin_policy_check(int argc, char * const argv[], &PyTuple_Type, &py_argv_out, &PyTuple_Type, &py_user_env_out)) { - rc = SUDO_RC_ERROR; goto cleanup; } } else { diff --git a/plugins/python/regress/check_python_examples.c b/plugins/python/regress/check_python_examples.c index 122797a5ef..b9b90771d6 100644 --- a/plugins/python/regress/check_python_examples.c +++ b/plugins/python/regress/check_python_examples.c @@ -118,10 +118,7 @@ init(void) VERIFY_TRUE(asprintf(&data.tmp_dir, TEMP_PATH_TEMPLATE) >= 0); VERIFY_NOT_NULL(mkdtemp(data.tmp_dir)); - // by default we test in developer mode, so the python plugin can be loaded sudo_conf_clear_paths(); - VERIFY_INT(sudo_conf_read(sudo_conf_developer_mode, SUDO_CONF_ALL), true); - VERIFY_TRUE(sudo_conf_developer_mode()); // some default values for the plugin open: data.settings = create_str_array(1, NULL); @@ -464,6 +461,7 @@ check_example_group_plugin(void) return true; } +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION static const char * create_debug_config(const char *debug_spec) { @@ -473,8 +471,7 @@ create_debug_config(const char *debug_spec) snprintf(config_path, sizeof(config_path), "%s/sudo.conf", data.tmp_dir); char *content = NULL; - if (asprintf(&content, "Set developer_mode true\n" - "Debug %s %s/debug.log %s\n", + if (asprintf(&content, "Debug %s %s/debug.log %s\n", "python_plugin.so", data.tmp_dir, debug_spec) < 0) { printf("Failed to allocate string\n"); @@ -516,6 +513,7 @@ check_example_group_plugin_is_able_to_debug(void) return true; } +#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */ static int check_plugin_unload(void) @@ -529,6 +527,7 @@ check_plugin_unload(void) return true; } +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION static int check_example_debugging(const char *debug_spec) { @@ -559,6 +558,7 @@ check_example_debugging(const char *debug_spec) free(debug_flags_setting); return true; } +#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */ static int check_loading_fails(const char *name) @@ -629,16 +629,6 @@ check_loading_fails_with_wrong_path(void) return check_loading_fails("wrong_path"); } -static int -check_loading_fails_plugin_is_not_owned_by_root(void) -{ - sudo_conf_clear_paths(); - VERIFY_INT(sudo_conf_read(sudo_conf_normal_mode, SUDO_CONF_ALL), true); - - create_debugging_plugin_options(); - return check_loading_fails("not_owned_by_root"); -} - static int check_example_conversation_plugin_reason_log(int simulate_suspend, const char *description) { @@ -910,10 +900,12 @@ check_example_policy_plugin_validate_invalidate(void) { const char *errstr = NULL; +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION // the plugin does not do any meaningful for these, so using log to validate instead const char *config_path = create_debug_config("py_calls@diag"); VERIFY_NOT_NULL(config_path); VERIFY_INT(sudo_conf_read(config_path, SUDO_CONF_ALL), true); +#endif create_policy_plugin_options(); @@ -930,7 +922,9 @@ check_example_policy_plugin_validate_invalidate(void) python_policy->close(0, 0); // no command execution +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION VERIFY_LOG_LINES(expected_path("check_example_policy_plugin_validate_invalidate.log")); +#endif VERIFY_STR(data.stderr_str, ""); VERIFY_STR(data.stdout_str, ""); return true; @@ -1545,7 +1539,9 @@ main(int argc, char *argv[]) RUN_TEST(check_plugin_unload()); RUN_TEST(check_example_group_plugin()); +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION RUN_TEST(check_example_group_plugin_is_able_to_debug()); +#endif RUN_TEST(check_plugin_unload()); RUN_TEST(check_loading_fails_with_missing_path()); @@ -1553,7 +1549,6 @@ main(int argc, char *argv[]) RUN_TEST(check_loading_fails_with_missing_classname()); RUN_TEST(check_loading_fails_with_wrong_classname()); RUN_TEST(check_loading_fails_with_wrong_path()); - RUN_TEST(check_loading_fails_plugin_is_not_owned_by_root()); RUN_TEST(check_plugin_unload()); RUN_TEST(check_example_conversation_plugin_reason_log(false, "without_suspend")); @@ -1599,6 +1594,7 @@ main(int argc, char *argv[]) RUN_TEST(check_python_plugins_do_not_affect_each_other()); RUN_TEST(check_plugin_unload()); +#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION RUN_TEST(check_example_debugging("plugin@err")); RUN_TEST(check_example_debugging("plugin@info")); RUN_TEST(check_example_debugging("load@diag")); @@ -1609,6 +1605,7 @@ main(int argc, char *argv[]) RUN_TEST(check_example_debugging("py_calls@info")); RUN_TEST(check_example_debugging("plugin@err")); RUN_TEST(check_plugin_unload()); +#endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */ if (ntests != 0) { printf("%s: %d tests run, %d errors, %d%% success rate\n", diff --git a/plugins/python/regress/iohelpers.c b/plugins/python/regress/iohelpers.c index 9c71dfce2f..d4811004d2 100644 --- a/plugins/python/regress/iohelpers.c +++ b/plugins/python/regress/iohelpers.c @@ -140,11 +140,14 @@ str_array_snprint(char *out_str, size_t max_len, char **str_array, int array_len char * str_replaced(const char *source, size_t dest_len, const char *old, const char *new) { - char *result = calloc(1, dest_len); + char *result = malloc(dest_len); char *dest = result; char *pos = NULL; size_t old_len = strlen(old); + if (result == NULL) + return NULL; + while ((pos = strstr(source, old)) != NULL) { size_t len = snprintf(dest, dest_len, "%.*s%s", (int)(pos - source), source, new); @@ -170,6 +173,8 @@ void str_replace_in_place(char *string, size_t max_length, const char *old, const char *new) { char *replaced = str_replaced(string, max_length, old, new); - strlcpy(string, replaced, max_length); - free(replaced); + if (replaced != NULL) { + strlcpy(string, replaced, max_length); + free(replaced); + } } diff --git a/plugins/python/regress/testdata/check_multiple_approval_plugin_and_arguments.stdout b/plugins/python/regress/testdata/check_multiple_approval_plugin_and_arguments.stdout index 9884aa0df5..258902596a 100644 --- a/plugins/python/regress/testdata/check_multiple_approval_plugin_and_arguments.stdout +++ b/plugins/python/regress/testdata/check_multiple_approval_plugin_and_arguments.stdout @@ -26,7 +26,7 @@ "INFO1=VALUE1", "info2=value2" ], - "version": "1.20" + "version": "1.21" } (APPROVAL 2) Constructed: { @@ -56,7 +56,7 @@ "INFO1=VALUE1", "info2=value2" ], - "version": "1.20" + "version": "1.21" } (APPROVAL 1) Show version was called with arguments: (0,) Python approval plugin (API 1.0): ApprovalTestPlugin (loaded from 'SRC_DIR/regress/plugin_approval_test.py') diff --git a/plugins/python/regress/testdata/sudo.conf.developer_mode b/plugins/python/regress/testdata/sudo.conf.developer_mode deleted file mode 100644 index 4da2ad94e7..0000000000 --- a/plugins/python/regress/testdata/sudo.conf.developer_mode +++ /dev/null @@ -1 +0,0 @@ -Set developer_mode true diff --git a/plugins/python/regress/testdata/sudo.conf.normal_mode b/plugins/python/regress/testdata/sudo.conf.normal_mode deleted file mode 100644 index b972a6a0ba..0000000000 --- a/plugins/python/regress/testdata/sudo.conf.normal_mode +++ /dev/null @@ -1 +0,0 @@ -Set developer_mode false diff --git a/plugins/python/regress/testhelpers.c b/plugins/python/regress/testhelpers.c index 9c42c1da97..42971bbb6e 100644 --- a/plugins/python/regress/testhelpers.c +++ b/plugins/python/regress/testhelpers.c @@ -23,9 +23,6 @@ #include "testhelpers.h" -const char *sudo_conf_developer_mode = TESTDATA_DIR "sudo.conf.developer_mode"; -const char *sudo_conf_normal_mode = TESTDATA_DIR "sudo.conf.normal_mode"; - struct TestData data; /* @@ -93,10 +90,22 @@ create_str_array(size_t count, ...) va_start(args, count); - char ** result = calloc(count, sizeof(char *)); - for (size_t i = 0; i < count; ++i) { - const char *str = va_arg(args, char *); - result[i] = (str == NULL ? NULL : strdup(str)); + char **result = calloc(count, sizeof(char *)); + if (result != NULL) { + for (size_t i = 0; i < count; ++i) { + const char *str = va_arg(args, char *); + if (str != NULL) { + result[i] = strdup(str); + if (result[i] == NULL) { + while (i > 0) { + free(result[--i]); + } + free(result); + result = NULL; + break; + } + } + } } va_end(args); @@ -164,6 +173,8 @@ fake_conversation(int num_msgs, const struct sudo_conv_message msgs[], return 1; // simulates user interruption (conversation error) replies[i].reply = strdup(data.conv_replies[i]); + if (replies[i].reply == NULL) + return 1; // memory allocation error } return 0; // simulate user answered just fine diff --git a/plugins/python/regress/testhelpers.h b/plugins/python/regress/testhelpers.h index 0e19d9db01..2dd1d542f7 100644 --- a/plugins/python/regress/testhelpers.h +++ b/plugins/python/regress/testhelpers.h @@ -31,9 +31,6 @@ #endif #define TESTDATA_DIR SRC_DIR "/regress/testdata/" -extern const char *sudo_conf_developer_mode; -extern const char *sudo_conf_normal_mode; - #define TEMP_PATH_TEMPLATE "/tmp/sudo_check_python_exampleXXXXXX" extern struct TestData { @@ -75,7 +72,7 @@ char ** create_str_array(size_t count, ...); success = 0; \ } \ if (!cleanup(success)) { \ - printf("FAILED: deitialization of testcase %s at %s:%d\n", #testcase, __FILE__, __LINE__); \ + printf("FAILED: deinitialization of testcase %s at %s:%d\n", #testcase, __FILE__, __LINE__); \ success = 0; \ } \ if (!success) { \ diff --git a/plugins/python/sudo_python_module.h b/plugins/python/sudo_python_module.h index a6c4f045c6..dea8b83a67 100644 --- a/plugins/python/sudo_python_module.h +++ b/plugins/python/sudo_python_module.h @@ -36,9 +36,6 @@ extern PyObject *sudo_type_LogHandler; PyObject *sudo_module_create_class(const char *class_name, PyMethodDef *class_methods, PyObject *base_class); -CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION -int sudo_module_register_importblocker(void); - CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION int sudo_module_register_conv_message(PyObject *py_module); diff --git a/plugins/sample/README b/plugins/sample/README index 45c2b78cbf..dbd92cd0b1 100644 --- a/plugins/sample/README +++ b/plugins/sample/README @@ -1,10 +1,9 @@ This is a sample sudo policy plugin. See the sudo_plugin manual for information on writing your own plugin. -The sample policy plugin is not built or installed by default. To -build and install the plugin, change to the plugins/sample directory -and run "make". It can be installed by running "make install" as -the superuser from the same directory. +The sample policy plugin is not installed by default. It can be installed +by running "make install" as the superuser from the plugins/sample +directory. To actually use the sample plugin, you'll need to modify the /etc/sudo.conf file. Caution: you should not make changes to diff --git a/plugins/sample/sample_plugin.c b/plugins/sample/sample_plugin.c index e09a8da83e..a494c11052 100644 --- a/plugins/sample/sample_plugin.c +++ b/plugins/sample/sample_plugin.c @@ -86,7 +86,7 @@ policy_open(unsigned int version, sudo_conv_t conversation, if (!sudo_conv) sudo_conv = conversation; if (!sudo_log) - sudo_log = sudo_printf; + sudo_log = sudo_plugin_printf; if (SUDO_API_VERSION_GET_MAJOR(version) != SUDO_API_VERSION_MAJOR) { sudo_log(SUDO_CONV_ERROR_MSG, @@ -201,33 +201,46 @@ check_passwd(void) static char ** build_command_info(const char *command) { - static char **command_info; + char **command_info; int i = 0; /* Setup command info. */ command_info = calloc(32, sizeof(char *)); if (command_info == NULL) - return NULL; - if ((command_info[i++] = sudo_new_key_val("command", command)) == NULL || - asprintf(&command_info[i++], "runas_euid=%ld", (long)runas_uid) == -1 || - asprintf(&command_info[i++], "runas_uid=%ld", (long)runas_uid) == -1) { - return NULL; - } + goto oom; + if ((command_info[i] = sudo_new_key_val("command", command)) == NULL) + goto oom; + i++; + if (asprintf(&command_info[i], "runas_euid=%ld", (long)runas_uid) == -1) + goto oom; + i++; + if (asprintf(&command_info[i++], "runas_uid=%ld", (long)runas_uid) == -1) + goto oom; + i++; if (runas_gid != (gid_t)-1) { - if (asprintf(&command_info[i++], "runas_gid=%ld", (long)runas_gid) == -1 || - asprintf(&command_info[i++], "runas_egid=%ld", (long)runas_gid) == -1) { - return NULL; - } - } - if (use_sudoedit) { - command_info[i] = strdup("sudoedit=true"); - if (command_info[i++] == NULL) - return NULL; + if (asprintf(&command_info[i++], "runas_gid=%ld", (long)runas_gid) == -1) + goto oom; + i++; + if (asprintf(&command_info[i++], "runas_egid=%ld", (long)runas_gid) == -1) + goto oom; + i++; } #ifdef USE_TIMEOUT - command_info[i++] = "timeout=30"; + if ((command_info[i] = strdup("timeout=30")) == NULL) + goto oom; + i++; #endif + if (use_sudoedit) { + if ((command_info[i] = strdup("sudoedit=true")) == NULL) + goto oom; + } return command_info; +oom: + while (i > 0) { + free(command_info[i--]); + } + free(command_info); + return NULL; } static char * @@ -401,7 +414,7 @@ io_open(unsigned int version, sudo_conv_t conversation, if (!sudo_conv) sudo_conv = conversation; if (!sudo_log) - sudo_log = sudo_printf; + sudo_log = sudo_plugin_printf; /* Open input and output files. */ snprintf(path, sizeof(path), "/var/tmp/sample-%u.output", diff --git a/plugins/sudoers/Makefile.in b/plugins/sudoers/Makefile.in index 29110dcfd0..2786d1ccd5 100644 --- a/plugins/sudoers/Makefile.in +++ b/plugins/sudoers/Makefile.in @@ -47,7 +47,7 @@ LIBTOOL = @LIBTOOL@ SHA1SUM = @SHA1SUM@ FLEX = @FLEX@ YACC = @YACC@ -GREP = @GREP@ +EGREP = @EGREP@ SED = @SED@ AWK = @AWK@ @@ -72,7 +72,7 @@ TESTSUDOERS_LIBS = $(NET_LIBS) # C preprocessor defines CPPDEFS = -DLIBDIR=\"$(libdir)\" -DLOCALEDIR=\"$(localedir)\" \ - -D_PATH_SUDOERS=\"$(sudoersdir)/sudoers\" \ + -D_PATH_SUDOERS=\"$(sysconfdir)/sudoers\" \ -D_PATH_CVTSUDOERS_CONF=\"$(sysconfdir)/cvtsudoers.conf\" \ -DSUDOERS_UID=$(sudoers_uid) -DSUDOERS_GID=$(sudoers_gid) \ -DSUDOERS_MODE=$(sudoers_mode) @@ -135,9 +135,6 @@ shlib_opt = sudoers.opt # Directory in which to install the sudoers plugin plugindir = @plugindir@ -# Directory in which to install the sudoers file -sudoersdir = $(sysconfdir) - # User and group ids the installed files should be "owned" by install_uid = 0 install_gid = 0 @@ -159,7 +156,7 @@ PROGS = sudoers.la visudo sudoreplay cvtsudoers testsudoers # Regression tests TEST_PROGS = check_addr check_base64 check_digest check_editor \ check_env_pattern check_exptilde check_fill check_gentime \ - check_hexchar check_iolog_plugin check_serialize_list \ + check_iolog_plugin check_serialize_list \ check_starttime check_unesc @SUDOERS_TEST_PROGS@ TEST_VERBOSE = HARNESS = $(SHELL) regress/harness $(TEST_VERBOSE) @@ -178,7 +175,7 @@ AUTH_OBJS = sudo_auth.lo @AUTH_OBJS@ LIBPARSESUDOERS_OBJS = alias.lo b64_decode.lo defaults.lo digestname.lo \ exptilde.lo filedigest.lo gentime.lo gram.lo \ - hexchar.lo match.lo match_addr.lo match_command.lo \ + match.lo match_addr.lo match_command.lo \ match_digest.lo pwutil.lo pwutil_impl.lo \ redblack.lo strlist.lo sudoers_debug.lo timeout.lo \ timestr.lo toke.lo toke_util.lo @@ -237,12 +234,10 @@ CHECK_ENV_MATCH_OBJS = check_env_pattern.o env_pattern.lo sudoers_debug.lo CHECK_EXPTILDE_OBJS = check_exptilde.o exptilde.lo pwutil.lo pwutil_impl.lo redblack.lo sudoers_debug.lo -CHECK_FILL_OBJS = check_fill.o hexchar.lo toke_util.lo sudoers_debug.lo +CHECK_FILL_OBJS = check_fill.o toke_util.lo sudoers_debug.lo CHECK_GENTIME_OBJS = check_gentime.o gentime.lo sudoers_debug.lo -CHECK_HEXCHAR_OBJS = check_hexchar.o hexchar.lo sudoers_debug.lo - CHECK_IOLOG_PLUGIN_OBJS = check_iolog_plugin.o iolog.lo log_client.lo \ locale.lo pwutil.lo pwutil_impl.lo redblack.lo \ strlist.lo sudoers_debug.lo unesc_str.lo @@ -297,7 +292,8 @@ FUZZ_SUDOERS_CORPUS = $(top_builddir)/examples/sudoers \ FUZZ_SUDOERS_LDIF_OBJS = fuzz_stubs.o fuzz_sudoers_ldif.o parse_ldif.o \ ldap_util.lo fmtsudoers.lo locale.lo -FUZZ_SUDOERS_LDIF_CORPUS = $(srcdir)/regress/sudoers/*.ldif.ok +FUZZ_SUDOERS_LDIF_CORPUS = $(srcdir)/regress/sudoers/*.ldif.ok \ + $(srcdir)/regress/corpus/seed/ldif/*.ldif VERSION = @PACKAGE_VERSION@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ @@ -337,7 +333,7 @@ depend: cd $(top_builddir) && ./config.status --file plugins/sudoers/Makefile harness: $(srcdir)/regress/harness.in - cd $(top_builddir) && ./config.status --file plugins/sudoers/regress/harness + cd $(top_builddir) && ./config.status --file plugins/sudoers/regress/harness && chmod +x plugins/sudoers/regress/harness Makefile: $(srcdir)/Makefile.in cd $(top_builddir) && ./config.status --file plugins/sudoers/Makefile @@ -392,9 +388,6 @@ check_fill: $(CHECK_FILL_OBJS) $(LIBUTIL) check_gentime: $(CHECK_GENTIME_OBJS) $(LIBUTIL) $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(CHECK_GENTIME_OBJS) $(LDFLAGS) $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(LIBS) -check_hexchar: $(CHECK_HEXCHAR_OBJS) $(LIBUTIL) - $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(CHECK_HEXCHAR_OBJS) $(LDFLAGS) $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(LIBS) - check_iolog_plugin: $(CHECK_IOLOG_PLUGIN_OBJS) $(LIBUTIL) $(LIBIOLOG) $(LIBLOGSRV) $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(CHECK_IOLOG_PLUGIN_OBJS) $(LDFLAGS) $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(LIBIOLOG) $(LIBLOGSRV) @LIBTLS@ @@ -430,11 +423,9 @@ fuzz_policy_seed_corpus.zip: rm -rf $$tdir run-fuzz_policy: fuzz_policy - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -457,11 +448,9 @@ fuzz_sudoers_seed_corpus.zip: rm -rf $$tdir run-fuzz_sudoers: fuzz_sudoers - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -484,11 +473,9 @@ fuzz_sudoers_ldif_seed_corpus.zip: rm -rf $$tdir run-fuzz_sudoers_ldif: fuzz_sudoers_ldif - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -518,7 +505,7 @@ $(devdir)/gram.c $(devdir)/gram.h: $(srcdir)/gram.y prologue else \ gram_y="$(srcdir)/gram.y"; \ fi; \ - cmd='$(YACC) -d -p sudoers '"$$gram_y"'; cp prologue $(devdir)/gram.c; $(SED) -e "s/^\\(#line .*\\) \"y\\.tab\\.c\"/\1 \"gram.c\"/" -e "/^# *include /{N;s/__STDC_VERSION__ && 199901 <= __STDC_VERSION__/HAVE_STDINT_H/;}" y.tab.c >> $(devdir)/gram.c; rm -f y.tab.c; mv -f y.tab.h $(devdir)/gram.h'; \ + cmd='$(YACC) -d -p sudoers '"$$gram_y"'; cp prologue $(devdir)/gram.c; $(SED) -e "s/^\\(#line .*\\) \"y\\.tab\\.c\"/\1 \"gram.c\"/" -e "/^# *include /{N;s/__STDC_VERSION__ && 199901 <= __STDC_VERSION__/HAVE_STDINT_H/;}" y.tab.c >> $(devdir)/gram.c; sed -e "s/^\\(#line .*\\) \"y\\.tab\\.h\"/\1 \"gram.h\"/" y.tab.h > $(devdir)/gram.h'; rm -f y.tab.[ch]; \ echo "$$cmd"; eval $$cmd; \ fi @@ -556,9 +543,9 @@ sudoers: $(srcdir)/sudoers.in pre-install: visudo @if test X"$(cross_compiling)" != X"yes" -a X"$(DESTDIR)" = X""; then \ - if test -r $(sudoersdir)/sudoers; then \ + if test -r $(sysconfdir)/sudoers; then \ echo "Checking existing sudoers file for syntax errors."; \ - ./visudo -c -f $(sudoersdir)/sudoers; \ + ./visudo -c -f $(sysconfdir)/sudoers; \ fi; \ fi @@ -567,7 +554,7 @@ install: install-plugin install-binaries install-sudoers install-doc install-dirs: $(SHELL) $(scriptdir)/mkinstalldirs $(DESTDIR)$(plugindir) \ $(DESTDIR)$(sbindir) $(DESTDIR)$(bindir) \ - $(DESTDIR)$(sudoersdir) $(DESTDIR)$(docdir) \ + $(DESTDIR)$(sysconfdir) $(DESTDIR)$(docdir) \ `echo $(DESTDIR)$(rundir)|$(SED) 's,/[^/]*$$,,'` \ `echo $(DESTDIR)$(vardir)|$(SED) 's,/[^/]*$$,,'` $(INSTALL) -d $(INSTALL_OWNER) -m 0711 $(DESTDIR)$(rundir) @@ -592,10 +579,10 @@ install-plugin: sudoers.la install-dirs esac install-sudoers: install-dirs - $(INSTALL) -d $(INSTALL_OWNER) -m 0750 $(DESTDIR)$(sudoersdir)/sudoers.d - $(INSTALL) $(INSTALL_OWNER) -m $(sudoers_mode) sudoers $(DESTDIR)$(sudoersdir)/sudoers.dist - test -r $(DESTDIR)$(sudoersdir)/sudoers || \ - cp -p $(DESTDIR)$(sudoersdir)/sudoers.dist $(DESTDIR)$(sudoersdir)/sudoers + $(INSTALL) -d $(INSTALL_OWNER) -m 0750 $(DESTDIR)$(sysconfdir)/sudoers.d + $(INSTALL) $(INSTALL_OWNER) -m $(sudoers_mode) sudoers $(DESTDIR)$(sysconfdir)/sudoers.dist + test -r $(DESTDIR)$(sysconfdir)/sudoers || \ + cp -p $(DESTDIR)$(sysconfdir)/sudoers.dist $(DESTDIR)$(sysconfdir)/sudoers install-fuzzer: $(FUZZ_PROGS) $(FUZZ_SEED_CORPUS) @if test X"$(FUZZ_DESTDIR)" = X""; then \ @@ -615,9 +602,9 @@ uninstall: $(DESTDIR)$(bindir)/sudoreplay$(INSTALL_BACKUP) \ $(DESTDIR)$(sbindir)/visudo$(INSTALL_BACKUP) \ $(DESTDIR)$(plugindir)/sudoers.so$(INSTALL_BACKUP) - -cmp $(DESTDIR)$(sudoersdir)/sudoers $(DESTDIR)$(sudoersdir)/sudoers.dist >/dev/null && \ - rm -f $(DESTDIR)$(sudoersdir)/sudoers - -rm -f $(DESTDIR)$(sudoersdir)/sudoers.dist + -cmp $(DESTDIR)$(sysconfdir)/sudoers $(DESTDIR)$(sysconfdir)/sudoers.dist >/dev/null && \ + rm -f $(DESTDIR)$(sysconfdir)/sudoers + -rm -f $(DESTDIR)$(sysconfdir)/sudoers.dist splint: splint $(SPLINT_OPTS) -I$(incdir) -I$(top_builddir) -I$(devdir) -I$(srcdir) $(srcdir)/*.c $(srcdir)/auth/*.c @@ -634,11 +621,9 @@ fuzz: run-fuzz_policy run-fuzz_sudoers run-fuzz_sudoers_ldif check-fuzzer: $(FUZZ_PROGS) @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -653,11 +638,9 @@ check-fuzzer: $(FUZZ_PROGS) check: $(TEST_PROGS) visudo testsudoers cvtsudoers check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ @@ -676,7 +659,6 @@ check: $(TEST_PROGS) visudo testsudoers cvtsudoers check-fuzzer ./check_exptilde || rval=`expr $$rval + $$?`; \ ./check_fill || rval=`expr $$rval + $$?`; \ ./check_gentime || rval=`expr $$rval + $$?`; \ - ./check_hexchar || rval=`expr $$rval + $$?`; \ mkdir -p regress/iolog_plugin; \ ./check_iolog_plugin regress/iolog_plugin/iolog || rval=`expr $$rval + $$?`; \ ./check_serialize_list || rval=`expr $$rval + $$?`; \ @@ -1127,16 +1109,6 @@ check_gentime.i: $(srcdir)/regress/parser/check_gentime.c \ $(CC) -E -o $@ $(CPPFLAGS) $< check_gentime.plog: check_gentime.i rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/regress/parser/check_gentime.c --i-file $< --output-file $@ -check_hexchar.o: $(srcdir)/regress/parser/check_hexchar.c \ - $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ - $(incdir)/sudo_util.h $(top_builddir)/config.h - $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/regress/parser/check_hexchar.c -check_hexchar.i: $(srcdir)/regress/parser/check_hexchar.c \ - $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ - $(incdir)/sudo_util.h $(top_builddir)/config.h - $(CC) -E -o $@ $(CPPFLAGS) $< -check_hexchar.plog: check_hexchar.i - rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/regress/parser/check_hexchar.c --i-file $< --output-file $@ check_iolog_plugin.o: $(srcdir)/regress/iolog_plugin/check_iolog_plugin.c \ $(devdir)/def_data.c $(devdir)/def_data.h \ $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ @@ -1933,28 +1905,6 @@ group_plugin.i: $(srcdir)/group_plugin.c $(devdir)/def_data.h \ $(CC) -E -o $@ $(CPPFLAGS) $< group_plugin.plog: group_plugin.i rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/group_plugin.c --i-file $< --output-file $@ -hexchar.lo: $(srcdir)/hexchar.c $(devdir)/def_data.h \ - $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ - $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \ - $(incdir)/sudo_eventlog.h $(incdir)/sudo_fatal.h \ - $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \ - $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/defaults.h \ - $(srcdir)/logging.h $(srcdir)/parse.h $(srcdir)/sudo_nss.h \ - $(srcdir)/sudoers.h $(srcdir)/sudoers_debug.h \ - $(top_builddir)/config.h $(top_builddir)/pathnames.h - $(LIBTOOL) $(LTFLAGS) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(ASAN_CFLAGS) $(PIE_CFLAGS) $(HARDENING_CFLAGS) $(srcdir)/hexchar.c -hexchar.i: $(srcdir)/hexchar.c $(devdir)/def_data.h \ - $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ - $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \ - $(incdir)/sudo_eventlog.h $(incdir)/sudo_fatal.h \ - $(incdir)/sudo_gettext.h $(incdir)/sudo_plugin.h \ - $(incdir)/sudo_queue.h $(incdir)/sudo_util.h $(srcdir)/defaults.h \ - $(srcdir)/logging.h $(srcdir)/parse.h $(srcdir)/sudo_nss.h \ - $(srcdir)/sudoers.h $(srcdir)/sudoers_debug.h \ - $(top_builddir)/config.h $(top_builddir)/pathnames.h - $(CC) -E -o $@ $(CPPFLAGS) $< -hexchar.plog: hexchar.i - rm -f $@; pvs-studio --cfg $(PVS_CFG) --sourcetree-root $(top_srcdir) --skip-cl-exe yes --source-file $(srcdir)/hexchar.c --i-file $< --output-file $@ interfaces.lo: $(srcdir)/interfaces.c $(devdir)/def_data.h \ $(incdir)/compat/stdbool.h $(incdir)/sudo_compat.h \ $(incdir)/sudo_conf.h $(incdir)/sudo_debug.h \ diff --git a/plugins/sudoers/auth/pam.c b/plugins/sudoers/auth/pam.c index 693cef3d48..92cd2dd726 100644 --- a/plugins/sudoers/auth/pam.c +++ b/plugins/sudoers/auth/pam.c @@ -723,7 +723,8 @@ converse(int num_msg, PAM_CONST struct pam_message **msg, if (strlen(pass) >= PAM_MAX_RESP_SIZE) { sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO, "password longer than %d", PAM_MAX_RESP_SIZE); - explicit_bzero(pass, strlen(pass)); + freezero(pass, strlen(pass)); + pass = NULL; goto bad; } reply[n].resp = pass; /* auth_getpass() malloc's a copy */ diff --git a/plugins/sudoers/auth/passwd.c b/plugins/sudoers/auth/passwd.c index 636c07babb..6967e4fffa 100644 --- a/plugins/sudoers/auth/passwd.c +++ b/plugins/sudoers/auth/passwd.c @@ -95,6 +95,8 @@ sudo_passwd_verify(struct passwd *pw, const char *pass, sudo_auth *auth, struct matched = !strcmp(pw_epasswd, epass); } + explicit_bzero(des_pass, sizeof(des_pass)); + debug_return_int(matched ? AUTH_SUCCESS : AUTH_FAILURE); } #else @@ -115,11 +117,14 @@ sudo_passwd_verify(struct passwd *pw, const char *pass, sudo_auth *auth, struct int sudo_passwd_cleanup(struct passwd *pw, sudo_auth *auth, bool force) { - char *pw_epasswd = auth->data; debug_decl(sudo_passwd_cleanup, SUDOERS_DEBUG_AUTH); - if (pw_epasswd != NULL) - freezero(pw_epasswd, strlen(pw_epasswd)); + if (auth->data != NULL) { + /* Zero out encrypted password before freeing. */ + size_t len = strlen((char *)auth->data); + freezero(auth->data, len); + auth->data = NULL; + } debug_return_int(AUTH_SUCCESS); } diff --git a/plugins/sudoers/check.c b/plugins/sudoers/check.c index d7bfd9ad1d..7a148021bb 100644 --- a/plugins/sudoers/check.c +++ b/plugins/sudoers/check.c @@ -246,12 +246,12 @@ void display_lecture(struct sudo_conv_callback *callback) { struct getpass_closure *closure; - struct sudo_conv_message msg; - struct sudo_conv_reply repl; + struct sudo_conv_message msg[2]; + struct sudo_conv_reply repl[2]; char buf[BUFSIZ]; struct stat sb; ssize_t nread; - int fd; + int fd, msgcount = 1; debug_decl(lecture, SUDOERS_DEBUG_AUTH); if (callback == NULL || (closure = callback->closure) == NULL) @@ -273,9 +273,9 @@ display_lecture(struct sudo_conv_callback *callback) (void) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL, 0) & ~O_NONBLOCK); while ((nread = read(fd, buf, sizeof(buf) - 1)) > 0) { buf[nread] = '\0'; - msg.msg_type = SUDO_CONV_ERROR_MSG|SUDO_CONV_PREFER_TTY; - msg.msg = buf; - sudo_conv(1, &msg, &repl, NULL); + msg[0].msg_type = SUDO_CONV_ERROR_MSG|SUDO_CONV_PREFER_TTY; + msg[0].msg = buf; + sudo_conv(1, msg, repl, NULL); } if (nread == 0) { close(fd); @@ -297,14 +297,19 @@ display_lecture(struct sudo_conv_callback *callback) } /* Default sudo lecture. */ - msg.msg_type = SUDO_CONV_ERROR_MSG|SUDO_CONV_PREFER_TTY; - msg.msg = _("\n" + msg[0].msg_type = SUDO_CONV_ERROR_MSG|SUDO_CONV_PREFER_TTY; + msg[0].msg = _("\n" "We trust you have received the usual lecture from the local System\n" "Administrator. It usually boils down to these three things:\n\n" " #1) Respect the privacy of others.\n" " #2) Think before you type.\n" " #3) With great power comes great responsibility.\n\n"); - sudo_conv(1, &msg, &repl, NULL); + if (!def_pwfeedback) { + msg[1].msg_type = SUDO_CONV_ERROR_MSG|SUDO_CONV_PREFER_TTY; + msg[1].msg = _("For security reasons, the password you type will not be visible.\n\n"); + msgcount++; + } + sudo_conv(msgcount, msg, repl, NULL); done: closure->lectured = true; diff --git a/plugins/sudoers/cvtsudoers.c b/plugins/sudoers/cvtsudoers.c index a6f17e9c8f..dfc518fadf 100644 --- a/plugins/sudoers/cvtsudoers.c +++ b/plugins/sudoers/cvtsudoers.c @@ -87,8 +87,6 @@ static struct option long_opts[] = { }; sudo_dso_public int main(int argc, char *argv[]); -static sudo_noreturn void help(void); -static sudo_noreturn void usage(void); static bool convert_sudoers_sudoers(struct sudoers_parse_tree *parse_tree, const char *output_file, struct cvtsudoers_config *conf); static bool parse_sudoers(const char *input_file, struct cvtsudoers_config *conf); static bool parse_ldif(struct sudoers_parse_tree *parse_tree, const char *input_file, struct cvtsudoers_config *conf); @@ -101,6 +99,8 @@ static void filter_userspecs(struct sudoers_parse_tree *parse_tree, struct cvtsu static void filter_defaults(struct sudoers_parse_tree *parse_tree, struct cvtsudoers_config *conf); static void alias_remove_unused(struct sudoers_parse_tree *parse_tree); static void alias_prune(struct sudoers_parse_tree *parse_tree, struct cvtsudoers_config *conf); +sudo_noreturn static void help(void); +sudo_noreturn static void usage(void); int main(int argc, char *argv[]) @@ -272,7 +272,7 @@ main(int argc, char *argv[]) if (strcasecmp(conf->input_format, "ldif") == 0) { input_format = format_ldif; } else if (strcasecmp(conf->input_format, "sudoers") == 0) { - input_format = format_sudoers; + input_format = format_sudoers; // -V1048 } else { sudo_warnx(U_("unsupported input format %s"), conf->input_format); usage(); @@ -286,7 +286,7 @@ main(int argc, char *argv[]) output_format = format_json; conf->store_options = true; } else if (strcasecmp(conf->output_format, "ldif") == 0) { - output_format = format_ldif; + output_format = format_ldif; // -V1048 conf->store_options = true; } else if (strcasecmp(conf->output_format, "sudoers") == 0) { output_format = format_sudoers; diff --git a/plugins/sudoers/cvtsudoers_json.c b/plugins/sudoers/cvtsudoers_json.c index ab686e1d74..9fc56e39b5 100644 --- a/plugins/sudoers/cvtsudoers_json.c +++ b/plugins/sudoers/cvtsudoers_json.c @@ -899,7 +899,7 @@ convert_sudoers_json(struct sudoers_parse_tree *parse_tree, } /* 4 space indent, non-compact, exit on memory allocation failure. */ - sudo_json_init(&jsonc, 4, false, true); + sudo_json_init(&jsonc, 4, false, true, false); /* Dump Defaults in JSON format. */ if (!ISSET(conf->suppress, SUPPRESS_DEFAULTS)) { diff --git a/plugins/sudoers/cvtsudoers_merge.c b/plugins/sudoers/cvtsudoers_merge.c index bd62cc068f..3afd5db90e 100644 --- a/plugins/sudoers/cvtsudoers_merge.c +++ b/plugins/sudoers/cvtsudoers_merge.c @@ -328,7 +328,7 @@ alias_make_unique(const char *old_name, int type, struct sudoers_parse_tree *parse_tree0, struct sudoers_parse_tree *merged_tree) { - struct sudoers_parse_tree *parse_tree = parse_tree0; + struct sudoers_parse_tree *parse_tree; char *cp, *new_name = NULL; struct alias *a; long long suffix; diff --git a/plugins/sudoers/editor.c b/plugins/sudoers/editor.c index 6d988ff684..829be82d0d 100644 --- a/plugins/sudoers/editor.c +++ b/plugins/sudoers/editor.c @@ -149,6 +149,7 @@ resolve_editor(const char *ed, size_t edlen, int nfiles, char * const *files, /* If we can't find the editor in the user's PATH, give up. */ if (find_path(editor, &editor_path, &user_editor_sb, getenv("PATH"), NULL, 0, allowlist) != FOUND) { + errno = ENOENT; goto bad; } diff --git a/plugins/sudoers/env.c b/plugins/sudoers/env.c index 887d6468f8..73f017a5cf 100644 --- a/plugins/sudoers/env.c +++ b/plugins/sudoers/env.c @@ -692,7 +692,7 @@ matches_env_check(const char *var, bool *full_match) } else { const char *val = strchr(var, '='); if (val != NULL) - keepit = !strpbrk(++val, "/%"); + keepit = !strpbrk(val + 1, "/%"); } } debug_return_int(keepit); @@ -919,25 +919,27 @@ rebuild_env(void) } /* Pull in vars we want to keep from the old environment. */ - for (ep = env.old_envp; *ep; ep++) { - bool keepit; - - /* - * Look up the variable in the env_check and env_keep lists. - */ - keepit = env_should_keep(*ep); - - /* - * Do SUDO_PS1 -> PS1 conversion. - * This must happen *after* env_should_keep() is called. - */ - if (strncmp(*ep, "SUDO_PS1=", 9) == 0) - ps1 = *ep + 5; + if (env.old_envp != NULL) { + for (ep = env.old_envp; *ep; ep++) { + bool keepit; + + /* + * Look up the variable in the env_check and env_keep lists. + */ + keepit = env_should_keep(*ep); + + /* + * Do SUDO_PS1 -> PS1 conversion. + * This must happen *after* env_should_keep() is called. + */ + if (strncmp(*ep, "SUDO_PS1=", 9) == 0) + ps1 = *ep + 5; - if (keepit) { - /* Preserve variable. */ - CHECK_PUTENV(*ep, true, false); - env_update_didvar(*ep, &didvar); + if (keepit) { + /* Preserve variable. */ + CHECK_PUTENV(*ep, true, false); + env_update_didvar(*ep, &didvar); + } } } didvar |= didvar << 16; /* convert DID_* to KEPT_* */ @@ -999,18 +1001,20 @@ rebuild_env(void) * Copy environ entries as long as they don't match env_delete or * env_check. */ - for (ep = env.old_envp; *ep; ep++) { - /* Add variable unless it matches a blocklist. */ - if (!env_should_delete(*ep)) { - if (strncmp(*ep, "SUDO_PS1=", 9) == 0) - ps1 = *ep + 5; - else if (strncmp(*ep, "SHELL=", 6) == 0) - SET(didvar, DID_SHELL); - else if (strncmp(*ep, "PATH=", 5) == 0) - SET(didvar, DID_PATH); - else if (strncmp(*ep, "TERM=", 5) == 0) - SET(didvar, DID_TERM); - CHECK_PUTENV(*ep, true, false); + if (env.old_envp != NULL) { + for (ep = env.old_envp; *ep; ep++) { + /* Add variable unless it matches a blocklist. */ + if (!env_should_delete(*ep)) { + if (strncmp(*ep, "SUDO_PS1=", 9) == 0) + ps1 = *ep + 5; + else if (strncmp(*ep, "SHELL=", 6) == 0) + SET(didvar, DID_SHELL); + else if (strncmp(*ep, "PATH=", 5) == 0) + SET(didvar, DID_PATH); + else if (strncmp(*ep, "TERM=", 5) == 0) + SET(didvar, DID_TERM); + CHECK_PUTENV(*ep, true, false); + } } } } @@ -1145,7 +1149,8 @@ bool validate_env_vars(char * const env_vars[]) { char * const *ep; - char *eq, errbuf[4096]; + char errbuf[4096]; + char *errpos = errbuf; bool okvar, ret = true; debug_decl(validate_env_vars, SUDOERS_DEBUG_ENV); @@ -1153,9 +1158,12 @@ validate_env_vars(char * const env_vars[]) debug_return_bool(true); /* nothing to do */ /* Add user-specified environment variables. */ - errbuf[0] = '\0'; for (ep = env_vars; *ep != NULL; ep++) { - if (def_secure_path && !user_is_exempt() && + char *eq = strchr(*ep, '='); + if (eq == NULL || eq == *ep) { + /* Must be in the form var=val. */ + okvar = false; + } else if (def_secure_path && !user_is_exempt() && strncmp(*ep, "PATH=", 5) == 0) { okvar = false; } else if (def_env_reset) { @@ -1164,20 +1172,21 @@ validate_env_vars(char * const env_vars[]) okvar = !env_should_delete(*ep); } if (okvar == false) { - /* Not allowed, add to error string, allocating as needed. */ - if ((eq = strchr(*ep, '=')) != NULL) - *eq = '\0'; - if (errbuf[0] != '\0') - (void)strlcat(errbuf, ", ", sizeof(errbuf)); - if (strlcat(errbuf, *ep, sizeof(errbuf)) >= sizeof(errbuf)) { - errbuf[sizeof(errbuf) - 4] = '\0'; - (void)strlcat(errbuf, "...", sizeof(errbuf)); + /* Not allowed, append to error buffer if space remains. */ + if (errpos < &errbuf[sizeof(errbuf)]) { + size_t varlen = strcspn(*ep, "="); + int len = snprintf(errpos, sizeof(errbuf) - (errpos - errbuf), + "%s%.*s", errpos != errbuf ? ", " : "", (int)varlen, *ep); + if (len >= ssizeof(errbuf) - (errpos - errbuf)) { + memcpy(&errbuf[sizeof(errbuf) - 4], "...", 4); + errpos = &errbuf[sizeof(errbuf)]; + } else { + errpos += len; + } } - if (eq != NULL) - *eq = '='; } } - if (errbuf[0] != '\0') { + if (errpos != errbuf) { /* XXX - audit? */ log_warningx(0, N_("sorry, you are not allowed to set the following environment variables: %s"), errbuf); @@ -1269,7 +1278,7 @@ env_file_next_local(void *cookie, int *errnum) val_len = strlen(++val); /* Strip leading and trailing single/double quotes */ - if ((val[0] == '\'' || val[0] == '\"') && val[0] == val[val_len - 1]) { + if ((val[0] == '\'' || val[0] == '\"') && val_len > 1 && val[0] == val[val_len - 1]) { val[val_len - 1] = '\0'; val++; val_len -= 2; diff --git a/plugins/sudoers/gram.c b/plugins/sudoers/gram.c index 1dffb57233..ad8a6b8141 100644 --- a/plugins/sudoers/gram.c +++ b/plugins/sudoers/gram.c @@ -132,6 +132,7 @@ * Globals */ bool sudoers_warnings = true; +bool sudoers_recovery = true; bool sudoers_strict = false; bool parse_error = false; @@ -166,7 +167,7 @@ static struct sudo_command *new_command(char *, char *); static struct command_digest *new_digest(int, char *); static void alias_error(const char *name, int errnum); -#line 164 "gram.c" +#line 165 "gram.c" # ifndef YY_CAST # ifdef __cplusplus @@ -329,7 +330,7 @@ extern int sudoersdebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 87 "gram.y" +#line 88 "gram.y" struct cmndspec *cmndspec; struct defaults *defaults; @@ -344,7 +345,7 @@ union YYSTYPE const char *cstring; int tok; -#line 342 "gram.c" +#line 343 "gram.c" }; typedef union YYSTYPE YYSTYPE; @@ -875,22 +876,22 @@ static const yytype_int8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 201, 201, 204, 207, 208, 211, 214, 217, 226, - 235, 241, 244, 247, 250, 253, 257, 261, 265, 269, - 275, 278, 284, 287, 293, 294, 301, 310, 319, 329, - 339, 351, 352, 357, 363, 380, 384, 390, 399, 407, - 416, 425, 436, 437, 499, 569, 578, 587, 596, 607, - 608, 615, 618, 632, 636, 642, 658, 674, 679, 683, - 688, 693, 698, 703, 707, 712, 715, 720, 736, 747, - 759, 770, 788, 789, 790, 791, 792, 793, 794, 795, - 796, 797, 798, 801, 807, 810, 815, 820, 829, 838, - 850, 857, 864, 871, 878, 887, 890, 893, 896, 899, - 902, 905, 908, 911, 914, 917, 920, 923, 926, 929, - 932, 935, 940, 954, 963, 986, 987, 990, 990, 1002, - 1005, 1006, 1013, 1014, 1017, 1017, 1029, 1032, 1033, 1040, - 1041, 1044, 1044, 1056, 1059, 1060, 1063, 1063, 1075, 1078, - 1079, 1086, 1090, 1096, 1105, 1113, 1122, 1131, 1142, 1143, - 1150, 1154, 1160, 1169, 1177 + 0, 202, 202, 205, 208, 209, 212, 215, 218, 225, + 232, 238, 241, 244, 247, 250, 254, 258, 262, 266, + 272, 275, 281, 284, 290, 291, 298, 307, 316, 326, + 336, 348, 349, 354, 360, 377, 381, 387, 396, 404, + 413, 422, 433, 434, 496, 566, 575, 584, 593, 604, + 605, 612, 615, 629, 633, 639, 655, 671, 676, 680, + 685, 690, 695, 700, 704, 709, 712, 717, 733, 744, + 756, 767, 785, 786, 787, 788, 789, 790, 791, 792, + 793, 794, 795, 798, 804, 807, 812, 817, 826, 835, + 847, 854, 861, 868, 875, 884, 887, 890, 893, 896, + 899, 902, 905, 908, 911, 914, 917, 920, 923, 926, + 929, 932, 937, 951, 960, 983, 984, 987, 987, 999, + 1002, 1003, 1010, 1011, 1014, 1014, 1026, 1029, 1030, 1037, + 1038, 1041, 1041, 1053, 1056, 1057, 1060, 1060, 1072, 1075, + 1076, 1083, 1087, 1093, 1102, 1110, 1119, 1128, 1139, 1140, + 1147, 1151, 1157, 1166, 1174 }; #endif @@ -1648,191 +1649,187 @@ yyparse (void) switch (yyn) { case 2: /* file: %empty */ -#line 201 "gram.y" +#line 202 "gram.y" { ; /* empty file */ } -#line 1650 "gram.c" +#line 1651 "gram.c" break; case 6: /* entry: '\n' */ -#line 211 "gram.y" +#line 212 "gram.y" { ; /* blank line */ } -#line 1658 "gram.c" +#line 1659 "gram.c" break; case 7: /* entry: error '\n' */ -#line 214 "gram.y" +#line 215 "gram.y" { yyerrok; } -#line 1666 "gram.c" +#line 1667 "gram.c" break; case 8: /* entry: include */ -#line 217 "gram.y" +#line 218 "gram.y" { - if (!push_include((yyvsp[0].string), false)) { - parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); - free((yyvsp[0].string)); - YYERROR; - } + const bool success = push_include((yyvsp[0].string), false); parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); free((yyvsp[0].string)); + if (!success && !sudoers_recovery) + YYERROR; } -#line 1680 "gram.c" +#line 1679 "gram.c" break; case 9: /* entry: includedir */ -#line 226 "gram.y" +#line 225 "gram.y" { - if (!push_include((yyvsp[0].string), true)) { - parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); - free((yyvsp[0].string)); - YYERROR; - } + const bool success = push_include((yyvsp[0].string), true); parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); free((yyvsp[0].string)); + if (!success && !sudoers_recovery) + YYERROR; } -#line 1694 "gram.c" +#line 1691 "gram.c" break; case 10: /* entry: userlist privileges '\n' */ -#line 235 "gram.y" +#line 232 "gram.y" { if (!add_userspec((yyvsp[-2].member), (yyvsp[-1].privilege))) { sudoerserror(N_("unable to allocate memory")); YYERROR; } } -#line 1705 "gram.c" +#line 1702 "gram.c" break; case 11: /* entry: USERALIAS useraliases '\n' */ -#line 241 "gram.y" +#line 238 "gram.y" { ; } -#line 1713 "gram.c" +#line 1710 "gram.c" break; case 12: /* entry: HOSTALIAS hostaliases '\n' */ -#line 244 "gram.y" +#line 241 "gram.y" { ; } -#line 1721 "gram.c" +#line 1718 "gram.c" break; case 13: /* entry: CMNDALIAS cmndaliases '\n' */ -#line 247 "gram.y" +#line 244 "gram.y" { ; } -#line 1729 "gram.c" +#line 1726 "gram.c" break; case 14: /* entry: RUNASALIAS runasaliases '\n' */ -#line 250 "gram.y" +#line 247 "gram.y" { ; } -#line 1737 "gram.c" +#line 1734 "gram.c" break; case 15: /* entry: DEFAULTS defaults_list '\n' */ -#line 253 "gram.y" +#line 250 "gram.y" { if (!add_defaults(DEFAULTS, NULL, (yyvsp[-1].defaults))) YYERROR; } -#line 1746 "gram.c" +#line 1743 "gram.c" break; case 16: /* entry: DEFAULTS_USER userlist defaults_list '\n' */ -#line 257 "gram.y" +#line 254 "gram.y" { if (!add_defaults(DEFAULTS_USER, (yyvsp[-2].member), (yyvsp[-1].defaults))) YYERROR; } -#line 1755 "gram.c" +#line 1752 "gram.c" break; case 17: /* entry: DEFAULTS_RUNAS userlist defaults_list '\n' */ -#line 261 "gram.y" +#line 258 "gram.y" { if (!add_defaults(DEFAULTS_RUNAS, (yyvsp[-2].member), (yyvsp[-1].defaults))) YYERROR; } -#line 1764 "gram.c" +#line 1761 "gram.c" break; case 18: /* entry: DEFAULTS_HOST hostlist defaults_list '\n' */ -#line 265 "gram.y" +#line 262 "gram.y" { if (!add_defaults(DEFAULTS_HOST, (yyvsp[-2].member), (yyvsp[-1].defaults))) YYERROR; } -#line 1773 "gram.c" +#line 1770 "gram.c" break; case 19: /* entry: DEFAULTS_CMND cmndlist defaults_list '\n' */ -#line 269 "gram.y" +#line 266 "gram.y" { if (!add_defaults(DEFAULTS_CMND, (yyvsp[-2].member), (yyvsp[-1].defaults))) YYERROR; } -#line 1782 "gram.c" +#line 1779 "gram.c" break; case 20: /* include: INCLUDE WORD '\n' */ -#line 275 "gram.y" +#line 272 "gram.y" { (yyval.string) = (yyvsp[-1].string); } -#line 1790 "gram.c" +#line 1787 "gram.c" break; case 21: /* include: INCLUDE WORD error '\n' */ -#line 278 "gram.y" +#line 275 "gram.y" { yyerrok; (yyval.string) = (yyvsp[-2].string); } -#line 1799 "gram.c" +#line 1796 "gram.c" break; case 22: /* includedir: INCLUDEDIR WORD '\n' */ -#line 284 "gram.y" +#line 281 "gram.y" { (yyval.string) = (yyvsp[-1].string); } -#line 1807 "gram.c" +#line 1804 "gram.c" break; case 23: /* includedir: INCLUDEDIR WORD error '\n' */ -#line 287 "gram.y" +#line 284 "gram.y" { yyerrok; (yyval.string) = (yyvsp[-2].string); } -#line 1816 "gram.c" +#line 1813 "gram.c" break; case 25: /* defaults_list: defaults_list ',' defaults_entry */ -#line 294 "gram.y" +#line 291 "gram.y" { parser_leak_remove(LEAK_DEFAULTS, (yyvsp[0].defaults)); HLTQ_CONCAT((yyvsp[-2].defaults), (yyvsp[0].defaults), entries); (yyval.defaults) = (yyvsp[-2].defaults); } -#line 1826 "gram.c" +#line 1823 "gram.c" break; case 26: /* defaults_entry: DEFVAR */ -#line 301 "gram.y" +#line 298 "gram.y" { (yyval.defaults) = new_default((yyvsp[0].string), NULL, true); if ((yyval.defaults) == NULL) { @@ -1842,11 +1839,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_DEFAULTS, (yyval.defaults)); } -#line 1840 "gram.c" +#line 1837 "gram.c" break; case 27: /* defaults_entry: '!' DEFVAR */ -#line 310 "gram.y" +#line 307 "gram.y" { (yyval.defaults) = new_default((yyvsp[0].string), NULL, false); if ((yyval.defaults) == NULL) { @@ -1856,11 +1853,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_DEFAULTS, (yyval.defaults)); } -#line 1854 "gram.c" +#line 1851 "gram.c" break; case 28: /* defaults_entry: DEFVAR '=' WORD */ -#line 319 "gram.y" +#line 316 "gram.y" { (yyval.defaults) = new_default((yyvsp[-2].string), (yyvsp[0].string), true); if ((yyval.defaults) == NULL) { @@ -1871,11 +1868,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_DEFAULTS, (yyval.defaults)); } -#line 1869 "gram.c" +#line 1866 "gram.c" break; case 29: /* defaults_entry: DEFVAR '+' WORD */ -#line 329 "gram.y" +#line 326 "gram.y" { (yyval.defaults) = new_default((yyvsp[-2].string), (yyvsp[0].string), '+'); if ((yyval.defaults) == NULL) { @@ -1886,11 +1883,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_DEFAULTS, (yyval.defaults)); } -#line 1884 "gram.c" +#line 1881 "gram.c" break; case 30: /* defaults_entry: DEFVAR '-' WORD */ -#line 339 "gram.y" +#line 336 "gram.y" { (yyval.defaults) = new_default((yyvsp[-2].string), (yyvsp[0].string), '-'); if ((yyval.defaults) == NULL) { @@ -1901,30 +1898,30 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_DEFAULTS, (yyval.defaults)); } -#line 1899 "gram.c" +#line 1896 "gram.c" break; case 32: /* privileges: privileges ':' privilege */ -#line 352 "gram.y" +#line 349 "gram.y" { parser_leak_remove(LEAK_PRIVILEGE, (yyvsp[0].privilege)); HLTQ_CONCAT((yyvsp[-2].privilege), (yyvsp[0].privilege), entries); (yyval.privilege) = (yyvsp[-2].privilege); } -#line 1909 "gram.c" +#line 1906 "gram.c" break; case 33: /* privileges: privileges ':' error */ -#line 357 "gram.y" +#line 354 "gram.y" { yyerrok; (yyval.privilege) = (yyvsp[-2].privilege); } -#line 1918 "gram.c" +#line 1915 "gram.c" break; case 34: /* privilege: hostlist '=' cmndspeclist */ -#line 363 "gram.y" +#line 360 "gram.y" { struct privilege *p = calloc(1, sizeof(*p)); if (p == NULL) { @@ -1940,29 +1937,29 @@ yyparse (void) HLTQ_INIT(p, entries); (yyval.privilege) = p; } -#line 1938 "gram.c" +#line 1935 "gram.c" break; case 35: /* ophost: host */ -#line 380 "gram.y" +#line 377 "gram.y" { (yyval.member) = (yyvsp[0].member); (yyval.member)->negated = false; } -#line 1947 "gram.c" +#line 1944 "gram.c" break; case 36: /* ophost: '!' host */ -#line 384 "gram.y" +#line 381 "gram.y" { (yyval.member) = (yyvsp[0].member); (yyval.member)->negated = true; } -#line 1956 "gram.c" +#line 1953 "gram.c" break; case 37: /* host: ALIAS */ -#line 390 "gram.y" +#line 387 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), ALIAS); if ((yyval.member) == NULL) { @@ -1972,11 +1969,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 1970 "gram.c" +#line 1967 "gram.c" break; case 38: /* host: ALL */ -#line 399 "gram.y" +#line 396 "gram.y" { (yyval.member) = new_member(NULL, ALL); if ((yyval.member) == NULL) { @@ -1985,11 +1982,11 @@ yyparse (void) } parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 1983 "gram.c" +#line 1980 "gram.c" break; case 39: /* host: NETGROUP */ -#line 407 "gram.y" +#line 404 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), NETGROUP); if ((yyval.member) == NULL) { @@ -1999,11 +1996,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 1997 "gram.c" +#line 1994 "gram.c" break; case 40: /* host: NTWKADDR */ -#line 416 "gram.y" +#line 413 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), NTWKADDR); if ((yyval.member) == NULL) { @@ -2013,11 +2010,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 2011 "gram.c" +#line 2008 "gram.c" break; case 41: /* host: WORD */ -#line 425 "gram.y" +#line 422 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), WORD); if ((yyval.member) == NULL) { @@ -2027,11 +2024,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 2025 "gram.c" +#line 2022 "gram.c" break; case 43: /* cmndspeclist: cmndspeclist ',' cmndspec */ -#line 437 "gram.y" +#line 434 "gram.y" { struct cmndspec *prev; prev = HLTQ_LAST((yyvsp[-2].cmndspec), cmndspec, entries); @@ -2092,11 +2089,11 @@ yyparse (void) } (yyval.cmndspec) = (yyvsp[-2].cmndspec); } -#line 2090 "gram.c" +#line 2087 "gram.c" break; case 44: /* cmndspec: runasspec options cmndtag digcmnd */ -#line 499 "gram.y" +#line 496 "gram.y" { struct cmndspec *cs = calloc(1, sizeof(*cs)); if (cs == NULL) { @@ -2165,11 +2162,11 @@ yyparse (void) cs->tags.setenv = IMPLIED; (yyval.cmndspec) = cs; } -#line 2163 "gram.c" +#line 2160 "gram.c" break; case 45: /* digestspec: SHA224_TOK ':' DIGEST */ -#line 569 "gram.y" +#line 566 "gram.y" { (yyval.digest) = new_digest(SUDO_DIGEST_SHA224, (yyvsp[0].string)); if ((yyval.digest) == NULL) { @@ -2179,11 +2176,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_DIGEST, (yyval.digest)); } -#line 2177 "gram.c" +#line 2174 "gram.c" break; case 46: /* digestspec: SHA256_TOK ':' DIGEST */ -#line 578 "gram.y" +#line 575 "gram.y" { (yyval.digest) = new_digest(SUDO_DIGEST_SHA256, (yyvsp[0].string)); if ((yyval.digest) == NULL) { @@ -2193,11 +2190,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_DIGEST, (yyval.digest)); } -#line 2191 "gram.c" +#line 2188 "gram.c" break; case 47: /* digestspec: SHA384_TOK ':' DIGEST */ -#line 587 "gram.y" +#line 584 "gram.y" { (yyval.digest) = new_digest(SUDO_DIGEST_SHA384, (yyvsp[0].string)); if ((yyval.digest) == NULL) { @@ -2207,11 +2204,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_DIGEST, (yyval.digest)); } -#line 2205 "gram.c" +#line 2202 "gram.c" break; case 48: /* digestspec: SHA512_TOK ':' DIGEST */ -#line 596 "gram.y" +#line 593 "gram.y" { (yyval.digest) = new_digest(SUDO_DIGEST_SHA512, (yyvsp[0].string)); if ((yyval.digest) == NULL) { @@ -2221,29 +2218,29 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_DIGEST, (yyval.digest)); } -#line 2219 "gram.c" +#line 2216 "gram.c" break; case 50: /* digestlist: digestlist ',' digestspec */ -#line 608 "gram.y" +#line 605 "gram.y" { parser_leak_remove(LEAK_DIGEST, (yyvsp[0].digest)); HLTQ_CONCAT((yyvsp[-2].digest), (yyvsp[0].digest), entries); (yyval.digest) = (yyvsp[-2].digest); } -#line 2229 "gram.c" +#line 2226 "gram.c" break; case 51: /* digcmnd: opcmnd */ -#line 615 "gram.y" +#line 612 "gram.y" { (yyval.member) = (yyvsp[0].member); } -#line 2237 "gram.c" +#line 2234 "gram.c" break; case 52: /* digcmnd: digestlist opcmnd */ -#line 618 "gram.y" +#line 615 "gram.y" { struct sudo_command *c = (struct sudo_command *) (yyvsp[0].member)->name; @@ -2256,29 +2253,29 @@ yyparse (void) HLTQ_TO_TAILQ(&c->digests, (yyvsp[-1].digest), entries); (yyval.member) = (yyvsp[0].member); } -#line 2254 "gram.c" +#line 2251 "gram.c" break; case 53: /* opcmnd: cmnd */ -#line 632 "gram.y" +#line 629 "gram.y" { (yyval.member) = (yyvsp[0].member); (yyval.member)->negated = false; } -#line 2263 "gram.c" +#line 2260 "gram.c" break; case 54: /* opcmnd: '!' cmnd */ -#line 636 "gram.y" +#line 633 "gram.y" { (yyval.member) = (yyvsp[0].member); (yyval.member)->negated = true; } -#line 2272 "gram.c" +#line 2269 "gram.c" break; case 55: /* chdirspec: CWD '=' WORD */ -#line 642 "gram.y" +#line 639 "gram.y" { if ((yyvsp[0].string)[0] != '/' && (yyvsp[0].string)[0] != '~') { if (strcmp((yyvsp[0].string), "*") != 0) { @@ -2293,11 +2290,11 @@ yyparse (void) } (yyval.string) = (yyvsp[0].string); } -#line 2291 "gram.c" +#line 2288 "gram.c" break; case 56: /* chrootspec: CHROOT '=' WORD */ -#line 658 "gram.y" +#line 655 "gram.y" { if ((yyvsp[0].string)[0] != '/' && (yyvsp[0].string)[0] != '~') { if (strcmp((yyvsp[0].string), "*") != 0) { @@ -2312,91 +2309,91 @@ yyparse (void) } (yyval.string) = (yyvsp[0].string); } -#line 2310 "gram.c" +#line 2307 "gram.c" break; case 57: /* timeoutspec: CMND_TIMEOUT '=' WORD */ -#line 674 "gram.y" +#line 671 "gram.y" { (yyval.string) = (yyvsp[0].string); } -#line 2318 "gram.c" +#line 2315 "gram.c" break; case 58: /* notbeforespec: NOTBEFORE '=' WORD */ -#line 679 "gram.y" +#line 676 "gram.y" { (yyval.string) = (yyvsp[0].string); } -#line 2326 "gram.c" +#line 2323 "gram.c" break; case 59: /* notafterspec: NOTAFTER '=' WORD */ -#line 683 "gram.y" +#line 680 "gram.y" { (yyval.string) = (yyvsp[0].string); } -#line 2334 "gram.c" +#line 2331 "gram.c" break; case 60: /* rolespec: ROLE '=' WORD */ -#line 688 "gram.y" +#line 685 "gram.y" { (yyval.string) = (yyvsp[0].string); } -#line 2342 "gram.c" +#line 2339 "gram.c" break; case 61: /* typespec: TYPE '=' WORD */ -#line 693 "gram.y" +#line 690 "gram.y" { (yyval.string) = (yyvsp[0].string); } -#line 2350 "gram.c" +#line 2347 "gram.c" break; case 62: /* apparmor_profilespec: APPARMOR_PROFILE '=' WORD */ -#line 698 "gram.y" +#line 695 "gram.y" { (yyval.string) = (yyvsp[0].string); } -#line 2358 "gram.c" +#line 2355 "gram.c" break; case 63: /* privsspec: PRIVS '=' WORD */ -#line 703 "gram.y" +#line 700 "gram.y" { (yyval.string) = (yyvsp[0].string); } -#line 2366 "gram.c" +#line 2363 "gram.c" break; case 64: /* limitprivsspec: LIMITPRIVS '=' WORD */ -#line 707 "gram.y" +#line 704 "gram.y" { (yyval.string) = (yyvsp[0].string); } -#line 2374 "gram.c" +#line 2371 "gram.c" break; case 65: /* runasspec: %empty */ -#line 712 "gram.y" +#line 709 "gram.y" { (yyval.runas) = NULL; } -#line 2382 "gram.c" +#line 2379 "gram.c" break; case 66: /* runasspec: '(' runaslist ')' */ -#line 715 "gram.y" +#line 712 "gram.y" { (yyval.runas) = (yyvsp[-1].runas); } -#line 2390 "gram.c" +#line 2387 "gram.c" break; case 67: /* runaslist: %empty */ -#line 720 "gram.y" +#line 717 "gram.y" { (yyval.runas) = calloc(1, sizeof(struct runascontainer)); if ((yyval.runas) != NULL) { @@ -2413,11 +2410,11 @@ yyparse (void) } parser_leak_add(LEAK_RUNAS, (yyval.runas)); } -#line 2411 "gram.c" +#line 2408 "gram.c" break; case 68: /* runaslist: userlist */ -#line 736 "gram.y" +#line 733 "gram.y" { (yyval.runas) = calloc(1, sizeof(struct runascontainer)); if ((yyval.runas) == NULL) { @@ -2429,11 +2426,11 @@ yyparse (void) (yyval.runas)->runasusers = (yyvsp[0].member); /* $$->runasgroups = NULL; */ } -#line 2427 "gram.c" +#line 2424 "gram.c" break; case 69: /* runaslist: userlist ':' grouplist */ -#line 747 "gram.y" +#line 744 "gram.y" { (yyval.runas) = calloc(1, sizeof(struct runascontainer)); if ((yyval.runas) == NULL) { @@ -2446,11 +2443,11 @@ yyparse (void) (yyval.runas)->runasusers = (yyvsp[-2].member); (yyval.runas)->runasgroups = (yyvsp[0].member); } -#line 2444 "gram.c" +#line 2441 "gram.c" break; case 70: /* runaslist: ':' grouplist */ -#line 759 "gram.y" +#line 756 "gram.y" { (yyval.runas) = calloc(1, sizeof(struct runascontainer)); if ((yyval.runas) == NULL) { @@ -2462,11 +2459,11 @@ yyparse (void) /* $$->runasusers = NULL; */ (yyval.runas)->runasgroups = (yyvsp[0].member); } -#line 2460 "gram.c" +#line 2457 "gram.c" break; case 71: /* runaslist: ':' */ -#line 770 "gram.y" +#line 767 "gram.y" { (yyval.runas) = calloc(1, sizeof(struct runascontainer)); if ((yyval.runas) != NULL) { @@ -2483,114 +2480,114 @@ yyparse (void) } parser_leak_add(LEAK_RUNAS, (yyval.runas)); } -#line 2481 "gram.c" +#line 2478 "gram.c" break; case 72: /* reserved_word: ALL */ -#line 788 "gram.y" +#line 785 "gram.y" { (yyval.cstring) = "ALL"; } -#line 2487 "gram.c" +#line 2484 "gram.c" break; case 73: /* reserved_word: CHROOT */ -#line 789 "gram.y" +#line 786 "gram.y" { (yyval.cstring) = "CHROOT"; } -#line 2493 "gram.c" +#line 2490 "gram.c" break; case 74: /* reserved_word: CWD */ -#line 790 "gram.y" +#line 787 "gram.y" { (yyval.cstring) = "CWD"; } -#line 2499 "gram.c" +#line 2496 "gram.c" break; case 75: /* reserved_word: CMND_TIMEOUT */ -#line 791 "gram.y" +#line 788 "gram.y" { (yyval.cstring) = "CMND_TIMEOUT"; } -#line 2505 "gram.c" +#line 2502 "gram.c" break; case 76: /* reserved_word: NOTBEFORE */ -#line 792 "gram.y" +#line 789 "gram.y" { (yyval.cstring) = "NOTBEFORE"; } -#line 2511 "gram.c" +#line 2508 "gram.c" break; case 77: /* reserved_word: NOTAFTER */ -#line 793 "gram.y" +#line 790 "gram.y" { (yyval.cstring) = "NOTAFTER"; } -#line 2517 "gram.c" +#line 2514 "gram.c" break; case 78: /* reserved_word: ROLE */ -#line 794 "gram.y" +#line 791 "gram.y" { (yyval.cstring) = "ROLE"; } -#line 2523 "gram.c" +#line 2520 "gram.c" break; case 79: /* reserved_word: TYPE */ -#line 795 "gram.y" +#line 792 "gram.y" { (yyval.cstring) = "TYPE"; } -#line 2529 "gram.c" +#line 2526 "gram.c" break; case 80: /* reserved_word: PRIVS */ -#line 796 "gram.y" +#line 793 "gram.y" { (yyval.cstring) = "PRIVS"; } -#line 2535 "gram.c" +#line 2532 "gram.c" break; case 81: /* reserved_word: LIMITPRIVS */ -#line 797 "gram.y" +#line 794 "gram.y" { (yyval.cstring) = "LIMITPRIVS"; } -#line 2541 "gram.c" +#line 2538 "gram.c" break; case 82: /* reserved_word: APPARMOR_PROFILE */ -#line 798 "gram.y" +#line 795 "gram.y" { (yyval.cstring) = "APPARMOR_PROFILE"; } -#line 2547 "gram.c" +#line 2544 "gram.c" break; case 83: /* reserved_alias: reserved_word */ -#line 801 "gram.y" +#line 798 "gram.y" { sudoerserrorf(U_("syntax error, reserved word %s used as an alias name"), (yyvsp[0].cstring)); YYERROR; } -#line 2556 "gram.c" +#line 2553 "gram.c" break; case 84: /* options: %empty */ -#line 807 "gram.y" +#line 804 "gram.y" { init_options(&(yyval.options)); } -#line 2564 "gram.c" +#line 2561 "gram.c" break; case 85: /* options: options chdirspec */ -#line 810 "gram.y" +#line 807 "gram.y" { parser_leak_remove(LEAK_PTR, (yyval.options).runcwd); free((yyval.options).runcwd); (yyval.options).runcwd = (yyvsp[0].string); } -#line 2574 "gram.c" +#line 2571 "gram.c" break; case 86: /* options: options chrootspec */ -#line 815 "gram.y" +#line 812 "gram.y" { parser_leak_remove(LEAK_PTR, (yyval.options).runchroot); free((yyval.options).runchroot); (yyval.options).runchroot = (yyvsp[0].string); } -#line 2584 "gram.c" +#line 2581 "gram.c" break; case 87: /* options: options notbeforespec */ -#line 820 "gram.y" +#line 817 "gram.y" { (yyval.options).notbefore = parse_gentime((yyvsp[0].string)); parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); @@ -2600,11 +2597,11 @@ yyparse (void) YYERROR; } } -#line 2598 "gram.c" +#line 2595 "gram.c" break; case 88: /* options: options notafterspec */ -#line 829 "gram.y" +#line 826 "gram.y" { (yyval.options).notafter = parse_gentime((yyvsp[0].string)); parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); @@ -2614,11 +2611,11 @@ yyparse (void) YYERROR; } } -#line 2612 "gram.c" +#line 2609 "gram.c" break; case 89: /* options: options timeoutspec */ -#line 838 "gram.y" +#line 835 "gram.y" { (yyval.options).timeout = parse_timeout((yyvsp[0].string)); parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); @@ -2631,11 +2628,11 @@ yyparse (void) YYERROR; } } -#line 2629 "gram.c" +#line 2626 "gram.c" break; case 90: /* options: options rolespec */ -#line 850 "gram.y" +#line 847 "gram.y" { #ifdef HAVE_SELINUX parser_leak_remove(LEAK_PTR, (yyval.options).role); @@ -2643,11 +2640,11 @@ yyparse (void) (yyval.options).role = (yyvsp[0].string); #endif } -#line 2641 "gram.c" +#line 2638 "gram.c" break; case 91: /* options: options typespec */ -#line 857 "gram.y" +#line 854 "gram.y" { #ifdef HAVE_SELINUX parser_leak_remove(LEAK_PTR, (yyval.options).type); @@ -2655,11 +2652,11 @@ yyparse (void) (yyval.options).type = (yyvsp[0].string); #endif } -#line 2653 "gram.c" +#line 2650 "gram.c" break; case 92: /* options: options apparmor_profilespec */ -#line 864 "gram.y" +#line 861 "gram.y" { #ifdef HAVE_APPARMOR parser_leak_remove(LEAK_PTR, (yyval.options).apparmor_profile); @@ -2667,11 +2664,11 @@ yyparse (void) (yyval.options).apparmor_profile = (yyvsp[0].string); #endif } -#line 2665 "gram.c" +#line 2662 "gram.c" break; case 93: /* options: options privsspec */ -#line 871 "gram.y" +#line 868 "gram.y" { #ifdef HAVE_PRIV_SET parser_leak_remove(LEAK_PTR, (yyval.options).privs); @@ -2679,11 +2676,11 @@ yyparse (void) (yyval.options).privs = (yyvsp[0].string); #endif } -#line 2677 "gram.c" +#line 2674 "gram.c" break; case 94: /* options: options limitprivsspec */ -#line 878 "gram.y" +#line 875 "gram.y" { #ifdef HAVE_PRIV_SET parser_leak_remove(LEAK_PTR, (yyval.options).limitprivs); @@ -2691,147 +2688,147 @@ yyparse (void) (yyval.options).limitprivs = (yyvsp[0].string); #endif } -#line 2689 "gram.c" +#line 2686 "gram.c" break; case 95: /* cmndtag: %empty */ -#line 887 "gram.y" +#line 884 "gram.y" { TAGS_INIT(&(yyval.tag)); } -#line 2697 "gram.c" +#line 2694 "gram.c" break; case 96: /* cmndtag: cmndtag NOPASSWD */ -#line 890 "gram.y" +#line 887 "gram.y" { (yyval.tag).nopasswd = true; } -#line 2705 "gram.c" +#line 2702 "gram.c" break; case 97: /* cmndtag: cmndtag PASSWD */ -#line 893 "gram.y" +#line 890 "gram.y" { (yyval.tag).nopasswd = false; } -#line 2713 "gram.c" +#line 2710 "gram.c" break; case 98: /* cmndtag: cmndtag NOEXEC */ -#line 896 "gram.y" +#line 893 "gram.y" { (yyval.tag).noexec = true; } -#line 2721 "gram.c" +#line 2718 "gram.c" break; case 99: /* cmndtag: cmndtag EXEC */ -#line 899 "gram.y" +#line 896 "gram.y" { (yyval.tag).noexec = false; } -#line 2729 "gram.c" +#line 2726 "gram.c" break; case 100: /* cmndtag: cmndtag INTERCEPT */ -#line 902 "gram.y" +#line 899 "gram.y" { (yyval.tag).intercept = true; } -#line 2737 "gram.c" +#line 2734 "gram.c" break; case 101: /* cmndtag: cmndtag NOINTERCEPT */ -#line 905 "gram.y" +#line 902 "gram.y" { (yyval.tag).intercept = false; } -#line 2745 "gram.c" +#line 2742 "gram.c" break; case 102: /* cmndtag: cmndtag SETENV */ -#line 908 "gram.y" +#line 905 "gram.y" { (yyval.tag).setenv = true; } -#line 2753 "gram.c" +#line 2750 "gram.c" break; case 103: /* cmndtag: cmndtag NOSETENV */ -#line 911 "gram.y" +#line 908 "gram.y" { (yyval.tag).setenv = false; } -#line 2761 "gram.c" +#line 2758 "gram.c" break; case 104: /* cmndtag: cmndtag LOG_INPUT */ -#line 914 "gram.y" +#line 911 "gram.y" { (yyval.tag).log_input = true; } -#line 2769 "gram.c" +#line 2766 "gram.c" break; case 105: /* cmndtag: cmndtag NOLOG_INPUT */ -#line 917 "gram.y" +#line 914 "gram.y" { (yyval.tag).log_input = false; } -#line 2777 "gram.c" +#line 2774 "gram.c" break; case 106: /* cmndtag: cmndtag LOG_OUTPUT */ -#line 920 "gram.y" +#line 917 "gram.y" { (yyval.tag).log_output = true; } -#line 2785 "gram.c" +#line 2782 "gram.c" break; case 107: /* cmndtag: cmndtag NOLOG_OUTPUT */ -#line 923 "gram.y" +#line 920 "gram.y" { (yyval.tag).log_output = false; } -#line 2793 "gram.c" +#line 2790 "gram.c" break; case 108: /* cmndtag: cmndtag FOLLOWLNK */ -#line 926 "gram.y" +#line 923 "gram.y" { (yyval.tag).follow = true; } -#line 2801 "gram.c" +#line 2798 "gram.c" break; case 109: /* cmndtag: cmndtag NOFOLLOWLNK */ -#line 929 "gram.y" +#line 926 "gram.y" { (yyval.tag).follow = false; } -#line 2809 "gram.c" +#line 2806 "gram.c" break; case 110: /* cmndtag: cmndtag MAIL */ -#line 932 "gram.y" +#line 929 "gram.y" { (yyval.tag).send_mail = true; } -#line 2817 "gram.c" +#line 2814 "gram.c" break; case 111: /* cmndtag: cmndtag NOMAIL */ -#line 935 "gram.y" +#line 932 "gram.y" { (yyval.tag).send_mail = false; } -#line 2825 "gram.c" +#line 2822 "gram.c" break; case 112: /* cmnd: ALL */ -#line 940 "gram.y" +#line 937 "gram.y" { struct sudo_command *c; @@ -2846,11 +2843,11 @@ yyparse (void) } parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 2844 "gram.c" +#line 2841 "gram.c" break; case 113: /* cmnd: ALIAS */ -#line 954 "gram.y" +#line 951 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), ALIAS); if ((yyval.member) == NULL) { @@ -2860,11 +2857,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 2858 "gram.c" +#line 2855 "gram.c" break; case 114: /* cmnd: COMMAND */ -#line 963 "gram.y" +#line 960 "gram.y" { struct sudo_command *c; @@ -2886,20 +2883,20 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].command).args); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 2884 "gram.c" +#line 2881 "gram.c" break; case 117: /* $@1: %empty */ -#line 990 "gram.y" +#line 987 "gram.y" { alias_line = this_lineno; alias_column = sudolinebuf.toke_start + 1; } -#line 2893 "gram.c" +#line 2890 "gram.c" break; case 118: /* hostalias: ALIAS $@1 '=' hostlist */ -#line 993 "gram.y" +#line 990 "gram.y" { if (!alias_add(&parsed_policy, (yyvsp[-3].string), HOSTALIAS, sudoers, alias_line, alias_column, (yyvsp[0].member))) { @@ -2909,30 +2906,30 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[-3].string)); parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member)); } -#line 2907 "gram.c" +#line 2904 "gram.c" break; case 121: /* hostlist: hostlist ',' ophost */ -#line 1006 "gram.y" +#line 1003 "gram.y" { parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member)); HLTQ_CONCAT((yyvsp[-2].member), (yyvsp[0].member), entries); (yyval.member) = (yyvsp[-2].member); } -#line 2917 "gram.c" +#line 2914 "gram.c" break; case 124: /* $@2: %empty */ -#line 1017 "gram.y" +#line 1014 "gram.y" { alias_line = this_lineno; alias_column = sudolinebuf.toke_start + 1; } -#line 2926 "gram.c" +#line 2923 "gram.c" break; case 125: /* cmndalias: ALIAS $@2 '=' cmndlist */ -#line 1020 "gram.y" +#line 1017 "gram.y" { if (!alias_add(&parsed_policy, (yyvsp[-3].string), CMNDALIAS, sudoers, alias_line, alias_column, (yyvsp[0].member))) { @@ -2942,30 +2939,30 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[-3].string)); parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member)); } -#line 2940 "gram.c" +#line 2937 "gram.c" break; case 128: /* cmndlist: cmndlist ',' digcmnd */ -#line 1033 "gram.y" +#line 1030 "gram.y" { parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member)); HLTQ_CONCAT((yyvsp[-2].member), (yyvsp[0].member), entries); (yyval.member) = (yyvsp[-2].member); } -#line 2950 "gram.c" +#line 2947 "gram.c" break; case 131: /* $@3: %empty */ -#line 1044 "gram.y" +#line 1041 "gram.y" { alias_line = this_lineno; alias_column = sudolinebuf.toke_start + 1; } -#line 2959 "gram.c" +#line 2956 "gram.c" break; case 132: /* runasalias: ALIAS $@3 '=' userlist */ -#line 1047 "gram.y" +#line 1044 "gram.y" { if (!alias_add(&parsed_policy, (yyvsp[-3].string), RUNASALIAS, sudoers, alias_line, alias_column, (yyvsp[0].member))) { @@ -2975,20 +2972,20 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[-3].string)); parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member)); } -#line 2973 "gram.c" +#line 2970 "gram.c" break; case 136: /* $@4: %empty */ -#line 1063 "gram.y" +#line 1060 "gram.y" { alias_line = this_lineno; alias_column = sudolinebuf.toke_start + 1; } -#line 2982 "gram.c" +#line 2979 "gram.c" break; case 137: /* useralias: ALIAS $@4 '=' userlist */ -#line 1066 "gram.y" +#line 1063 "gram.y" { if (!alias_add(&parsed_policy, (yyvsp[-3].string), USERALIAS, sudoers, alias_line, alias_column, (yyvsp[0].member))) { @@ -2998,39 +2995,39 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[-3].string)); parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member)); } -#line 2996 "gram.c" +#line 2993 "gram.c" break; case 140: /* userlist: userlist ',' opuser */ -#line 1079 "gram.y" +#line 1076 "gram.y" { parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member)); HLTQ_CONCAT((yyvsp[-2].member), (yyvsp[0].member), entries); (yyval.member) = (yyvsp[-2].member); } -#line 3006 "gram.c" +#line 3003 "gram.c" break; case 141: /* opuser: user */ -#line 1086 "gram.y" +#line 1083 "gram.y" { (yyval.member) = (yyvsp[0].member); (yyval.member)->negated = false; } -#line 3015 "gram.c" +#line 3012 "gram.c" break; case 142: /* opuser: '!' user */ -#line 1090 "gram.y" +#line 1087 "gram.y" { (yyval.member) = (yyvsp[0].member); (yyval.member)->negated = true; } -#line 3024 "gram.c" +#line 3021 "gram.c" break; case 143: /* user: ALIAS */ -#line 1096 "gram.y" +#line 1093 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), ALIAS); if ((yyval.member) == NULL) { @@ -3040,11 +3037,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 3038 "gram.c" +#line 3035 "gram.c" break; case 144: /* user: ALL */ -#line 1105 "gram.y" +#line 1102 "gram.y" { (yyval.member) = new_member(NULL, ALL); if ((yyval.member) == NULL) { @@ -3053,11 +3050,11 @@ yyparse (void) } parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 3051 "gram.c" +#line 3048 "gram.c" break; case 145: /* user: NETGROUP */ -#line 1113 "gram.y" +#line 1110 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), NETGROUP); if ((yyval.member) == NULL) { @@ -3067,11 +3064,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 3065 "gram.c" +#line 3062 "gram.c" break; case 146: /* user: USERGROUP */ -#line 1122 "gram.y" +#line 1119 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), USERGROUP); if ((yyval.member) == NULL) { @@ -3081,11 +3078,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 3079 "gram.c" +#line 3076 "gram.c" break; case 147: /* user: WORD */ -#line 1131 "gram.y" +#line 1128 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), WORD); if ((yyval.member) == NULL) { @@ -3095,39 +3092,39 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 3093 "gram.c" +#line 3090 "gram.c" break; case 149: /* grouplist: grouplist ',' opgroup */ -#line 1143 "gram.y" +#line 1140 "gram.y" { parser_leak_remove(LEAK_MEMBER, (yyvsp[0].member)); HLTQ_CONCAT((yyvsp[-2].member), (yyvsp[0].member), entries); (yyval.member) = (yyvsp[-2].member); } -#line 3103 "gram.c" +#line 3100 "gram.c" break; case 150: /* opgroup: group */ -#line 1150 "gram.y" +#line 1147 "gram.y" { (yyval.member) = (yyvsp[0].member); (yyval.member)->negated = false; } -#line 3112 "gram.c" +#line 3109 "gram.c" break; case 151: /* opgroup: '!' group */ -#line 1154 "gram.y" +#line 1151 "gram.y" { (yyval.member) = (yyvsp[0].member); (yyval.member)->negated = true; } -#line 3121 "gram.c" +#line 3118 "gram.c" break; case 152: /* group: ALIAS */ -#line 1160 "gram.y" +#line 1157 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), ALIAS); if ((yyval.member) == NULL) { @@ -3137,11 +3134,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 3135 "gram.c" +#line 3132 "gram.c" break; case 153: /* group: ALL */ -#line 1169 "gram.y" +#line 1166 "gram.y" { (yyval.member) = new_member(NULL, ALL); if ((yyval.member) == NULL) { @@ -3150,11 +3147,11 @@ yyparse (void) } parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 3148 "gram.c" +#line 3145 "gram.c" break; case 154: /* group: WORD */ -#line 1177 "gram.y" +#line 1174 "gram.y" { (yyval.member) = new_member((yyvsp[0].string), WORD); if ((yyval.member) == NULL) { @@ -3164,11 +3161,11 @@ yyparse (void) parser_leak_remove(LEAK_PTR, (yyvsp[0].string)); parser_leak_add(LEAK_MEMBER, (yyval.member)); } -#line 3162 "gram.c" +#line 3159 "gram.c" break; -#line 3166 "gram.c" +#line 3163 "gram.c" default: break; } @@ -3361,7 +3358,7 @@ yyparse (void) return yyresult; } -#line 1187 "gram.y" +#line 1184 "gram.y" /* Like yyerror() but takes a printf-style format string. */ void diff --git a/plugins/sudoers/gram.h b/plugins/sudoers/gram.h index 0319ce1644..9ef6f81aeb 100644 --- a/plugins/sudoers/gram.h +++ b/plugins/sudoers/gram.h @@ -173,7 +173,7 @@ extern int sudoersdebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 87 "gram.y" +#line 88 "gram.y" struct cmndspec *cmndspec; struct defaults *defaults; @@ -188,7 +188,7 @@ union YYSTYPE const char *cstring; int tok; -#line 192 "y.tab.h" +#line 192 "gram.h" }; typedef union YYSTYPE YYSTYPE; diff --git a/plugins/sudoers/gram.y b/plugins/sudoers/gram.y index 2ac370918f..1ea2a9735a 100644 --- a/plugins/sudoers/gram.y +++ b/plugins/sudoers/gram.y @@ -49,6 +49,7 @@ * Globals */ bool sudoers_warnings = true; +bool sudoers_recovery = true; bool sudoers_strict = false; bool parse_error = false; @@ -215,22 +216,18 @@ entry : '\n' { yyerrok; } | include { - if (!push_include($1, false)) { - parser_leak_remove(LEAK_PTR, $1); - free($1); - YYERROR; - } + const bool success = push_include($1, false); parser_leak_remove(LEAK_PTR, $1); free($1); + if (!success && !sudoers_recovery) + YYERROR; } | includedir { - if (!push_include($1, true)) { - parser_leak_remove(LEAK_PTR, $1); - free($1); - YYERROR; - } + const bool success = push_include($1, true); parser_leak_remove(LEAK_PTR, $1); free($1); + if (!success && !sudoers_recovery) + YYERROR; } | userlist privileges '\n' { if (!add_userspec($1, $2)) { diff --git a/plugins/sudoers/group_plugin.c b/plugins/sudoers/group_plugin.c index 72a35b6ef5..cf46f72089 100644 --- a/plugins/sudoers/group_plugin.c +++ b/plugins/sudoers/group_plugin.c @@ -45,11 +45,12 @@ const char *path_plugin_dir = _PATH_SUDO_PLUGIN_DIR; * Returns true on success, rewriting path and filling in sb, else false. */ static bool -group_plugin_fallback(char *path, size_t pathsize, struct stat *sb) +group_plugin_fallback(char *path, size_t pathsize) { #if defined(__LP64__) char newpath[PATH_MAX]; bool ret = false; + struct stat sb; int len; debug_decl(group_plugin_fallback, SUDOERS_DEBUG_UTIL); @@ -109,7 +110,7 @@ group_plugin_fallback(char *path, size_t pathsize, struct stat *sb) errno = ENAMETOOLONG; goto done; } - if (stat(newpath, sb) == -1) { + if (stat(newpath, &sb) == -1) { goto done; } if (strlcpy(path, newpath, pathsize) >= pathsize) { @@ -132,7 +133,6 @@ group_plugin_fallback(char *path, size_t pathsize, struct stat *sb) int group_plugin_load(const char *plugin_info) { - struct stat sb; char *args, path[PATH_MAX]; char **argv = NULL; int len, rc = -1; @@ -157,30 +157,14 @@ group_plugin_load(const char *plugin_info) (*plugin_info != '/') ? path_plugin_dir : "", plugin_info); goto done; } - if (stat(path, &sb) != 0) { - sudo_warn("%s", path); - goto done; - } for (;;) { - if (!sudo_conf_developer_mode()) { - /* Check owner and mode of plugin path. */ - if (sb.st_uid != ROOT_UID) { - sudo_warnx(U_("%s must be owned by uid %d"), path, ROOT_UID); - goto done; - } - if ((sb.st_mode & (S_IWGRP|S_IWOTH)) != 0) { - sudo_warnx(U_("%s must only be writable by owner"), path); - goto done; - } - } - group_handle = sudo_dso_load(path, SUDO_DSO_LAZY|SUDO_DSO_GLOBAL); if (group_handle != NULL) { break; } - if (!retry || !group_plugin_fallback(path, sizeof(path), &sb)) { + if (!retry || !group_plugin_fallback(path, sizeof(path))) { const char *errstr = sudo_dso_strerror(); sudo_warnx(U_("unable to load %s: %s"), path, errstr ? errstr : "unknown error"); diff --git a/plugins/sudoers/iolog.c b/plugins/sudoers/iolog.c index fc1bc7d116..ec93698f43 100644 --- a/plugins/sudoers/iolog.c +++ b/plugins/sudoers/iolog.c @@ -787,10 +787,8 @@ sudoers_io_open(unsigned int version, sudo_conv_t conversation, } } - if (!sudoers_debug_register(plugin_path, &debug_files)) { - ret = -1; + if (!sudoers_debug_register(plugin_path, &debug_files)) goto done; - } /* If we have no command (because -V was specified) just return. */ if (argc == 0) diff --git a/plugins/sudoers/ldap.c b/plugins/sudoers/ldap.c index 6f81883d67..90aa35eaea 100644 --- a/plugins/sudoers/ldap.c +++ b/plugins/sudoers/ldap.c @@ -204,7 +204,7 @@ static int sudo_ldap_init(LDAP **ldp, const char *host, int port) { LDAP *ld; - int ret = LDAP_CONNECT_ERROR; + int ret; debug_decl(sudo_ldap_init, SUDOERS_DEBUG_LDAP); #ifdef HAVE_LDAPSSL_INIT @@ -281,8 +281,10 @@ sudo_ldap_init(LDAP **ldp, const char *host, int port) ret = ldap_set_option(ld, LDAP_OPT_HOST_NAME, host); #else DPRINTF2("ldap_init(%s, %d)", host, port); - if ((ld = ldap_init((char *)host, port)) == NULL) + if ((ld = ldap_init((char *)host, port)) == NULL) { + ret = LDAP_LOCAL_ERROR; goto done; + } ret = LDAP_SUCCESS; #endif } @@ -1874,9 +1876,9 @@ sudo_ldap_result_add_entry(struct ldap_result *lres, LDAPMessage *entry) last = sudo_ldap_result_last_search(lres); if (last != NULL) { bv = sudo_ldap_get_values_len(last->ldap, entry, "sudoOrder", &rc); - if (rc == LDAP_NO_MEMORY) { - /* XXX - return error */ - sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory")); + if (bv == NULL) { + if (rc == LDAP_NO_MEMORY) + debug_return_ptr(NULL); } else { if (ldap_count_values_len(bv) > 0) { /* Get the value of this attribute, 0 if not present. */ diff --git a/plugins/sudoers/ldap_conf.c b/plugins/sudoers/ldap_conf.c index 7e4a2e3ad8..2b566dd0e1 100644 --- a/plugins/sudoers/ldap_conf.c +++ b/plugins/sudoers/ldap_conf.c @@ -509,7 +509,7 @@ sudo_krb5_ccname_path(const char *old_ccname) static bool sudo_check_krb5_ccname(const char *ccname) { - int fd = -1; + int fd; const char *ccname_path; debug_decl(sudo_check_krb5_ccname, SUDOERS_DEBUG_LDAP); diff --git a/plugins/sudoers/ldap_util.c b/plugins/sudoers/ldap_util.c index 84900f4360..a5ca404982 100644 --- a/plugins/sudoers/ldap_util.c +++ b/plugins/sudoers/ldap_util.c @@ -77,7 +77,7 @@ sudo_ldap_parse_option(char *optstr, char **varp, char **valp) /* check for equals sign past first char */ cp = strchr(var, '='); - if (cp > var) { + if (cp != NULL && cp > var) { val = cp + 1; op = cp[-1]; /* peek for += or -= cases */ if (op == '+' || op == '-') { diff --git a/plugins/sudoers/log_client.c b/plugins/sudoers/log_client.c index a53ffe4272..8b9a2822fb 100644 --- a/plugins/sudoers/log_client.c +++ b/plugins/sudoers/log_client.c @@ -504,9 +504,11 @@ connect_server(const char *host, const char *port, bool tls, case AF_INET: addr = (char *)&((struct sockaddr_in *)res->ai_addr)->sin_addr; break; +#ifdef HAVE_STRUCT_IN6_ADDR case AF_INET6: addr = (char *)&((struct sockaddr_in6 *)res->ai_addr)->sin6_addr; break; +#endif default: cause = "ai_family"; save_errno = EAFNOSUPPORT; @@ -1085,7 +1087,7 @@ fmt_alert_message(struct client_closure *closure, struct eventlog *evlog) static bool fmt_initial_message(struct client_closure *closure) { - bool ret = true; + bool ret = false; debug_decl(fmt_initial_message, SUDOERS_DEBUG_UTIL); closure->state = closure->initial_state; @@ -1116,7 +1118,6 @@ fmt_initial_message(struct client_closure *closure) break; default: sudo_warnx(U_("%s: unexpected state %d"), __func__, closure->state); - ret = false; break; } debug_return_bool(ret); diff --git a/plugins/sudoers/logging.c b/plugins/sudoers/logging.c index e240ca6925..d427064c32 100644 --- a/plugins/sudoers/logging.c +++ b/plugins/sudoers/logging.c @@ -348,12 +348,16 @@ log_failure(int status, int flags) debug_decl(log_failure, SUDOERS_DEBUG_LOGGING); /* The user doesn't always get to see the log message (path info). */ - if (!ISSET(status, FLAG_NO_USER | FLAG_NO_HOST) && def_path_info && - (flags == NOT_FOUND_DOT || flags == NOT_FOUND)) + if (!ISSET(status, FLAG_NO_USER | FLAG_NO_HOST) && list_pw == NULL && + def_path_info && (flags == NOT_FOUND_DOT || flags == NOT_FOUND)) inform_user = false; ret = log_denial(status, inform_user); if (!inform_user) { + const char *cmnd = user_cmnd; + if (ISSET(sudo_mode, MODE_CHECK)) + cmnd = list_cmnd ? list_cmnd : NewArgv[1]; + /* * We'd like to not leak path info at all here, but that can * *really* confuse the users. To really close the leak we'd @@ -362,9 +366,9 @@ log_failure(int status, int flags) * their path to just contain a single dir. */ if (flags == NOT_FOUND) - sudo_warnx(U_("%s: command not found"), user_cmnd); + sudo_warnx(U_("%s: command not found"), cmnd); else if (flags == NOT_FOUND_DOT) - sudo_warnx(U_("ignoring \"%s\" found in '.'\nUse \"sudo ./%s\" if this is the \"%s\" you wish to run."), user_cmnd, user_cmnd, user_cmnd); + sudo_warnx(U_("ignoring \"%s\" found in '.'\nUse \"sudo ./%s\" if this is the \"%s\" you wish to run."), cmnd, cmnd, cmnd); } debug_return_bool(ret); @@ -776,13 +780,13 @@ gai_log_warning(int flags, int errnum, const char *fmt, ...) bool mail_parse_errors(void) { - const int evl_flags = EVLOG_MAIL|EVLOG_MAIL_ONLY|EVLOG_RAW; + const int evl_flags = EVLOG_RAW; struct parse_error *pe; struct eventlog evlog; - char *cp, *mailbody = NULL; + char **errors = NULL; struct timespec now; - size_t len, n; - bool ret; + bool ret = false; + size_t n; debug_decl(mail_parse_errors, SUDOERS_DEBUG_LOGGING); if (STAILQ_EMPTY(&parse_error_list)) @@ -790,50 +794,32 @@ mail_parse_errors(void) if (sudo_gettime_real(&now) == -1) { sudo_warn("%s", U_("unable to get time of day")); - ret = false; goto done; } sudoers_to_eventlog(&evlog, safe_cmnd, NewArgv, env_get(), sudo_user.uuid_str); - len = strlen(_("problem parsing sudoers")) + 1; + /* Convert parse_error_list to a string vector. */ + n = 0; STAILQ_FOREACH(pe, &parse_error_list, entries) { - len += strlen(_(pe->errstr)) + 1; + n++; } - mailbody = malloc(len); - if (mailbody == NULL) { + errors = reallocarray(NULL, n + 1, sizeof(char *)); + if (errors == NULL) { sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory")); - ret = false; - goto done; - } - cp = mailbody; - - n = strlcpy(cp, _("problem parsing sudoers"), len); - if (n >= len) { - sudo_warnx(U_("internal error, %s overflow"), __func__); - ret = false; goto done; } - cp += n; - len -= n; - + n = 0; STAILQ_FOREACH(pe, &parse_error_list, entries) { - n = snprintf(cp, len, "\n%s", _(pe->errstr)); - if (n >= len) { - sudo_warnx(U_("internal error, %s overflow"), __func__); - ret = false; - goto done; - } - cp += n; - len -= n; + errors[n++] = _(pe->errstr); } + errors[n] = NULL; - ret = eventlog_alert(&evlog, evl_flags, &now, mailbody, NULL); - if (!log_server_alert(&evlog, &now, mailbody, NULL)) - ret = false; + ret = eventlog_mail(&evlog, evl_flags, &now, _("problem parsing sudoers"), + NULL, errors); done: - free(mailbody); + free(errors); while ((pe = STAILQ_FIRST(&parse_error_list)) != NULL) { STAILQ_REMOVE_HEAD(&parse_error_list, entries); free(pe->errstr); diff --git a/plugins/sudoers/match_command.c b/plugins/sudoers/match_command.c index 37d376d325..a834c60e47 100644 --- a/plugins/sudoers/match_command.c +++ b/plugins/sudoers/match_command.c @@ -185,7 +185,7 @@ static bool open_cmnd(const char *path, const char *runchroot, const struct command_digest_list *digests, int *fdp) { - int fd = -1; + int fd; char pathbuf[PATH_MAX]; debug_decl(open_cmnd, SUDOERS_DEBUG_MATCH); @@ -844,16 +844,18 @@ command_matches(const char *sudoers_cmnd, const char *sudoers_args, /* Check for pseudo-commands */ if (sudoers_cmnd[0] != '/') { /* - * Return true if both sudoers_cmnd and user_cmnd are "sudoedit" AND + * Return true if sudoers_cmnd and user_cmnd match a pseudo-command AND * a) there are no args in sudoers OR * b) there are no args on command line and none req by sudoers OR * c) there are args in sudoers and on command line and they match */ - if (strcmp(sudoers_cmnd, "sudoedit") == 0 && - strcmp(user_cmnd, "sudoedit") == 0 && - command_args_match(sudoers_cmnd, sudoers_args)) { - /* No need to set safe_cmnd since user_cmnd matches sudoers_cmnd */ - rc = true; + if (strcmp(sudoers_cmnd, "list") == 0 || + strcmp(sudoers_cmnd, "sudoedit") == 0) { + if (strcmp(user_cmnd, sudoers_cmnd) == 0 && + command_args_match(sudoers_cmnd, sudoers_args)) { + /* No need to set safe_cmnd since user_cmnd == sudoers_cmnd */ + rc = true; + } } goto done; } diff --git a/plugins/sudoers/match_digest.c b/plugins/sudoers/match_digest.c index f1655951e6..bae7bdd8cb 100644 --- a/plugins/sudoers/match_digest.c +++ b/plugins/sudoers/match_digest.c @@ -97,7 +97,7 @@ digest_matches(int fd, const char *path, const char *runchroot, /* Convert ascii hex to binary. */ unsigned int i; for (i = 0; i < digest_len; i++) { - const int h = hexchar(&digest->digest_str[i + i]); + const int h = sudo_hexchar(&digest->digest_str[i + i]); if (h == -1) goto bad_format; sudoers_digest[i] = (unsigned char)h; diff --git a/plugins/sudoers/parse.c b/plugins/sudoers/parse.c index 361bc0fd54..df5405709f 100644 --- a/plugins/sudoers/parse.c +++ b/plugins/sudoers/parse.c @@ -60,6 +60,7 @@ static int sudoers_lookup_pseudo(struct sudo_nss_list *snl, struct passwd *pw, int validated, int pwflag) { + char *saved_runchroot; struct passwd *root_pw = NULL; struct sudo_nss *nss; struct cmndspec *cs; @@ -82,6 +83,11 @@ sudoers_lookup_pseudo(struct sudo_nss_list *snl, struct passwd *pw, } else { SET(validated, FLAG_NO_CHECK); } + + /* Don't use chroot setting for pseudo-commands. */ + saved_runchroot = def_runchroot; + def_runchroot = NULL; + TAILQ_FOREACH(nss, snl, entries) { if (nss->query(nss, pw) == -1) { /* The query function should have printed an error message. */ @@ -111,19 +117,34 @@ sudoers_lookup_pseudo(struct sudo_nss_list *snl, struct passwd *pw, if (match == ALLOW) continue; - /* Only check runas/command when listing another user. */ + /* + * Root can list any user's privileges. + * A user may always list their own privileges. + */ if (user_uid == 0 || list_pw == NULL || user_uid == list_pw->pw_uid) { match = ALLOW; continue; } - /* Runas user must match list user or root. */ - if (runas_matches_pw(nss->parse_tree, cs, list_pw) == DENY) + + /* + * To list another user's prilileges, the runas + * user must match the list user or root. + */ + switch (runas_matches_pw(nss->parse_tree, cs, list_pw)) { + case DENY: continue; - if (root_pw == NULL || runas_matches_pw(nss->parse_tree, - cs, root_pw) != ALLOW) { + case ALLOW: + break; + default: + if (root_pw != NULL && runas_matches_pw(nss->parse_tree, + cs, root_pw) == ALLOW) { + break; + } continue; } + + /* Match command: "list" or ALL. */ if (cmnd_matches(nss->parse_tree, cs->cmnd, cs->runchroot, NULL) == ALLOW) { match = ALLOW; @@ -143,6 +164,10 @@ sudoers_lookup_pseudo(struct sudo_nss_list *snl, struct passwd *pw, SET(validated, FLAG_CHECK_USER); else if (nopass == true) def_authenticate = false; + + /* Restore original def_runchroot. */ + def_runchroot = saved_runchroot; + debug_return_int(validated); } @@ -223,7 +248,7 @@ sudoers_lookup_check(struct sudo_nss *nss, struct passwd *pw, } /* - * Apply cmndspec-specific settngs including SELinux role/type, + * Apply cmndspec-specific settings including SELinux role/type, * Solaris privs, and command tags. */ static bool @@ -963,12 +988,22 @@ static int display_cmnd_check(struct sudoers_parse_tree *parse_tree, struct passwd *pw, time_t now) { - int host_match, runas_match, cmnd_match; + int host_match, runas_match, cmnd_match = UNSPEC; + char *saved_user_cmnd, *saved_user_base; struct cmndspec *cs; struct privilege *priv; struct userspec *us; debug_decl(display_cmnd_check, SUDOERS_DEBUG_PARSER); + /* + * For "sudo -l command", user_cmnd is "list" and the actual + * command we are checking is in list_cmnd. + */ + saved_user_cmnd = user_cmnd; + saved_user_base = user_base; + user_cmnd = list_cmnd; + user_base = sudo_basename(user_cmnd); + TAILQ_FOREACH_REVERSE(us, &parse_tree->userspecs, userspec_list, entries) { if (userlist_matches(parse_tree, pw, &us->users) != ALLOW) continue; @@ -991,12 +1026,15 @@ display_cmnd_check(struct sudoers_parse_tree *parse_tree, struct passwd *pw, cmnd_match = cmnd_matches(parse_tree, cs->cmnd, cs->runchroot, NULL); if (cmnd_match != UNSPEC) - debug_return_int(cmnd_match); + goto done; } } } } - debug_return_int(UNSPEC); +done: + user_cmnd = saved_user_cmnd; + user_base = saved_user_base; + debug_return_int(cmnd_match); } /* @@ -1029,8 +1067,8 @@ display_cmnd(struct sudo_nss_list *snl, struct passwd *pw) break; } if (match == ALLOW) { - const int len = sudo_printf(SUDO_CONV_INFO_MSG, "%s%s%s\n", - safe_cmnd, user_args ? " " : "", user_args ? user_args : ""); + /* For "sudo -l cmd" user_args includes the command being checked. */ + const int len = sudo_printf(SUDO_CONV_INFO_MSG, "%s\n", user_args); ret = len < 0 ? -1 : true; } debug_return_int(ret); diff --git a/plugins/sudoers/parse.h b/plugins/sudoers/parse.h index cac32b6118..d9f4872d9d 100644 --- a/plugins/sudoers/parse.h +++ b/plugins/sudoers/parse.h @@ -417,9 +417,6 @@ struct gid_list *runas_getgroups(void); /* toke.c */ void init_lexer(void); -/* hexchar.c */ -int hexchar(const char *s); - /* base64.c */ size_t base64_decode(const char *str, unsigned char *dst, size_t dsize); size_t base64_encode(const unsigned char *in, size_t in_len, char *out, size_t out_len); diff --git a/plugins/sudoers/parse_ldif.c b/plugins/sudoers/parse_ldif.c index 6c2b74aa0c..2b7109294f 100644 --- a/plugins/sudoers/parse_ldif.c +++ b/plugins/sudoers/parse_ldif.c @@ -432,11 +432,11 @@ role_to_sudoers(struct sudoers_parse_tree *parse_tree, struct sudo_role *role, struct privilege *prev_priv = TAILQ_LAST(&us->privileges, privilege_list); if (reuse_runas) { /* Runas users and groups same if as in previous privilege. */ - struct member_list *runasuserlist = - TAILQ_FIRST(&prev_priv->cmndlist)->runasuserlist; - struct member_list *runasgrouplist = - TAILQ_FIRST(&prev_priv->cmndlist)->runasgrouplist; struct cmndspec *cmndspec = TAILQ_FIRST(&priv->cmndlist); + const struct cmndspec *prev_cmndspec = + TAILQ_LAST(&prev_priv->cmndlist, cmndspec_list); + struct member_list *runasuserlist = prev_cmndspec->runasuserlist; + struct member_list *runasgrouplist = prev_cmndspec->runasgrouplist; /* Free duplicate runas lists. */ if (cmndspec->runasuserlist != NULL) { @@ -688,7 +688,7 @@ sudoers_parse_ldif(struct sudoers_parse_tree *parse_tree, if (strncasecmp(attr, "cn=", 3) == 0) { for (attr += 3; *attr != '\0'; attr++) { /* Handle escaped ',' chars. */ - if (*attr == '\\') + if (*attr == '\\' && attr[1] != '\0') attr++; if (*attr == ',') { attr++; diff --git a/plugins/sudoers/po/cs.mo b/plugins/sudoers/po/cs.mo index 8247c6b120..8f94264291 100644 Binary files a/plugins/sudoers/po/cs.mo and b/plugins/sudoers/po/cs.mo differ diff --git a/plugins/sudoers/po/cs.po b/plugins/sudoers/po/cs.po index c2246aa442..ebcbd88fda 100644 --- a/plugins/sudoers/po/cs.po +++ b/plugins/sudoers/po/cs.po @@ -2,7 +2,7 @@ # This file is distributed under the same license as the sudo package. # Todd C. Miller , 2011-2013 # Petr Pisar , 2013, 2014, 2015, 2016, 2017, 2018, 2019. -# Petr Pisar , 2020, 2021, 2022. +# Petr Pisar , 2020, 2021, 2022, 2023. # # (AIX) registry → (AIXový) registr # I/O (log) → I/O (log) @@ -10,10 +10,10 @@ # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.11b1\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-05-27 08:39-0600\n" -"PO-Revision-Date: 2022-06-04 19:16+02:00\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 21:43+01:00\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" "Language: cs\n" @@ -23,7 +23,7 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: confstr.sh:1 gram.y:1218 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "chyba syntaxe" @@ -47,46 +47,59 @@ msgstr "*** BEZPEČNOSTNÍ hlášení o %h ***" msgid "Sorry, try again." msgstr "Je nám líto, zkuste to znovu." -#: gram.y:236 gram.y:303 gram.y:312 gram.y:321 gram.y:331 gram.y:341 -#: gram.y:365 gram.y:392 gram.y:401 gram.y:409 gram.y:418 gram.y:427 -#: gram.y:501 gram.y:511 gram.y:523 gram.y:571 gram.y:580 gram.y:589 -#: gram.y:598 gram.y:730 gram.y:738 gram.y:749 gram.y:761 gram.y:780 -#: gram.y:943 gram.y:948 gram.y:956 gram.y:970 gram.y:976 gram.y:1098 -#: gram.y:1107 gram.y:1115 gram.y:1124 gram.y:1133 gram.y:1162 gram.y:1171 -#: gram.y:1179 gram.y:1272 gram.y:1402 gram.y:1769 gram.y:1816 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: gram.y:237 gram.y:304 gram.y:313 gram.y:322 gram.y:332 gram.y:342 +#: gram.y:366 gram.y:393 gram.y:402 gram.y:410 gram.y:419 gram.y:428 +#: gram.y:502 gram.y:512 gram.y:524 gram.y:572 gram.y:581 gram.y:590 +#: gram.y:599 gram.y:731 gram.y:739 gram.y:750 gram.y:762 gram.y:781 +#: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 +#: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 +#: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:84 -#: logsrvd/iolog_writer.c:89 logsrvd/iolog_writer.c:123 -#: logsrvd/iolog_writer.c:172 logsrvd/iolog_writer.c:212 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:261 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:301 -#: logsrvd/iolog_writer.c:314 logsrvd/iolog_writer.c:327 -#: logsrvd/iolog_writer.c:340 logsrvd/iolog_writer.c:355 -#: logsrvd/iolog_writer.c:393 logsrvd/iolog_writer.c:399 -#: logsrvd/iolog_writer.c:406 logsrvd/iolog_writer.c:412 -#: logsrvd/iolog_writer.c:596 logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 -#: logsrvd/logsrvd.c:305 logsrvd/logsrvd.c:1012 logsrvd/logsrvd.c:1075 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:203 logsrvd/logsrvd_journal.c:204 -#: logsrvd/logsrvd_journal.c:260 logsrvd/logsrvd_journal.c:420 -#: logsrvd/logsrvd_journal.c:422 logsrvd/logsrvd_local.c:174 -#: logsrvd/logsrvd_local.c:175 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:238 logsrvd/logsrvd_local.c:376 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:426 -#: logsrvd/logsrvd_local.c:431 logsrvd/logsrvd_local.c:432 -#: logsrvd/logsrvd_queue.c:154 logsrvd/logsrvd_queue.c:184 -#: logsrvd/logsrvd_queue.c:261 logsrvd/logsrvd_relay.c:439 -#: logsrvd/logsrvd_relay.c:738 logsrvd/logsrvd_relay.c:845 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 plugins/sudoers/audit.c:116 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 #: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 #: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 #: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 @@ -116,191 +129,206 @@ msgstr "Je nám líto, zkuste to znovu." #: plugins/sudoers/cvtsudoers_merge.c:633 #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 -#: plugins/sudoers/defaults.c:657 plugins/sudoers/defaults.c:1018 -#: plugins/sudoers/defaults.c:1186 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:133 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:397 plugins/sudoers/log_client.c:710 -#: plugins/sudoers/log_client.c:731 plugins/sudoers/log_client.c:1451 -#: plugins/sudoers/log_client.c:1672 plugins/sudoers/log_client.c:2003 -#: plugins/sudoers/log_client.c:2059 plugins/sudoers/logging.c:112 -#: plugins/sudoers/logging.c:193 plugins/sudoers/logging.c:461 -#: plugins/sudoers/logging.c:675 plugins/sudoers/logging.c:812 -#: plugins/sudoers/match_command.c:333 plugins/sudoers/match_command.c:594 -#: plugins/sudoers/match_command.c:645 plugins/sudoers/match_command.c:719 -#: plugins/sudoers/match_command.c:767 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:227 plugins/sudoers/parse.c:244 -#: plugins/sudoers/parse.c:263 plugins/sudoers/parse.c:282 -#: plugins/sudoers/parse.c:299 plugins/sudoers/parse.c:322 -#: plugins/sudoers/parse.c:333 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 #: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 #: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 #: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 #: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 #: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 #: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 -#: plugins/sudoers/parse_ldif.c:597 plugins/sudoers/parse_ldif.c:627 -#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 -#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 -#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:606 -#: plugins/sudoers/policy.c:998 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 #: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 #: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 #: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 -#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:913 -#: plugins/sudoers/pwutil.c:957 plugins/sudoers/pwutil.c:1014 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 #: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 #: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 #: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 #: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:111 plugins/sudoers/stubs.c:119 -#: plugins/sudoers/sudoers.c:349 plugins/sudoers/sudoers.c:375 -#: plugins/sudoers/sudoers.c:443 plugins/sudoers/sudoers.c:452 -#: plugins/sudoers/sudoers.c:493 plugins/sudoers/sudoers.c:858 -#: plugins/sudoers/sudoers.c:996 plugins/sudoers/sudoers.c:1055 -#: plugins/sudoers/sudoers.c:1320 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 -#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:581 -#: plugins/sudoers/timestamp.c:424 plugins/sudoers/timestamp.c:468 -#: plugins/sudoers/timestamp.c:980 plugins/sudoers/timestamp.c:1118 +#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 +#: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 +#: plugins/sudoers/timestamp.c:1017 plugins/sudoers/timestamp.c:1146 #: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 -#: plugins/sudoers/visudo.c:148 plugins/sudoers/visudo.c:380 -#: plugins/sudoers/visudo.c:386 plugins/sudoers/visudo.c:492 -#: plugins/sudoers/visudo.c:1048 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "nelze alokovat paměť" -#: gram.y:622 +#: gram.y:623 msgid "a digest requires a path name" msgstr "kontrolní součet vyžaduje název cesty" -#: gram.y:644 +#: gram.y:645 msgid "values for \"CWD\" must start with a '/', '~', or '*'" msgstr "hodnoty „CWD“ musí začínat na „/“, „~“ nebo „*“" -#: gram.y:650 +#: gram.y:651 msgid "\"CWD\" path too long" msgstr "cesta „CWD“ je příliš dlouhá" -#: gram.y:660 +#: gram.y:661 msgid "values for \"CHROOT\" must start with a '/', '~', or '*'" msgstr "hodnoty „CHROOT“ musí začínat na „/“, „~“ nebo „*“" -#: gram.y:666 +#: gram.y:667 msgid "\"CHROOT\" path too long" msgstr "cesta „CHROOT“ je příliš dlouhá" -#: gram.y:801 +#: gram.y:802 #, c-format msgid "syntax error, reserved word %s used as an alias name" msgstr "chyba syntaxe, vyhrazené slovo %s použito jako název aliasu" -#: gram.y:824 +#: gram.y:825 msgid "invalid notbefore value" msgstr "neplatná hodnota notbefore (začátek platnosti)" -#: gram.y:833 +#: gram.y:834 msgid "invalid notafter value" msgstr "neplatná hodnota notafter (konec platnosti)" -#: gram.y:843 plugins/sudoers/policy.c:376 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "hodnota časového limitu je příliš velká" -#: gram.y:845 plugins/sudoers/policy.c:378 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "neplatná hodnota časového limitu" -#: gram.y:966 plugins/sudoers/sudoers.c:1014 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "příkaz je příliš dlouhý" -#: gram.y:1220 plugins/sudoers/check_aliases.c:96 -#: plugins/sudoers/defaults.c:1275 +#: gram.y:1224 plugins/sudoers/check_aliases.c:96 +#: plugins/sudoers/defaults.c:1276 #, c-format msgid "%s:%d:%d: %s\n" msgstr "%s:%d:%d: %s\n" -#: gram.y:1270 +#: gram.y:1278 #, c-format msgid "Alias \"%s\" already defined" msgstr "Alias „%s“ je již definován" -#: gram.y:1769 gram.y:1816 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:84 logsrvd/iolog_writer.c:89 -#: logsrvd/iolog_writer.c:123 logsrvd/iolog_writer.c:162 -#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:189 -#: logsrvd/iolog_writer.c:211 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:251 logsrvd/iolog_writer.c:260 -#: logsrvd/iolog_writer.c:276 logsrvd/iolog_writer.c:285 -#: logsrvd/iolog_writer.c:300 logsrvd/iolog_writer.c:313 -#: logsrvd/iolog_writer.c:326 logsrvd/iolog_writer.c:339 -#: logsrvd/iolog_writer.c:354 logsrvd/iolog_writer.c:393 -#: logsrvd/iolog_writer.c:399 logsrvd/iolog_writer.c:406 -#: logsrvd/iolog_writer.c:412 logsrvd/iolog_writer.c:596 -#: logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 logsrvd/logsrvd.c:305 -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:593 -#: logsrvd/logsrvd.c:1086 logsrvd/logsrvd.c:1403 logsrvd/logsrvd.c:1410 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:114 logsrvd/logsrvd_journal.c:203 -#: logsrvd/logsrvd_journal.c:233 logsrvd/logsrvd_journal.c:237 -#: logsrvd/logsrvd_journal.c:245 logsrvd/logsrvd_journal.c:268 -#: logsrvd/logsrvd_journal.c:272 logsrvd/logsrvd_journal.c:420 -#: logsrvd/logsrvd_local.c:174 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:431 -#: logsrvd/logsrvd_local.c:450 logsrvd/logsrvd_queue.c:153 -#: logsrvd/logsrvd_queue.c:184 logsrvd/logsrvd_queue.c:261 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 logsrvd/sendlog.c:1526 logsrvd/sendlog.c:1533 -#: logsrvd/sendlog.c:1756 logsrvd/tls_init.c:299 logsrvd/tls_init.c:323 -#: logsrvd/tls_init.c:334 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -312,150 +340,131 @@ msgstr "Alias „%s“ je již definován" #: plugins/sudoers/cvtsudoers_merge.c:633 #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 -#: plugins/sudoers/defaults.c:657 plugins/sudoers/defaults.c:1018 -#: plugins/sudoers/defaults.c:1186 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:132 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:687 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:223 plugins/sudoers/log_client.c:245 -#: plugins/sudoers/log_client.c:259 plugins/sudoers/log_client.c:397 -#: plugins/sudoers/log_client.c:710 plugins/sudoers/log_client.c:731 -#: plugins/sudoers/log_client.c:1451 plugins/sudoers/log_client.c:1672 -#: plugins/sudoers/log_client.c:2003 plugins/sudoers/log_client.c:2059 -#: plugins/sudoers/logging.c:112 plugins/sudoers/logging.c:192 -#: plugins/sudoers/logging.c:193 plugins/sudoers/logging.c:461 -#: plugins/sudoers/logging.c:675 plugins/sudoers/logging.c:812 -#: plugins/sudoers/logging.c:882 plugins/sudoers/logging.c:894 -#: plugins/sudoers/match_command.c:332 plugins/sudoers/match_command.c:593 -#: plugins/sudoers/match_command.c:644 plugins/sudoers/match_command.c:719 -#: plugins/sudoers/match_command.c:766 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:226 plugins/sudoers/parse.c:243 -#: plugins/sudoers/parse.c:262 plugins/sudoers/parse.c:281 -#: plugins/sudoers/parse.c:298 plugins/sudoers/parse.c:321 -#: plugins/sudoers/parse.c:332 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 #: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 #: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 #: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 #: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 #: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 #: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 -#: plugins/sudoers/parse_ldif.c:597 plugins/sudoers/parse_ldif.c:626 -#: plugins/sudoers/parse_ldif.c:651 plugins/sudoers/parse_ldif.c:709 -#: plugins/sudoers/parse_ldif.c:726 plugins/sudoers/parse_ldif.c:754 -#: plugins/sudoers/parse_ldif.c:761 plugins/sudoers/policy.c:152 -#: plugins/sudoers/policy.c:161 plugins/sudoers/policy.c:170 -#: plugins/sudoers/policy.c:198 plugins/sudoers/policy.c:361 -#: plugins/sudoers/policy.c:376 plugins/sudoers/policy.c:378 -#: plugins/sudoers/policy.c:414 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:471 plugins/sudoers/policy.c:481 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:606 plugins/sudoers/policy.c:998 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:111 plugins/sudoers/stubs.c:119 -#: plugins/sudoers/sudoers.c:349 plugins/sudoers/sudoers.c:375 -#: plugins/sudoers/sudoers.c:443 plugins/sudoers/sudoers.c:452 -#: plugins/sudoers/sudoers.c:493 plugins/sudoers/sudoers.c:858 -#: plugins/sudoers/sudoers.c:996 plugins/sudoers/sudoers.c:1055 -#: plugins/sudoers/sudoers.c:1320 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 -#: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 -#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:581 -#: plugins/sudoers/timestamp.c:424 plugins/sudoers/timestamp.c:468 -#: plugins/sudoers/timestamp.c:980 plugins/sudoers/timestamp.c:1118 -#: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 -#: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:160 -#: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 -#: plugins/sudoers/visudo.c:148 plugins/sudoers/visudo.c:380 -#: plugins/sudoers/visudo.c:386 plugins/sudoers/visudo.c:492 -#: plugins/sudoers/visudo.c:1048 toke.l:1023 toke.l:1155 toke.l:1218 -#: toke.l:1226 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 +#: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 +#: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 +#: plugins/sudoers/timestamp.c:1146 plugins/sudoers/toke_util.c:78 +#: plugins/sudoers/toke_util.c:106 plugins/sudoers/toke_util.c:131 +#: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 +#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 +#: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:326 -#: plugins/sudoers/env.c:333 plugins/sudoers/env.c:444 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:312 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:465 -#: plugins/sudoers/logging.c:820 plugins/sudoers/logging.c:830 -#: plugins/sudoers/policy.c:776 plugins/sudoers/policy.c:787 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "vnitřní chyba, přetečení %s" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "nelze zdvojit standardní vstup: %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "nelze spustit %s: %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "nelze vytvořit proces" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "nelze vytvořit proces: %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "nelze otevřít rouru: %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (příkaz pokračuje) %s" -#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1241 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "neplatný regulární výraz „%s“: %s" @@ -473,64 +482,64 @@ msgstr "JSON_ARRAY je příliš velké" msgid "missing double quote in name" msgstr "v názvu chybí dvojitá uvozovka" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "chybí JSON_OBJECT" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "očekáván JSON_OBJECT, obdrženo %d" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "jsonový zásobník vyčerpán (nejvýše %u rámců)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "objekty musí sestávat z dvojic název:hodnota" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "chybí oddělovač mezí hodnotami" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "neodpovídající uzavírací složená závorka" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "nečekané pole" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "neodpovídající uzavírající hranatá závorka" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "nečekaný řetězec" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "za názvem chybí dvojtečka" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "nečekaná pravdivostní hodnota" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "nečekaná hodnota null" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "nečekané číslo" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "chyba rozboru" @@ -569,14 +578,14 @@ msgstr "%s chybí položka s runas skupinou" msgid "%s exists but is not a directory (0%o)" msgstr "%s existuje, ale nejedná se o adresář (0%o)" -#: lib/iolog/iolog_mkdirs.c:119 lib/iolog/iolog_mkdtemp.c:77 -#: logsrvd/iolog_writer.c:810 plugins/sudoers/timestamp.c:205 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 +#: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "nelze vytvořit adresář %s" -#: lib/iolog/iolog_mkdtemp.c:81 plugins/sudoers/visudo.c:747 -#: plugins/sudoers/visudo.c:781 plugins/sudoers/visudo.c:787 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "nelze změnit práva %s na 0%o" @@ -591,785 +600,816 @@ msgstr "chyba při čtení časovacího souboru: %s" msgid "invalid timing file line: %s" msgstr "neplatný řádek s časovacím souborem: %s" -#: logsrvd/iolog_writer.c:130 plugins/sudoers/logging.c:982 -#: plugins/sudoers/policy.c:573 -msgid "unable to generate UUID" -msgstr "nelze vytvořit UUID" +#: logsrvd/iolog_writer.c:65 +#, c-format +msgid "%s: protocol error: NULL key" +msgstr "%s: chyba protokolu: klíč je NULL" -#: logsrvd/iolog_writer.c:158 logsrvd/iolog_writer.c:176 -#: logsrvd/iolog_writer.c:185 logsrvd/iolog_writer.c:203 -#: logsrvd/iolog_writer.c:216 logsrvd/iolog_writer.c:229 -#: logsrvd/iolog_writer.c:240 logsrvd/iolog_writer.c:247 -#: logsrvd/iolog_writer.c:265 logsrvd/iolog_writer.c:272 -#: logsrvd/iolog_writer.c:290 logsrvd/iolog_writer.c:305 -#: logsrvd/iolog_writer.c:318 logsrvd/iolog_writer.c:331 -#: logsrvd/iolog_writer.c:344 logsrvd/iolog_writer.c:359 +#: logsrvd/iolog_writer.c:69 #, c-format msgid "%s: protocol error: wrong type for %s" msgstr "%s: chyba protokolu: chybný typ pro %s" -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:375 -#: logsrvd/iolog_writer.c:380 logsrvd/iolog_writer.c:385 +#: logsrvd/iolog_writer.c:74 logsrvd/logsrvd_local.c:109 +#: logsrvd/logsrvd_local.c:123 logsrvd/logsrvd_local.c:131 +#: logsrvd/logsrvd_local.c:149 +#, c-format +msgid "%s: protocol error: NULL value found in %s" +msgstr "%s: chyba protokolu: nalezena hodnota NULL v %s" + +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 +msgid "unable to generate UUID" +msgstr "nelze vytvořit UUID" + +#: logsrvd/iolog_writer.c:341 logsrvd/iolog_writer.c:346 +#: logsrvd/iolog_writer.c:351 logsrvd/iolog_writer.c:356 #, c-format msgid "%s: protocol error: %s missing from AcceptMessage" msgstr "%s: chyba protokolu: v AcceptMessage chybí %s" -#: logsrvd/iolog_writer.c:446 +#: logsrvd/iolog_writer.c:417 #, c-format msgid "%s: unable to format session id" msgstr "%s: nelze naformátovat identifikátor relace" -#: logsrvd/iolog_writer.c:460 logsrvd/iolog_writer.c:474 -#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:503 -#: logsrvd/iolog_writer.c:517 logsrvd/iolog_writer.c:531 +#: logsrvd/iolog_writer.c:431 logsrvd/iolog_writer.c:445 +#: logsrvd/iolog_writer.c:459 logsrvd/iolog_writer.c:474 +#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:502 #, c-format msgid "%s: %s is not set" msgstr "%s: %s není nastaveno" -#: logsrvd/iolog_writer.c:567 logsrvd/iolog_writer.c:574 +#: logsrvd/iolog_writer.c:538 logsrvd/iolog_writer.c:545 #, c-format msgid "unable to expand iolog path %s" msgstr "nelze expandovat iolog cestu %s" -#: logsrvd/iolog_writer.c:592 +#: logsrvd/iolog_writer.c:563 #, c-format msgid "unable to create iolog path %s" msgstr "nelze vytvořit iolog cestu %s" -#: logsrvd/iolog_writer.c:622 +#: logsrvd/iolog_writer.c:593 #, c-format msgid "invalid iofd %d" msgstr "neplatný iofd %d" -#: logsrvd/iolog_writer.c:642 +#: logsrvd/iolog_writer.c:613 #, c-format msgid "error closing iofd %d: %s" msgstr "chyba při zavírání iofd %d: %s" -#: logsrvd/iolog_writer.c:662 +#: logsrvd/iolog_writer.c:633 #, c-format msgid "error flushing iofd %d: %s" msgstr "chyba při vyprazdňování iofd %d: %s" -#: logsrvd/iolog_writer.c:780 +#: logsrvd/iolog_writer.c:751 #, c-format msgid "invalid I/O log %s: %s referenced but not present" msgstr "neplatný I/O log %s: odkazováno na %s, které není přítomno" -#: logsrvd/iolog_writer.c:792 logsrvd/logsrvd_journal.c:372 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s: nelze nalézt bod obnovy [%lld, %ld]" -#: logsrvd/iolog_writer.c:814 logsrvd/logsrvd_journal.c:415 -#: logsrvd/logsrvd_queue.c:110 logsrvd/tls_init.c:250 -#: plugins/sudoers/check.c:282 plugins/sudoers/cvtsudoers.c:730 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 +#: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 +#: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 -#: plugins/sudoers/cvtsudoers_csv.c:692 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1106 -#: plugins/sudoers/sudoreplay.c:1469 plugins/sudoers/timestamp.c:433 -#: plugins/sudoers/tsdump.c:128 plugins/sudoers/visudo.c:965 +#: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 +#: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "nelze otevřít %s" -#: logsrvd/iolog_writer.c:826 logsrvd/logsrv_util.c:100 -#: logsrvd/logsrv_util.c:107 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "nelze otevřít %s/%s" -#: logsrvd/iolog_writer.c:839 +#: logsrvd/iolog_writer.c:810 #, c-format msgid "unable to copy %s/%s to %s/%s: %s" msgstr "%s/%s nelze zkopírovat do %s/%s: %s" -#: logsrvd/iolog_writer.c:868 logsrvd/logsrvd_journal.c:185 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "%s nelze přejmenovat na %s" -#: logsrvd/logsrv_util.c:142 logsrvd/logsrv_util.c:171 +#: logsrvd/logsrv_util.c:147 logsrvd/logsrv_util.c:176 #, c-format msgid "%s/%s: unable to find resume point [%lld, %ld]" msgstr "%s/%s: nelze nalézt bod obnovy [%lld, %ld]" -#: logsrvd/logsrv_util.c:154 +#: logsrvd/logsrv_util.c:159 #, c-format msgid "missing I/O log file %s/%s" msgstr "chybí vstupně-výstupní soubor s protokolem %s/%s" -#: logsrvd/logsrv_util.c:161 +#: logsrvd/logsrv_util.c:166 #, c-format msgid "%s/%s: unable to seek forward %zu" msgstr "%s/%s: nelze skočit vpřed o %zu" -#: logsrvd/logsrvd.c:266 logsrvd/logsrvd_queue.c:130 +#: logsrvd/logsrvd.c:271 logsrvd/logsrvd_queue.c:135 msgid "unable to connect to relay" msgstr "k relayi se nelze připojit" -#: logsrvd/logsrvd.c:325 logsrvd/logsrvd_relay.c:837 +#: logsrvd/logsrvd.c:330 logsrvd/logsrvd_relay.c:842 #, c-format msgid "server message too large: %zu" msgstr "správa od serveru je příliš velká: %zu" -#: logsrvd/logsrvd.c:417 logsrvd/logsrvd.c:534 logsrvd/logsrvd.c:613 -#: logsrvd/logsrvd.c:837 logsrvd/logsrvd.c:851 logsrvd/logsrvd.c:1011 -#: logsrvd/logsrvd.c:1136 logsrvd/logsrvd.c:1309 logsrvd/logsrvd.c:1327 -#: logsrvd/logsrvd.c:1428 logsrvd/logsrvd.c:1551 logsrvd/logsrvd.c:1735 -#: logsrvd/logsrvd_journal.c:484 logsrvd/logsrvd_local.c:197 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_relay.c:167 -#: logsrvd/logsrvd_relay.c:244 logsrvd/logsrvd_relay.c:248 -#: logsrvd/logsrvd_relay.c:384 logsrvd/logsrvd_relay.c:576 -#: logsrvd/logsrvd_relay.c:737 logsrvd/logsrvd_relay.c:1124 -#: logsrvd/sendlog.c:1316 logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 -#: logsrvd/tls_client.c:211 plugins/sudoers/audit.c:276 +#: logsrvd/logsrvd.c:422 logsrvd/logsrvd.c:545 logsrvd/logsrvd.c:631 +#: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 +#: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 +#: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 +#: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 +#: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 +#: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 +#: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 +#: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 #: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 -#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:116 -#: plugins/sudoers/log_client.c:338 plugins/sudoers/log_client.c:354 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:606 -#: plugins/sudoers/log_client.c:613 plugins/sudoers/log_client.c:1138 -#: plugins/sudoers/log_client.c:1420 plugins/sudoers/log_client.c:1461 -#: plugins/sudoers/log_client.c:1469 plugins/sudoers/log_client.c:1628 -#: plugins/sudoers/log_client.c:1746 plugins/sudoers/log_client.c:2067 -#: plugins/sudoers/log_client.c:2075 plugins/sudoers/logging.c:150 -#: plugins/sudoers/logging.c:209 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 +#: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 +#: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "událost nelze přidat do fronty" -#: logsrvd/logsrvd.c:441 logsrvd/logsrvd.c:478 logsrvd/logsrvd.c:510 -#: logsrvd/logsrvd.c:558 logsrvd/logsrvd.c:630 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:720 logsrvd/logsrvd_relay.c:505 -#: logsrvd/logsrvd_relay.c:538 +#: logsrvd/logsrvd.c:446 logsrvd/logsrvd.c:483 logsrvd/logsrvd.c:515 +#: logsrvd/logsrvd.c:569 logsrvd/logsrvd.c:648 logsrvd/logsrvd.c:684 +#: logsrvd/logsrvd.c:720 logsrvd/logsrvd.c:756 logsrvd/logsrvd_relay.c:510 +#: logsrvd/logsrvd_relay.c:543 #, c-format msgid "unexpected state %d for %s" msgstr "nečekaný stav %d u %s" -#: logsrvd/logsrvd.c:442 logsrvd/logsrvd.c:479 logsrvd/logsrvd.c:511 -#: logsrvd/logsrvd.c:559 logsrvd/logsrvd.c:631 logsrvd/logsrvd.c:661 -#: logsrvd/logsrvd.c:691 logsrvd/logsrvd.c:721 logsrvd/logsrvd_relay.c:507 -#: logsrvd/logsrvd_relay.c:540 +#: logsrvd/logsrvd.c:447 logsrvd/logsrvd.c:484 logsrvd/logsrvd.c:516 +#: logsrvd/logsrvd.c:570 logsrvd/logsrvd.c:649 logsrvd/logsrvd.c:685 +#: logsrvd/logsrvd.c:721 logsrvd/logsrvd.c:757 logsrvd/logsrvd_relay.c:512 +#: logsrvd/logsrvd_relay.c:545 msgid "state machine error" msgstr "chyba stavového automatu" -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:449 +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:454 msgid "invalid AcceptMessage" msgstr "neplatná zpráva AcceptMessage" -#: logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:486 +#: logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:491 msgid "invalid RejectMessage" msgstr "neplatná zpráva RejectMessage" -#: logsrvd/logsrvd.c:593 logsrvd/logsrvd.c:594 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:523 +msgid "invalid ExitMessage" +msgstr "neplatná zpráva ExitMessage" + +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:577 +msgid "invalid RestartMessage" +msgstr "neplatná zpráva RestartMessage" + +#: logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:612 msgid "invalid AlertMessage" msgstr "neplatná zpráva AlertMessage" -#: logsrvd/logsrvd.c:635 logsrvd/logsrvd.c:665 logsrvd/logsrvd.c:695 +#: logsrvd/logsrvd.c:653 logsrvd/logsrvd.c:689 logsrvd/logsrvd.c:725 #, c-format msgid "%s: unexpected IoBuffer" msgstr "%s: nečekaný IoBuffer" -#: logsrvd/logsrvd.c:636 logsrvd/logsrvd.c:666 logsrvd/logsrvd.c:696 +#: logsrvd/logsrvd.c:654 logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:726 msgid "protocol error" msgstr "chyba protokolu" -#: logsrvd/logsrvd.c:746 logsrvd/logsrvd_journal.c:283 -#: logsrvd/logsrvd_relay.c:647 logsrvd/sendlog.c:1217 -#: plugins/sudoers/log_client.c:1618 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:661 +msgid "invalid IoBuffer" +msgstr "neplatný IoBuffer" + +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:697 +msgid "invalid ChangeWindowSize" +msgstr "neplatná ChangeWindowSize" + +#: logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:733 +msgid "invalid CommandSuspend" +msgstr "neplatný CommandSuspend" + +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 +#: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "%s o velikosti %zu nelze rozbalit" -#: logsrvd/logsrvd.c:791 logsrvd/logsrvd_journal.c:357 -#: logsrvd/logsrvd_local.c:125 logsrvd/logsrvd_relay.c:671 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 +#: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "nečekaná hodnota type_case %d v %s od %s" -#: logsrvd/logsrvd.c:793 +#: logsrvd/logsrvd.c:829 msgid "unrecognized ClientMessage type" msgstr "nerozpoznaný druh zprávy ClientMessage" -#: logsrvd/logsrvd.c:883 +#: logsrvd/logsrvd.c:919 #, c-format msgid "timed out writing to client %s" msgstr "při zapisování do klienta %s vypršel časový limit" -#: logsrvd/logsrvd.c:888 logsrvd/logsrvd_relay.c:909 logsrvd/sendlog.c:1420 +#: logsrvd/logsrvd.c:924 logsrvd/logsrvd_relay.c:914 logsrvd/sendlog.c:1395 #, c-format msgid "missing write buffer for client %s" msgstr "chybí vyrovnávací paměť pro zápis do klienta %s" -#: logsrvd/logsrvd.c:982 +#: logsrvd/logsrvd.c:1020 #, c-format msgid "timed out reading from client %s" msgstr "při čtení z klienta %s vypršel časový limit" -#: logsrvd/logsrvd.c:1023 logsrvd/logsrvd_relay.c:772 +#: logsrvd/logsrvd.c:1061 logsrvd/logsrvd_relay.c:777 #, c-format msgid "EOF from %s without proper TLS shutdown" msgstr "konec souboru od %s bez řádného ukončení TLS" -#: logsrvd/logsrvd.c:1067 logsrvd/logsrvd_relay.c:200 logsrvd/sendlog.c:317 -#: plugins/sudoers/log_client.c:716 +#: logsrvd/logsrvd.c:1105 logsrvd/logsrvd_relay.c:205 logsrvd/sendlog.c:322 +#: plugins/sudoers/log_client.c:721 #, c-format msgid "client message too large: %zu" msgstr "zpráva od klienta je příliš velká: %zu" -#: logsrvd/logsrvd.c:1068 logsrvd/logsrvd_journal.c:246 -#: logsrvd/logsrvd_journal.c:247 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "zpráva od klienta je příliš velká" -#: logsrvd/logsrvd.c:1086 logsrvd/logsrvd.c:1087 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1125 msgid "invalid ClientMessage" msgstr "neplatná zpráva ClientMessage" -#: logsrvd/logsrvd.c:1389 +#: logsrvd/logsrvd.c:1425 msgid "unable to get remote IP addr" msgstr "nelze získat vzdálenou IP adresu" -#: logsrvd/logsrvd.c:1420 logsrvd/tls_client.c:198 -#: plugins/sudoers/log_client.c:276 +#: logsrvd/logsrvd.c:1456 logsrvd/tls_client.c:203 +#: plugins/sudoers/log_client.c:281 #, c-format msgid "Unable to attach user data to the ssl object: %s" msgstr "K objektu SSL nelze připojit uživatelská data: %s" -#: logsrvd/logsrvd.c:1601 logsrvd/logsrvd.c:1953 +#: logsrvd/logsrvd.c:1639 logsrvd/logsrvd.c:1992 msgid "unable to setup listen socket" msgstr "nelze nastavit naslouchací socket" -#: logsrvd/logsrvd.c:1718 +#: logsrvd/logsrvd.c:1756 #, c-format msgid "unexpected signal %d" msgstr "nečekaný signál %d" -#: logsrvd/logsrvd.c:1855 +#: logsrvd/logsrvd.c:1894 msgid "sudo log server" msgstr "protokolovací server suda" -#: logsrvd/logsrvd.c:1857 logsrvd/sendlog.c:116 +#: logsrvd/logsrvd.c:1896 logsrvd/sendlog.c:121 msgid "Options:" msgstr "Volby:" -#: logsrvd/logsrvd.c:1859 +#: logsrvd/logsrvd.c:1898 msgid "path to configuration file" msgstr "cesta ke konfiguračnímu souboru" -#: logsrvd/logsrvd.c:1861 logsrvd/sendlog.c:118 +#: logsrvd/logsrvd.c:1900 logsrvd/sendlog.c:123 msgid "display help message and exit" msgstr "zobrazí nápovědu a skončí" -#: logsrvd/logsrvd.c:1863 +#: logsrvd/logsrvd.c:1902 msgid "do not fork, run in the foreground" msgstr "neoddělí proces, běží na popředí" -#: logsrvd/logsrvd.c:1865 +#: logsrvd/logsrvd.c:1904 msgid "percent chance connections will drop" msgstr "procentuální pravděpodobnost, že spojení se přeruší" -#: logsrvd/logsrvd.c:1867 logsrvd/sendlog.c:148 +#: logsrvd/logsrvd.c:1906 logsrvd/sendlog.c:153 msgid "display version information and exit" msgstr "zobrazí údaje o verzi a skončí" -#: logsrvd/logsrvd.c:1917 logsrvd/sendlog.c:1725 +#: logsrvd/logsrvd.c:1956 logsrvd/sendlog.c:1702 msgid "Protobuf-C version 1.3 or higher required" msgstr "Je vyžadována knihovna Protobuf-C verze 1.3 nebo vyšší" -#: logsrvd/logsrvd.c:1933 +#: logsrvd/logsrvd.c:1972 #, c-format msgid "invalid random drop value: %s" msgstr "neplatná hodnota pravděpodobnosti ztráty: %s" -#: logsrvd/logsrvd.c:1936 logsrvd/sendlog.c:1779 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 -#: plugins/sudoers/visudo.c:180 +#: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 +#: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s verze %s\n" -#: logsrvd/logsrvd_conf.c:417 plugins/sudoers/check.c:347 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1234 plugins/sudoers/sudoers.c:500 -#: plugins/sudoers/sudoers.c:1362 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "neznámý uživatel %s" -#: logsrvd/logsrvd_conf.c:434 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:1396 +#: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" msgstr "neznámá skupina %s" -#: logsrvd/logsrvd_conf.c:452 +#: logsrvd/logsrvd_conf.c:457 #, c-format msgid "unable to parse iolog mode %s" msgstr "nelze rozebrat režim iologu %s" -#: logsrvd/logsrvd_conf.c:469 logsrvd/logsrvd_conf.c:1238 +#: logsrvd/logsrvd_conf.c:474 logsrvd/logsrvd_conf.c:1243 #, c-format msgid "invalid value for %s: %s" msgstr "neplatná hodnota pro %s: %s" -#: logsrvd/logsrvd_conf.c:522 +#: logsrvd/logsrvd_conf.c:527 msgid "TLS not supported" msgstr "protokol TLS není podporován" -#: logsrvd/logsrvd_conf.c:544 +#: logsrvd/logsrvd_conf.c:549 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: logsrvd/logsrvd_conf.c:617 logsrvd/logsrvd_conf.c:1027 +#: logsrvd/logsrvd_conf.c:622 logsrvd/logsrvd_conf.c:1032 #, c-format msgid "%s: not a fully qualified path" msgstr "%s: cesta není plně kvalifikovaná" -#: logsrvd/logsrvd_conf.c:945 logsrvd/logsrvd_conf.c:961 -#: logsrvd/logsrvd_conf.c:1671 +#: logsrvd/logsrvd_conf.c:951 logsrvd/logsrvd_conf.c:967 +#: logsrvd/logsrvd_conf.c:1676 #, c-format msgid "unknown syslog facility %s" msgstr "neznámý obor systémového protokolu %s" -#: logsrvd/logsrvd_conf.c:977 logsrvd/logsrvd_conf.c:993 -#: logsrvd/logsrvd_conf.c:1009 logsrvd/logsrvd_conf.c:1675 -#: logsrvd/logsrvd_conf.c:1679 logsrvd/logsrvd_conf.c:1683 +#: logsrvd/logsrvd_conf.c:983 logsrvd/logsrvd_conf.c:999 +#: logsrvd/logsrvd_conf.c:1015 logsrvd/logsrvd_conf.c:1680 +#: logsrvd/logsrvd_conf.c:1684 logsrvd/logsrvd_conf.c:1688 #, c-format msgid "unknown syslog priority %s" msgstr "neznámá priorita systémového protokolu: %s" -#: logsrvd/logsrvd_conf.c:1192 +#: logsrvd/logsrvd_conf.c:1197 #, c-format msgid "%s:%d unmatched '[': %s" msgstr "%s:%d nepárová „[“: %s" -#: logsrvd/logsrvd_conf.c:1198 +#: logsrvd/logsrvd_conf.c:1203 #, c-format msgid "%s:%d garbage after ']': %s" msgstr "%s:%d smetí po „]“: %s" -#: logsrvd/logsrvd_conf.c:1210 +#: logsrvd/logsrvd_conf.c:1215 #, c-format msgid "%s:%d invalid config section: %s" msgstr "%s:%d neplatný konfigurační oddíl: %s" -#: logsrvd/logsrvd_conf.c:1218 +#: logsrvd/logsrvd_conf.c:1223 #, c-format msgid "%s:%d invalid configuration line: %s" msgstr "%s:%d neplatný řádek s konfigurací: %s" -#: logsrvd/logsrvd_conf.c:1224 +#: logsrvd/logsrvd_conf.c:1229 #, c-format msgid "%s:%d expected section name: %s" msgstr "%s:%d očekávaný název oddílu: %s" -#: logsrvd/logsrvd_conf.c:1246 +#: logsrvd/logsrvd_conf.c:1251 #, c-format msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] nedovolený klíč: %s" -#: logsrvd/logsrvd_conf.c:1276 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1035 +#: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "nelze otevřít soubor protokolu %s" -#: logsrvd/logsrvd_conf.c:1757 +#: logsrvd/logsrvd_conf.c:1763 msgid "unable to initialize server TLS context" msgstr "TLS kontext serveru nelze inicializovat" -#: logsrvd/logsrvd_conf.c:1777 +#: logsrvd/logsrvd_conf.c:1783 msgid "unable to initialize relay TLS context" msgstr "TLS kontext relay nelze inicializovat" -#: logsrvd/logsrvd_journal.c:136 logsrvd/logsrvd_journal.c:411 -#: logsrvd/logsrvd_journal.c:416 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "soubor s žurnálem nelze vytvořit" -#: logsrvd/logsrvd_journal.c:140 logsrvd/logsrvd_queue.c:104 -#: plugins/sudoers/visudo.c:1020 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "%s nelze uzamknout" -#: logsrvd/logsrvd_journal.c:143 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "soubor s žurnálem nelze zamknout" -#: logsrvd/logsrvd_journal.c:151 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "soubor s žurnálem nelze otevřít" -#: logsrvd/logsrvd_journal.c:172 logsrvd/logsrvd_journal.c:447 -#: logsrvd/logsrvd_journal.c:452 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "soubor s žurnálem nelze zapsat" -#: logsrvd/logsrvd_journal.c:180 logsrvd/logsrvd_journal.c:187 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "soubor s žurnálem nelze přejmenovat" -#: logsrvd/logsrvd_journal.c:234 logsrvd/logsrvd_journal.c:235 -#: logsrvd/logsrvd_journal.c:269 logsrvd/logsrvd_journal.c:270 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "nečekaný konec souboru při čtení žurnálu" -#: logsrvd/logsrvd_journal.c:238 logsrvd/logsrvd_journal.c:239 -#: logsrvd/logsrvd_journal.c:273 logsrvd/logsrvd_journal.c:274 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "chyba při čtení souboru s žurnálem" -#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:371 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "neplatný soubor s žurnálem, nelze restartovat" -#: logsrvd/logsrvd_journal.c:430 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "nelze se přesunou na [%lld, %ld] v souboru žurnálu %s" -#: logsrvd/logsrvd_local.c:153 +#: logsrvd/logsrvd_local.c:166 +#, c-format +msgid "unexpected value_case %d in %s from %s" +msgstr "nečekaná hodnota value_case %d v %s od %s" + +#: logsrvd/logsrvd_local.c:194 msgid "error parsing AcceptMessage" msgstr "chyba při rozboru zprávy AcceptMessage" -#: logsrvd/logsrvd_local.c:164 +#: logsrvd/logsrvd_local.c:205 msgid "error creating I/O log" msgstr "chyba při vytváření vstupně-výstupního protokolu" -#: logsrvd/logsrvd_local.c:187 +#: logsrvd/logsrvd_local.c:228 msgid "error logging accept event" msgstr "chyba při protokolování události přijetí" -#: logsrvd/logsrvd_local.c:226 +#: logsrvd/logsrvd_local.c:267 msgid "error parsing RejectMessage" msgstr "chyba při rozboru zprávy RejectMessage" -#: logsrvd/logsrvd_local.c:250 +#: logsrvd/logsrvd_local.c:291 msgid "error logging reject event" msgstr "chyba při protokolování události zamítnutí" -#: logsrvd/logsrvd_local.c:386 logsrvd/logsrvd_local.c:394 +#: logsrvd/logsrvd_local.c:427 logsrvd/logsrvd_local.c:435 msgid "error logging exit event" msgstr "chyba při protokolování události ukončení" -#: logsrvd/logsrvd_local.c:451 logsrvd/logsrvd_local.c:452 +#: logsrvd/logsrvd_local.c:492 logsrvd/logsrvd_local.c:493 msgid "log is already complete, cannot be restarted" msgstr "protokol byl již dokončen, nelze jej restartovat" -#: logsrvd/logsrvd_local.c:482 +#: logsrvd/logsrvd_local.c:523 msgid "unable to restart log" msgstr "protokol nelze navázat" -#: logsrvd/logsrvd_local.c:498 +#: logsrvd/logsrvd_local.c:539 msgid "error parsing AlertMessage" msgstr "chyba při rozboru zprávy AlertMessage" -#: logsrvd/logsrvd_local.c:508 +#: logsrvd/logsrvd_local.c:549 msgid "error logging alert event" msgstr "chyba při protokolování události upozornění" -#: logsrvd/logsrvd_local.c:544 logsrvd/logsrvd_local.c:607 -#: logsrvd/logsrvd_local.c:642 +#: logsrvd/logsrvd_local.c:585 logsrvd/logsrvd_local.c:648 +#: logsrvd/logsrvd_local.c:683 #, c-format msgid "unable to format timing buffer, length %d" msgstr "nelze naformátovat časový údaj, délka %d" -#: logsrvd/logsrvd_local.c:558 logsrvd/logsrvd_local.c:566 -#: logsrvd/logsrvd_local.c:614 logsrvd/logsrvd_local.c:649 -#: plugins/sudoers/sudoreplay.c:351 +#: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 +#: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" -#: logsrvd/logsrvd_local.c:577 +#: logsrvd/logsrvd_local.c:618 msgid "randomly dropping connection" msgstr "náhodně zahazuje spojení" -#: logsrvd/logsrvd_local.c:589 +#: logsrvd/logsrvd_local.c:630 msgid "error writing IoBuffer" msgstr "chyba při zápisu IoBuffer" -#: logsrvd/logsrvd_local.c:624 +#: logsrvd/logsrvd_local.c:665 msgid "error writing ChangeWindowSize" msgstr "chyba při zápisu ChangeWindowSize" -#: logsrvd/logsrvd_local.c:659 +#: logsrvd/logsrvd_local.c:700 msgid "error writing CommandSuspend" msgstr "chyba při zápisu CommandSuspend" -#: logsrvd/logsrvd_relay.c:430 +#: logsrvd/logsrvd_relay.c:435 msgid "TLS handshake with relay host failed" msgstr "navazování TLS spojení se strojem relaye selhalo" -#: logsrvd/logsrvd_relay.c:458 +#: logsrvd/logsrvd_relay.c:463 msgid "unable to connect to relay host" msgstr "ke stroji relaye se nelze připojit" -#: logsrvd/logsrvd_relay.c:513 +#: logsrvd/logsrvd_relay.c:518 #, c-format msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: neplatná správa ServerHello, chybí server_id" -#: logsrvd/logsrvd_relay.c:515 logsrvd/sendlog.c:1121 -#: plugins/sudoers/log_client.c:1504 +#: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "neplatná správa ServerHello" -#: logsrvd/logsrvd_relay.c:674 +#: logsrvd/logsrvd_relay.c:679 msgid "unrecognized ServerMessage type" msgstr "nerozpoznaný druh zprávy ServerMessage" -#: logsrvd/logsrvd_relay.c:703 +#: logsrvd/logsrvd_relay.c:708 #, c-format msgid "timed out reading from relay %s (%s)" msgstr "při čtení z relaye %s (%s) vypršel časový limit" -#: logsrvd/logsrvd_relay.c:705 +#: logsrvd/logsrvd_relay.c:710 msgid "timeout reading from relay" msgstr "při čtení z relaye vypršel časový limit" -#: logsrvd/logsrvd_relay.c:757 +#: logsrvd/logsrvd_relay.c:762 msgid "relay host name does not match certificate" msgstr "název stroje relaye neodpovídá certifikátu" -#: logsrvd/logsrvd_relay.c:763 logsrvd/logsrvd_relay.c:777 -#: logsrvd/logsrvd_relay.c:784 +#: logsrvd/logsrvd_relay.c:768 logsrvd/logsrvd_relay.c:782 +#: logsrvd/logsrvd_relay.c:789 msgid "error reading from relay" msgstr "chyba při čtení z relaye" -#: logsrvd/logsrvd_relay.c:805 +#: logsrvd/logsrvd_relay.c:810 msgid "unable to read from relay" msgstr "z relaye nelze číst" -#: logsrvd/logsrvd_relay.c:820 logsrvd/logsrvd_relay.c:938 +#: logsrvd/logsrvd_relay.c:825 logsrvd/logsrvd_relay.c:943 msgid "relay server closed connection" msgstr "relay server uzavřel spojení" -#: logsrvd/logsrvd_relay.c:838 +#: logsrvd/logsrvd_relay.c:843 msgid "server message too large" msgstr "správa od serveru je příliš velká" -#: logsrvd/logsrvd_relay.c:902 +#: logsrvd/logsrvd_relay.c:907 #, c-format msgid "timed out writing to relay %s (%s)" msgstr "při zapisování do relaye %s (%s) vypršel časový limit" -#: logsrvd/logsrvd_relay.c:904 +#: logsrvd/logsrvd_relay.c:909 msgid "timeout writing to relay" msgstr "při zapisování do relaye vypršel časový limit" -#: logsrvd/logsrvd_relay.c:957 logsrvd/logsrvd_relay.c:964 -#: logsrvd/logsrvd_relay.c:974 +#: logsrvd/logsrvd_relay.c:962 logsrvd/logsrvd_relay.c:969 +#: logsrvd/logsrvd_relay.c:981 msgid "error writing to relay" msgstr "chyba při zápisu do relaye" -#: logsrvd/sendlog.c:114 +#: logsrvd/sendlog.c:119 msgid "send sudo I/O log to remote server" msgstr "odešle vstupně-výstupní protokol vzdálenému serveru" -#: logsrvd/sendlog.c:120 +#: logsrvd/sendlog.c:125 msgid "only send an accept event (no I/O)" msgstr "odešle pouze událost přijetí (žádný vstup-výstup)" -#: logsrvd/sendlog.c:123 +#: logsrvd/sendlog.c:128 msgid "certificate bundle file to verify server's cert against" msgstr "soubor se svazkem certifikátů, proti kterým se má ověřit certifikát serveru" -#: logsrvd/sendlog.c:125 +#: logsrvd/sendlog.c:130 msgid "certificate file for TLS handshake" msgstr "soubor s certifikátem pro navázání TLS" -#: logsrvd/sendlog.c:128 +#: logsrvd/sendlog.c:133 msgid "host to send logs to" msgstr "stroj, kam zaslat protokoly" -#: logsrvd/sendlog.c:130 +#: logsrvd/sendlog.c:135 msgid "remote ID of I/O log to be resumed" msgstr "vzdálený identifikátor protokolu vstupu-výstupu, na kterým se má navázat" -#: logsrvd/sendlog.c:133 +#: logsrvd/sendlog.c:138 msgid "private key file" msgstr "soubor se soukromým klíčem" -#: logsrvd/sendlog.c:135 +#: logsrvd/sendlog.c:140 msgid "do not verify server certificate" msgstr "neověřovat certifikát serveru" -#: logsrvd/sendlog.c:138 +#: logsrvd/sendlog.c:143 msgid "port to use when connecting to host" msgstr "port, který se použije při připojovaní na stroj" -#: logsrvd/sendlog.c:140 +#: logsrvd/sendlog.c:145 msgid "restart previous I/O log transfer" msgstr "navázat na předchozí přenos protokolu vstupu-výstupu" -#: logsrvd/sendlog.c:142 +#: logsrvd/sendlog.c:147 msgid "reject the command with the given reason" msgstr "zamítnout příkaz se zadaným důvodem" -#: logsrvd/sendlog.c:144 +#: logsrvd/sendlog.c:149 msgid "stop transfer after reaching this time" msgstr "zastavit přenos po dosažení tohoto času" -#: logsrvd/sendlog.c:146 +#: logsrvd/sendlog.c:151 msgid "test audit server by sending selected I/O log n times in parallel" msgstr "vyzkoušet auditní server zasláním vybraného protokolu vstupu-výstupu n-krát souběžně" -#: logsrvd/sendlog.c:171 plugins/sudoers/log_client.c:448 +#: logsrvd/sendlog.c:176 plugins/sudoers/log_client.c:453 #, c-format msgid "unable to look up %s:%s: %s" msgstr "%s:%s nelze vyhledat: %s" -#: logsrvd/sendlog.c:209 +#: logsrvd/sendlog.c:214 msgid "unable to get server IP addr" msgstr "nelze získat IP adresu serveru" -#: logsrvd/sendlog.c:295 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "%s/%s nelze přečíst: %s" -#: logsrvd/sendlog.c:1045 plugins/sudoers/iolog.c:949 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 #: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "nečekaná I/O událost %d" -#: logsrvd/sendlog.c:1098 logsrvd/sendlog.c:1115 logsrvd/sendlog.c:1149 -#: plugins/sudoers/log_client.c:1153 plugins/sudoers/log_client.c:1430 -#: plugins/sudoers/log_client.c:1498 plugins/sudoers/log_client.c:1537 +#: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: nečekaný stav %d" -#: logsrvd/sendlog.c:1185 plugins/sudoers/log_client.c:1586 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "od serveru byla přijata chybová zpráva: %s" -#: logsrvd/sendlog.c:1198 plugins/sudoers/log_client.c:1599 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "od serveru byla přijata zpráva o zrušení: %s" -#: logsrvd/sendlog.c:1257 plugins/sudoers/log_client.c:1649 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: nečekaná hodnota type_case %d" -#: logsrvd/sendlog.c:1286 +#: logsrvd/sendlog.c:1261 msgid "timeout reading from server" msgstr "při čtení ze serveru vypršel časový limit" -#: logsrvd/sendlog.c:1335 plugins/sudoers/log_client.c:1765 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "název stroje neodpovídá certifikátu" -#: logsrvd/sendlog.c:1368 +#: logsrvd/sendlog.c:1343 msgid "premature EOF" msgstr "předčasný konec souboru" -#: logsrvd/sendlog.c:1381 plugins/sudoers/log_client.c:1812 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "správa od serveru je příliš velká: %u" -#: logsrvd/sendlog.c:1437 +#: logsrvd/sendlog.c:1412 msgid "timeout writing to server" msgstr "při zapisování do serveru vypršel časový limit" -#: logsrvd/sendlog.c:1802 +#: logsrvd/sendlog.c:1779 msgid "both restart point and iolog ID must be specified" msgstr "musí být zadán jak bod navázání, tak i identifikátor iolog" -#: logsrvd/sendlog.c:1806 +#: logsrvd/sendlog.c:1783 msgid "a restart point may not be set when no I/O is sent" msgstr "bod navázání nelze nastavit, když žádný vstup/výstup nebyl odeslán" -#: logsrvd/sendlog.c:1882 +#: logsrvd/sendlog.c:1859 #, c-format msgid "exited prematurely with state %d" msgstr "ukončeno předčasně ve stavu %d" -#: logsrvd/sendlog.c:1883 +#: logsrvd/sendlog.c:1860 #, c-format msgid "elapsed time sent to server [%lld, %ld]" msgstr "uplynulý čas zaslaný serveru [%lld, %ld]" -#: logsrvd/sendlog.c:1885 +#: logsrvd/sendlog.c:1862 #, c-format msgid "commit point received from server [%lld, %ld]" msgstr "od server byl přijat bod zápisu [%lld, %ld]" -#: logsrvd/tls_client.c:106 plugins/sudoers/log_client.c:310 +#: logsrvd/tls_client.c:111 plugins/sudoers/log_client.c:315 msgid "TLS handshake timeout occurred" msgstr "Při navazování spojení TLS vypršel časový limit" -#: logsrvd/tls_client.c:126 logsrvd/tls_client.c:142 -#: plugins/sudoers/log_client.c:332 plugins/sudoers/log_client.c:348 +#: logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 +#: plugins/sudoers/log_client.c:337 plugins/sudoers/log_client.c:353 msgid "unable to set event" msgstr "událost nelze nastavit" -#: logsrvd/tls_client.c:152 logsrvd/tls_client.c:156 +#: logsrvd/tls_client.c:157 logsrvd/tls_client.c:161 #, c-format msgid "TLS connection failed: %s" msgstr "spojení TLS selhalo: %s" -#: logsrvd/tls_client.c:191 +#: logsrvd/tls_client.c:196 #, c-format msgid "unable to allocate ssl object: %s" msgstr "objekt SSL nelze alokovat: %s" -#: logsrvd/tls_client.c:205 +#: logsrvd/tls_client.c:210 #, c-format msgid "Unable to attach socket to the ssl object: %s" msgstr "K objektu SSL nelze připojit socket: %s" -#: logsrvd/tls_client.c:233 +#: logsrvd/tls_client.c:238 msgid "unable to initialize TLS context" msgstr "kontext TLS nelze inicializovat" -#: logsrvd/tls_init.c:132 logsrvd/tls_init.c:140 +#: logsrvd/tls_init.c:138 logsrvd/tls_init.c:146 #, c-format msgid "unable to set TLS 1.2 ciphersuite to %s: %s" msgstr "šifru TLS 1.2 nelze nastavit na %s: %s" -#: logsrvd/tls_init.c:160 logsrvd/tls_init.c:168 +#: logsrvd/tls_init.c:166 logsrvd/tls_init.c:174 #, c-format msgid "unable to set TLS 1.3 ciphersuite to %s: %s" msgstr "šifru TLS 1.3 nelze nastavit na %s: %s" -#: logsrvd/tls_init.c:200 logsrvd/tls_init.c:221 +#: logsrvd/tls_init.c:206 logsrvd/tls_init.c:227 #, c-format msgid "unable to set diffie-hellman parameters: %s" msgstr "nelze nastavit parametry Diffieho-Hellmana: %s" -#: logsrvd/tls_init.c:277 +#: logsrvd/tls_init.c:283 #, c-format msgid "unable to create TLS context: %s" msgstr "nelze vytvořit kontext TLS: %s" -#: logsrvd/tls_init.c:284 +#: logsrvd/tls_init.c:290 #, c-format msgid "unable to set minimum protocol version to TLS 1.2: %s" msgstr "nelze nastavit minimální verzi protokolu na TLS 1.2: %s" -#: plugins/sudoers/audit.c:267 plugins/sudoers/audit.c:419 -#: plugins/sudoers/log_client.c:986 plugins/sudoers/log_client.c:1035 -#: plugins/sudoers/log_client.c:1084 plugins/sudoers/log_client.c:1210 -#: plugins/sudoers/logging.c:599 plugins/sudoers/logging.c:696 -#: plugins/sudoers/logging.c:800 plugins/sudoers/logging.c:989 -#: plugins/sudoers/policy.c:123 +#: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 +#: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "nelze získat čas" @@ -1506,7 +1546,7 @@ msgstr "Účtu vypršela platnost nebo v konfiguraci PAM pro sudo chybí sekce msgid "PAM account management error: %s" msgstr "Chyba správy účtů PAM: %s" -#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:266 +#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:271 #, c-format msgid "you do not exist in the %s database" msgstr "v databázi %s neexistujete" @@ -1523,11 +1563,11 @@ msgstr "nelze kontaktovat server SecurID" msgid "User ID locked for SecurID Authentication" msgstr "ID uživatele je pro autentizaci SecurID uzamčeno" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "neplatná délka uživatelského jména pro SecurID" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "neplatný deskriptor autentizace pro SecurID" @@ -1535,11 +1575,11 @@ msgstr "neplatný deskriptor autentizace pro SecurID" msgid "SecurID communication failed" msgstr "komunikace se SecurID selhala" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "neznámá chyba SecurID" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "neplatná délka kódu pro SecurID" @@ -1579,17 +1619,17 @@ msgstr "Nebylo možné určit podmínku pro audit" msgid "unable to commit audit record" msgstr "auditní zprávu nelze odeslat" -#: plugins/sudoers/check.c:275 +#: plugins/sudoers/check.c:285 #, c-format msgid "error reading lecture file %s" msgstr "chyba při čtení souboru lekce %s" -#: plugins/sudoers/check.c:278 +#: plugins/sudoers/check.c:288 #, c-format msgid "ignoring lecture file %s: not a regular file" msgstr "ignoruje se soubor lekce %s: nejedná se o běžný soubor" -#: plugins/sudoers/check.c:291 +#: plugins/sudoers/check.c:301 msgid "" "\n" "We trust you have received the usual lecture from the local System\n" @@ -1609,14 +1649,22 @@ msgstr "" " 3. S velkými právy přichází velká zodpovědnost.\n" "\n" -#: plugins/sudoers/check.c:342 plugins/sudoers/check.c:352 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:901 -#: plugins/sudoers/sudoers.c:922 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"Z bezpečnostních důvodů zadávané heslo nebude zobrazeno.\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "neznámé UID %u" -#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1278 +#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1279 #, c-format msgid "%s: %s\n" msgstr "%s: %s\n" @@ -1646,7 +1694,7 @@ msgstr "počáteční pořadí: %s: %s" msgid "order padding: %s: %s" msgstr "odsazení pořadí: %s: %s" -#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:182 +#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:184 #, c-format msgid "%s grammar version %d\n" msgstr "verze gramatiky %s je %d\n" @@ -1666,14 +1714,13 @@ msgstr "nepodporovaný formát výstupu %s" msgid "%s: input and output files must be different" msgstr "%s: vstupní a výstupní soubory se musí lišit" -#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:165 -#: plugins/sudoers/sudoers.c:217 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:275 plugins/sudoers/visudo.c:644 -#: plugins/sudoers/visudo.c:969 +#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 +#: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "nelze inicializovat výchozí hodnoty sudoers" -#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:433 +#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:434 #, c-format msgid "%s: %s: %s: %s" msgstr "%s: %s: %s: %s" @@ -1698,18 +1745,18 @@ msgstr "neplatný druh potlačení: %s" msgid "invalid filter: %s" msgstr "neplatný filtr: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:974 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "rozbor souboru %s se nezdařil, neznámá chyba" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 -#: plugins/sudoers/timestamp.c:317 plugins/sudoers/timestamp.c:320 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 +#: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" msgstr "do %s nelze zapsat" -#: plugins/sudoers/cvtsudoers.c:1501 +#: plugins/sudoers/cvtsudoers.c:1506 #, c-format msgid "" "%s - convert between sudoers file formats\n" @@ -1718,7 +1765,7 @@ msgstr "" "%s – převádí mezí formáty souboru sudoers\n" "\n" -#: plugins/sudoers/cvtsudoers.c:1503 +#: plugins/sudoers/cvtsudoers.c:1508 msgid "" "\n" "Options:\n" @@ -1760,17 +1807,36 @@ msgstr "" " -s, --suppress=oddíl potlačí výstup jistých oddílů\n" " -V, --version zobrazí údaje o verzi a skončí" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "vnitřní chyba, přetečení %s" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "nelze získat čas GMT" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "nelze naformátovat časový údaj" @@ -2173,359 +2239,383 @@ msgid "Log user's input for the command being run" msgstr "Zaznamenávat vstup uživatele pro spouštěný příkaz" #: plugins/sudoers/def_data.c:356 +msgid "Log the command's standard input if not connected to a terminal" +msgstr "Zaznamenávat standardní vstup příkazu, není-li připojen terminál" + +#: plugins/sudoers/def_data.c:360 +msgid "Log the user's terminal input for the command being run" +msgstr "Zaznamenávat vstup terminálu uživatele pro spouštěný příkaz" + +#: plugins/sudoers/def_data.c:364 msgid "Log the output of the command being run" msgstr "Zaznamenávat výstup spouštěného příkazu" -#: plugins/sudoers/def_data.c:360 +#: plugins/sudoers/def_data.c:368 +msgid "Log the command's standard output if not connected to a terminal" +msgstr "Zaznamenávat standardní výstup příkazu, není připojen terminál" + +#: plugins/sudoers/def_data.c:372 +msgid "Log the command's standard error if not connected to a terminal" +msgstr "Zaznamenávat chybový výstup příkazu, není-li připojen terminál" + +#: plugins/sudoers/def_data.c:376 +msgid "Log the terminal output of the command being run" +msgstr "Zaznamenávat výstup terminálu spouštěného příkazu" + +#: plugins/sudoers/def_data.c:380 msgid "Compress I/O logs using zlib" msgstr "Komprimovat protokoly o vstupu/výstupu pomocí zlib" -#: plugins/sudoers/def_data.c:364 +#: plugins/sudoers/def_data.c:384 msgid "Always run commands in a pseudo-tty" msgstr "Vždy spouštět příkazy v pseudoTTY" -#: plugins/sudoers/def_data.c:368 +#: plugins/sudoers/def_data.c:388 #, c-format msgid "Plugin for non-Unix group support: %s" msgstr "Modul pro podporu neunixových skupin: %s" -#: plugins/sudoers/def_data.c:372 +#: plugins/sudoers/def_data.c:392 #, c-format msgid "Directory in which to store input/output logs: %s" msgstr "Adresář, kam ukládat protokoly o vstupu/výstupu: %s" -#: plugins/sudoers/def_data.c:376 +#: plugins/sudoers/def_data.c:396 #, c-format msgid "File in which to store the input/output log: %s" msgstr "Soubor, do kterého ukládat protokol o vstupu/výstupu: %s" -#: plugins/sudoers/def_data.c:380 +#: plugins/sudoers/def_data.c:400 msgid "Add an entry to the utmp/utmpx file when allocating a pty" msgstr "Při alokaci PTY přidat záznam do souboru utmp/utmpx" -#: plugins/sudoers/def_data.c:384 +#: plugins/sudoers/def_data.c:404 msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "Do utmp zapisovat runas uživatele, nikoliv uživatele volajícího" -#: plugins/sudoers/def_data.c:388 +#: plugins/sudoers/def_data.c:408 #, c-format msgid "Set of permitted privileges: %s" msgstr "Množina povolujících práv: %s" -#: plugins/sudoers/def_data.c:392 +#: plugins/sudoers/def_data.c:412 #, c-format msgid "Set of limit privileges: %s" msgstr "Množina omezujících práv: %s" -#: plugins/sudoers/def_data.c:396 +#: plugins/sudoers/def_data.c:416 msgid "Run commands on a pty in the background" msgstr "Spouštět příkazy v PTY na pozadí" -#: plugins/sudoers/def_data.c:400 +#: plugins/sudoers/def_data.c:420 #, c-format msgid "PAM service name to use: %s" msgstr "Použít tuto službu PAM: %s" -#: plugins/sudoers/def_data.c:404 +#: plugins/sudoers/def_data.c:424 #, c-format msgid "PAM service name to use for login shells: %s" msgstr "Název služby PAM, která se použije pro přihlašovací shelly: %s" -#: plugins/sudoers/def_data.c:408 +#: plugins/sudoers/def_data.c:428 #, c-format msgid "PAM service name to use when sudo is run with the -A option: %s" msgstr "Název služby PAM, která se použije, když sudo běží s přepínačem -A: %s" -#: plugins/sudoers/def_data.c:412 +#: plugins/sudoers/def_data.c:432 msgid "Attempt to establish PAM credentials for the target user" msgstr "Pokusit se získat pověření PAM pro cílového uživatele" -#: plugins/sudoers/def_data.c:416 +#: plugins/sudoers/def_data.c:436 msgid "Create a new PAM session for the command to run in" msgstr "Vytvořit pro spouštěný příkaz novou relaci PAM" -#: plugins/sudoers/def_data.c:420 +#: plugins/sudoers/def_data.c:440 msgid "Perform PAM account validation management" msgstr "Ověřit platnost účtu pomocí PAM" -#: plugins/sudoers/def_data.c:424 +#: plugins/sudoers/def_data.c:444 #, c-format msgid "Maximum I/O log sequence number: %s" msgstr "Maximální pořadové číslo protokolu vstupu/výstupu: %s" -#: plugins/sudoers/def_data.c:428 +#: plugins/sudoers/def_data.c:448 msgid "Enable sudoers netgroup support" msgstr "Zapnout v sudoers podporu netgroup" -#: plugins/sudoers/def_data.c:432 +#: plugins/sudoers/def_data.c:452 msgid "Check parent directories for writability when editing files with sudoedit" msgstr "Kontrolovat nadřazené adresáře na možnost zápisu při úpravě souborů pomocí sudoedit" -#: plugins/sudoers/def_data.c:436 +#: plugins/sudoers/def_data.c:456 msgid "Follow symbolic links when editing files with sudoedit" msgstr "Následovat symbolické odkazy při úpravě souborů pomocí sudoedit" -#: plugins/sudoers/def_data.c:440 +#: plugins/sudoers/def_data.c:460 msgid "Query the group plugin for unknown system groups" msgstr "Dotazovat se modulu pro skupiny na neznámé systémové skupiny" -#: plugins/sudoers/def_data.c:444 +#: plugins/sudoers/def_data.c:464 msgid "Match netgroups based on the entire tuple: user, host and domain" msgstr "Porovnávat netgroups na celou n-tici: uživatel, stroj a doména" -#: plugins/sudoers/def_data.c:448 +#: plugins/sudoers/def_data.c:468 msgid "Allow commands to be run even if sudo cannot write to the audit log" msgstr "Dovolit spuštění příkazu, i když sudo nemůže zapsat do auditního protokolu" -#: plugins/sudoers/def_data.c:452 +#: plugins/sudoers/def_data.c:472 msgid "Allow commands to be run even if sudo cannot write to the I/O log" msgstr "Dovolit spuštění příkazu, i když sudo nemůže zapsat do I/O protokolu" -#: plugins/sudoers/def_data.c:456 +#: plugins/sudoers/def_data.c:476 msgid "Allow commands to be run even if sudo cannot write to the log file" msgstr "Dovolit spuštění příkazu, i když sudo nemůže zapsat do souboru s protokolem" -#: plugins/sudoers/def_data.c:460 +#: plugins/sudoers/def_data.c:480 msgid "Resolve groups in sudoers and match on the group ID, not the name" msgstr "Překládat skupiny v sudoers a hledat shodu na ID skupiny, ne na jméně" -#: plugins/sudoers/def_data.c:464 +#: plugins/sudoers/def_data.c:484 #, c-format msgid "Log entries larger than this value will be split into multiple syslog messages: %u" msgstr "Položky protokolu větší než tato hodnota budou rozděleny do více zpráv syslogu: %u" -#: plugins/sudoers/def_data.c:468 +#: plugins/sudoers/def_data.c:488 #, c-format msgid "User that will own the I/O log files: %s" msgstr "Uživatel, který bude vlastnit soubory s I/O protokolem: %s" -#: plugins/sudoers/def_data.c:472 +#: plugins/sudoers/def_data.c:492 #, c-format msgid "Group that will own the I/O log files: %s" msgstr "Skupina, která bude vlastnit soubory s I/O protokolem: %s" -#: plugins/sudoers/def_data.c:476 +#: plugins/sudoers/def_data.c:496 #, c-format msgid "File mode to use for the I/O log files: 0%o" msgstr "Přístupová práva k souboru s I/O protokolem: 0%o" -#: plugins/sudoers/def_data.c:480 +#: plugins/sudoers/def_data.c:500 #, c-format msgid "Execute commands by file descriptor instead of by path: %s" msgstr "Spustit příkazy podle deskriptoru souboru namísto podle cesty: %s" -#: plugins/sudoers/def_data.c:484 +#: plugins/sudoers/def_data.c:504 msgid "Ignore unknown Defaults entries in sudoers instead of producing a warning" msgstr "Ignorovat neznámé položky Defaults v sudoers namísto vypisování varování" -#: plugins/sudoers/def_data.c:488 +#: plugins/sudoers/def_data.c:508 #, c-format msgid "Time in seconds after which the command will be terminated: %u" msgstr "Čas v sekundách, po kterém bude příkaz ukončen: %u" -#: plugins/sudoers/def_data.c:492 +#: plugins/sudoers/def_data.c:512 msgid "Allow the user to specify a timeout on the command line" msgstr "Povolit uživateli zadat časový limit na příkazovém řádku" -#: plugins/sudoers/def_data.c:496 +#: plugins/sudoers/def_data.c:516 msgid "Flush I/O log data to disk immediately instead of buffering it" msgstr "Zapisovat log na disk ihned namísto po větších částech" -#: plugins/sudoers/def_data.c:500 +#: plugins/sudoers/def_data.c:520 msgid "Include the process ID when logging via syslog" msgstr "Při protokolování přes syslog zahrnout ID procesu" -#: plugins/sudoers/def_data.c:504 +#: plugins/sudoers/def_data.c:524 #, c-format msgid "Type of authentication timestamp record: %s" msgstr "Druh záznamu s časovým údajem autentizace: %s" -#: plugins/sudoers/def_data.c:508 +#: plugins/sudoers/def_data.c:528 #, c-format msgid "Authentication failure message: %s" msgstr "Zpráva o selhání autentizace: %s" -#: plugins/sudoers/def_data.c:512 +#: plugins/sudoers/def_data.c:532 msgid "Ignore case when matching user names" msgstr "Ignorovat velikost znaků při porovnávání jmen uživatelů" -#: plugins/sudoers/def_data.c:516 +#: plugins/sudoers/def_data.c:536 msgid "Ignore case when matching group names" msgstr "Ignorovat velikost znaků při porovnávání názvů skupin" -#: plugins/sudoers/def_data.c:520 +#: plugins/sudoers/def_data.c:540 msgid "Log when a command is allowed by sudoers" msgstr "Zaznamenat do protokolu, když je příkaz povolen v sudoers" -#: plugins/sudoers/def_data.c:524 +#: plugins/sudoers/def_data.c:544 msgid "Log when a command is denied by sudoers" msgstr "Zaznamenat do protokolu, když je příkaz zakázán v sudoers" -#: plugins/sudoers/def_data.c:528 +#: plugins/sudoers/def_data.c:548 msgid "Sudo log server(s) to connect to with optional port" msgstr "Protokolový server(y) suda, kam se připojit s volitelným portem" -#: plugins/sudoers/def_data.c:532 +#: plugins/sudoers/def_data.c:552 #, c-format msgid "Sudo log server timeout in seconds: %u" msgstr "Časový limit protokolového serveru suda v sekundách: %u" -#: plugins/sudoers/def_data.c:536 +#: plugins/sudoers/def_data.c:556 msgid "Enable SO_KEEPALIVE socket option on the socket connected to the logserver" msgstr "Zapnout volbu socketu SO_KEEPALIVE na socketu připojeném k protokolovému serveru" -#: plugins/sudoers/def_data.c:540 +#: plugins/sudoers/def_data.c:560 #, c-format msgid "Path to the audit server's CA bundle file: %s" msgstr "Cesta k souboru se svazkem certifikátů autorit auditního serveru: %s" -#: plugins/sudoers/def_data.c:544 +#: plugins/sudoers/def_data.c:564 #, c-format msgid "Path to the sudoers certificate file: %s" msgstr "Cesta k souboru s certifikátem sudoers: %s" -#: plugins/sudoers/def_data.c:548 +#: plugins/sudoers/def_data.c:568 #, c-format msgid "Path to the sudoers private key file: %s" msgstr "Cesta k souboru se soukromým klíčem sudoers: %s" -#: plugins/sudoers/def_data.c:552 +#: plugins/sudoers/def_data.c:572 msgid "Verify that the log server's certificate is valid" msgstr "Ověřit, že certifikát protokolovacího serveru je platný" -#: plugins/sudoers/def_data.c:556 +#: plugins/sudoers/def_data.c:576 msgid "Allow the use of unknown runas user and/or group ID" msgstr "Dovolit použití neznámých ID uživatelů a/nebo skupin u klíčového slova runas" -#: plugins/sudoers/def_data.c:560 +#: plugins/sudoers/def_data.c:580 msgid "Only permit running commands as a user with a valid shell" msgstr "Pouze dovolit spuštění příkazů jako uživatel s platným shellem" -#: plugins/sudoers/def_data.c:564 +#: plugins/sudoers/def_data.c:584 msgid "Set the pam remote user to the user running sudo" msgstr "Nastavit vzdáleného uživatele PAM na uživatele, který spustil sudo" -#: plugins/sudoers/def_data.c:568 +#: plugins/sudoers/def_data.c:588 msgid "Set the pam remote host to the local host name" msgstr "Nastavit vzdálený stroj PAM na název tohoto stroje" -#: plugins/sudoers/def_data.c:572 +#: plugins/sudoers/def_data.c:592 #, c-format msgid "Working directory to change to before executing the command: %s" msgstr "Kam změnit pracovní adresář před spuštěním příkazu: %s" -#: plugins/sudoers/def_data.c:576 +#: plugins/sudoers/def_data.c:596 #, c-format msgid "Root directory to change to before executing the command: %s" msgstr "Kam změnit kořenový adresář před spuštěním příkazu: %s" -#: plugins/sudoers/def_data.c:580 +#: plugins/sudoers/def_data.c:600 #, c-format msgid "The format of logs to produce: %s" msgstr "Vytvářet protokol v tomto formátu: %s" -#: plugins/sudoers/def_data.c:584 +#: plugins/sudoers/def_data.c:604 msgid "Enable SELinux RBAC support" msgstr "Zapnout podporu pro SELinux RBAC" -#: plugins/sudoers/def_data.c:588 +#: plugins/sudoers/def_data.c:608 #, c-format msgid "Path to the file that is created the first time sudo is run: %s" msgstr "Cesta k souboru, který se vytvoří při prvním spuštění suda: %s" -#: plugins/sudoers/def_data.c:592 +#: plugins/sudoers/def_data.c:612 msgid "Intercept further commands and apply sudoers restrictions to them" msgstr "Zachytávat další příkazy a použít na ně omezení sudoers" -#: plugins/sudoers/def_data.c:596 +#: plugins/sudoers/def_data.c:616 msgid "Log sub-commands run by the original command" msgstr "Zaznamenávat podpříkazy spuštěné původním příkazem" -#: plugins/sudoers/def_data.c:600 +#: plugins/sudoers/def_data.c:620 msgid "Log the exit status of commands" msgstr "Zaznamenávat návratový kód příkazů" -#: plugins/sudoers/def_data.c:604 +#: plugins/sudoers/def_data.c:624 msgid "Subsequent commands in an intercepted session must be authenticated" msgstr "Posloupnost příkazů v zachycené relaci musí být autentizována" -#: plugins/sudoers/def_data.c:608 +#: plugins/sudoers/def_data.c:628 msgid "Allow an intercepted command to run set setuid or setgid programs" msgstr "Dovolit zachycenému příkazu spustit setuid nebo setgid programy" -#: plugins/sudoers/def_data.c:612 +#: plugins/sudoers/def_data.c:632 #, c-format msgid "The maximum size to which the process's address space may grow (in bytes): %s" msgstr "Největší velikost, které smí adresní prostor procesu dorůst (v bajtech): %s" -#: plugins/sudoers/def_data.c:616 +#: plugins/sudoers/def_data.c:636 #, c-format msgid "The largest size core dump file that may be created (in bytes): %s" msgstr "Největší velikost souboru s obrazem paměti, který smí být vytvořen (v bajtech): %s" -#: plugins/sudoers/def_data.c:620 +#: plugins/sudoers/def_data.c:640 #, c-format msgid "The maximum amount of CPU time that the process may use (in seconds): %s" msgstr "Největší množství procesorového času, který proces smí využít (v sekundách): %s" -#: plugins/sudoers/def_data.c:624 +#: plugins/sudoers/def_data.c:644 #, c-format msgid "The maximum size of the data segment for the process (in bytes): %s" msgstr "Největší velikost datového segmentu procesu (v bajtech): %s" -#: plugins/sudoers/def_data.c:628 +#: plugins/sudoers/def_data.c:648 #, c-format msgid "The largest size file that the process may create (in bytes): %s" msgstr "Největší velikost souboru, který proces smí vytvořit (v bajtech): %s" -#: plugins/sudoers/def_data.c:632 +#: plugins/sudoers/def_data.c:652 #, c-format msgid "The maximum number of locks that the process may establish: %s" msgstr "Největší počet zámků, které proces smí vytvořit: %s" -#: plugins/sudoers/def_data.c:636 +#: plugins/sudoers/def_data.c:656 #, c-format msgid "The maximum size that the process may lock in memory (in bytes): %s" msgstr "Největší velikost paměti, kterou proces smí uzamknout (v bajtech): %s" -#: plugins/sudoers/def_data.c:640 +#: plugins/sudoers/def_data.c:660 #, c-format msgid "The maximum number of files that the process may have open: %s" msgstr "Největší počet souboru, které proces smí držet otevřené: %s" -#: plugins/sudoers/def_data.c:644 +#: plugins/sudoers/def_data.c:664 #, c-format msgid "The maximum number of processes that the user may run simultaneously: %s" msgstr "Největší počet procesů, které uživatel smí souběžně spustit: %s" -#: plugins/sudoers/def_data.c:648 +#: plugins/sudoers/def_data.c:668 #, c-format msgid "The maximum size to which the process's resident set size may grow (in bytes): %s" msgstr "Největší velikost rezidentní paměti, které proces smí dorůst (v bajtech): %s" -#: plugins/sudoers/def_data.c:652 +#: plugins/sudoers/def_data.c:672 #, c-format msgid "The maximum size to which the process's stack may grow (in bytes): %s" msgstr "Největší velikost zásobníku, které proces smí dorůst (v bajtech): %s" -#: plugins/sudoers/def_data.c:656 +#: plugins/sudoers/def_data.c:676 msgid "Attempt authentication even when in non-interactive mode" msgstr "Pokusit se o autentizaci i v neinteraktivním režimu" -#: plugins/sudoers/def_data.c:660 +#: plugins/sudoers/def_data.c:680 msgid "Store plaintext passwords in I/O log input" msgstr "Ukládat čitelná hesla do vstupu I/O protokolu" -#: plugins/sudoers/def_data.c:664 +#: plugins/sudoers/def_data.c:684 msgid "List of regular expressions to use when matching a password prompt" msgstr "Seznam regulárních výrazů, které se použijí na rozpoznání výzvy k heslu" -#: plugins/sudoers/def_data.c:668 +#: plugins/sudoers/def_data.c:688 #, c-format msgid "The mechanism used by the intercept and log_subcmds options: %s" msgstr "Volby mechanismu použitého při zachytávání a log_subcmds: %s" -#: plugins/sudoers/def_data.c:672 +#: plugins/sudoers/def_data.c:692 +msgid "Attempt to verify the command and arguments after execution" +msgstr "Pokusit se ověřit příkaz a argumenty po spuštění" + +#: plugins/sudoers/def_data.c:696 #, c-format msgid "AppArmor profile to use in the new security context: %s" msgstr "Profil AppArmoru, který se použije v novém bezpečnostním kontextu: %s" @@ -2560,31 +2650,40 @@ msgstr "neplatný typ Defaults 0x%x u volby „%s“" msgid "value \"%s\" is invalid for option \"%s\"" msgstr "hodnota „%s“ není pro volbu „%s“ platná" -#: plugins/sudoers/defaults.c:1127 plugins/sudoers/policy.c:207 -#: plugins/sudoers/policy.c:216 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "cesta pro „%s“ je příliš dlouhá" -#: plugins/sudoers/defaults.c:1133 +#: plugins/sudoers/defaults.c:1134 #, c-format msgid "values for \"%s\" must start with a '/', '~', or '*'" msgstr "hodnoty „%s“ musí začínat na „/“, „~“ nebo „*“" -#: plugins/sudoers/defaults.c:1140 +#: plugins/sudoers/defaults.c:1141 #, c-format msgid "values for \"%s\" must start with a '/'" msgstr "hodnoty „%s“ musí začínat na „/“" -#: plugins/sudoers/env.c:412 +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "ingureuje se editor: %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "argumenty editoru nesmí obsahovat „--“" + +#: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: poškozené pole envp, délka nesouhlasí" -#: plugins/sudoers/env.c:1095 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "prostředí nelze znovu sestavit" -#: plugins/sudoers/env.c:1169 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "je nám líto, ale nemáte dovoleno nastavovat následující proměnné prostředí: %s" @@ -2599,27 +2698,17 @@ msgstr "nepodporovaný druh kontrolního součtu %d pro %s" msgid "%s: read error" msgstr "%s: chyba při čtení" -#: plugins/sudoers/group_plugin.c:83 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s musí být vlastněn UID %d" - -#: plugins/sudoers/group_plugin.c:87 -#, c-format -msgid "%s must only be writable by owner" -msgstr "%s smí být zapisovatelný jen pro vlastníka" - -#: plugins/sudoers/group_plugin.c:96 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "nelze zavést %s: %s" -#: plugins/sudoers/group_plugin.c:102 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "v %s nelze nalézt symbol „group_plugin“" -#: plugins/sudoers/group_plugin.c:107 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: nekompatibilní hlavní verze modulu pro skupiny %d, očekávána %d" @@ -2661,19 +2750,19 @@ msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: vnitřní chyba, soubor s I/O protokolem pro událost %d není otevřen" #: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 -#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:849 -#: plugins/sudoers/timestamp.c:941 plugins/sudoers/visudo.c:546 -#: plugins/sudoers/visudo.c:552 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "nelze přečíst hodiny" -#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1228 -#: plugins/sudoers/log_client.c:1238 plugins/sudoers/log_client.c:1242 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: vnitřní chyba, neplatný signál %d" -#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:291 +#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:292 msgid "starttls not supported when using ldaps" msgstr "při použití ldaps není starttls podporováno" @@ -2687,16 +2776,16 @@ msgstr "nelze inicializovat certifikát SSL a databázi klíčů: %s" msgid "you must set TLS_CERT in %s to use SSL" msgstr "pro SSL musíte v %s nastavit TLS_CERT" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "LDAP nelze inicializovat: %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls uvedeno, ale knihovna LDAP nepodporuje ldap_start_tls_s_np() ani ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:747 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "neplatný atribut sudoOrder: %s" @@ -2706,12 +2795,12 @@ msgstr "neplatný atribut sudoOrder: %s" msgid "%s: port too large" msgstr "%s: port je příliš velký" -#: plugins/sudoers/ldap_conf.c:260 +#: plugins/sudoers/ldap_conf.c:261 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "nepodporovaný typ ldapového URI: %s" -#: plugins/sudoers/ldap_conf.c:287 +#: plugins/sudoers/ldap_conf.c:288 msgid "unable to mix ldap and ldaps URIs" msgstr "nelze míchat URI ldap a ldaps" @@ -2736,111 +2825,111 @@ msgstr "nelze otevřít auditní systém" msgid "unable to send audit message" msgstr "nelze odeslat auditní zprávu" -#: plugins/sudoers/log_client.c:120 plugins/sudoers/log_client.c:407 -#: plugins/sudoers/log_client.c:1475 plugins/sudoers/log_client.c:2083 +#: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "chyba ve smyčce událostí" -#: plugins/sudoers/log_client.c:200 +#: plugins/sudoers/log_client.c:205 #, c-format msgid "Creation of new SSL_CTX object failed: %s" msgstr "Vytvoření nového objektu SSL_CTX selhalo: %s" -#: plugins/sudoers/log_client.c:225 +#: plugins/sudoers/log_client.c:230 #, c-format msgid "unable to load certificate authority bundle %s" msgstr "nelze zavést svazek certifikátů autorit %s" -#: plugins/sudoers/log_client.c:247 +#: plugins/sudoers/log_client.c:252 #, c-format msgid "unable to load certificate %s" msgstr "nelze zavést certifikát %s" -#: plugins/sudoers/log_client.c:261 +#: plugins/sudoers/log_client.c:266 #, c-format msgid "unable to load private key %s" msgstr "nelze zavést soukromý klíč %s" -#: plugins/sudoers/log_client.c:270 +#: plugins/sudoers/log_client.c:275 #, c-format msgid "Unable to allocate ssl object: %s" msgstr "Objekt SSL nelze alokovat: %s" -#: plugins/sudoers/log_client.c:359 plugins/sudoers/log_client.c:364 +#: plugins/sudoers/log_client.c:364 plugins/sudoers/log_client.c:369 #, c-format msgid "TLS connection to %s:%s failed: %s" msgstr "Spojení TLS s %s:%s selhalo: %s" -#: plugins/sudoers/log_client.c:538 +#: plugins/sudoers/log_client.c:543 msgid "TLS initialization was unsuccessful" msgstr "Inicializace TLS nebyla úspěšná" -#: plugins/sudoers/log_client.c:548 +#: plugins/sudoers/log_client.c:553 msgid "TLS handshake was unsuccessful" msgstr "Ustanovení spojení TLS nebylo úspěšné" -#: plugins/sudoers/log_client.c:1246 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: vnitřní chyba, neplatný návratový kód %d" -#: plugins/sudoers/log_client.c:1775 plugins/sudoers/log_client.c:1799 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "spojení k protokolovému serveru ztraceno" -#: plugins/sudoers/log_client.c:1876 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "chybí vyrovnávací paměť pro zápis" -#: plugins/sudoers/log_client.c:2024 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "k protokolovacímu serveru se nelze připojit" -#: plugins/sudoers/logging.c:298 +#: plugins/sudoers/logging.c:290 msgid "user NOT in sudoers" msgstr "uživatel NENÍ v sudoers" -#: plugins/sudoers/logging.c:300 +#: plugins/sudoers/logging.c:292 msgid "user NOT authorized on host" msgstr "uživatel NENÍ na stroji autorizován" -#: plugins/sudoers/logging.c:302 +#: plugins/sudoers/logging.c:294 msgid "command not allowed" msgstr "příkaz nedovolen" -#: plugins/sudoers/logging.c:323 +#: plugins/sudoers/logging.c:315 #, c-format msgid "%s is not in the sudoers file.\n" msgstr "%s není v souboru sudoers.\n" -#: plugins/sudoers/logging.c:326 +#: plugins/sudoers/logging.c:318 #, c-format msgid "%s is not allowed to run sudo on %s.\n" msgstr "Uživatel %s nemá dovoleno spustit sudo na %s.\n" -#: plugins/sudoers/logging.c:329 +#: plugins/sudoers/logging.c:321 #, c-format msgid "Sorry, user %s may not run sudo on %s.\n" msgstr "Je nám líto, uživatel %s nesmí spouštět sudo na %s.\n" -#: plugins/sudoers/logging.c:332 +#: plugins/sudoers/logging.c:324 #, c-format msgid "Sorry, user %s is not allowed to execute '%s%s%s' as %s%s%s on %s.\n" msgstr "Je nám líto, uživatel %s nemá dovoleno spouštět „%s%s%s“ jako %s%s%s na %s.\n" -#: plugins/sudoers/logging.c:342 +#: plugins/sudoers/logging.c:334 msgid "This incident has been reported to the administrator.\n" msgstr "Tato skutečnost byla nahlášena správci.\n" -#: plugins/sudoers/logging.c:373 plugins/sudoers/sudoers.c:643 -#: plugins/sudoers/sudoers.c:645 plugins/sudoers/sudoers.c:647 -#: plugins/sudoers/sudoers.c:649 plugins/sudoers/sudoers.c:799 -#: plugins/sudoers/sudoers.c:801 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s: příkaz nenalezen" -#: plugins/sudoers/logging.c:375 plugins/sudoers/sudoers.c:639 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2849,7 +2938,7 @@ msgstr "" "ignoruje se „%s“ nalezený v „.“\n" "Použijte „sudo ./%s„, je-li toto „%s“', který chcete spustit." -#: plugins/sudoers/logging.c:395 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" @@ -2857,24 +2946,24 @@ msgstr[0] "%u chybný pokus zadat heslo" msgstr[1] "%u chybné pokusy zadat heslo" msgstr[2] "%u chybných pokusů zadat heslo" -#: plugins/sudoers/logging.c:485 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "selhání autentizace" -#: plugins/sudoers/logging.c:524 plugins/sudoers/logging.c:543 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "je vyžadováno heslo" -#: plugins/sudoers/logging.c:806 plugins/sudoers/logging.c:818 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "problém při rozboru sudoers" -#: plugins/sudoers/logging.c:879 plugins/sudoers/logging.c:891 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1068 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "nelze zapsat soubor protokolu: %s" @@ -2889,7 +2978,7 @@ msgstr "součet pro %s (%s) má špatnou délku %zu, očekávaná %zu" msgid "digest for %s (%s) is not in %s form" msgstr "součet pro %s (%s) nemá tvar %s" -#: plugins/sudoers/parse.c:585 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2898,7 +2987,7 @@ msgstr "" "\n" "Role LDAP: %s\n" -#: plugins/sudoers/parse.c:588 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2906,110 +2995,110 @@ msgstr "" "\n" "Položka v sudoers:\n" -#: plugins/sudoers/parse.c:590 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " RunAsUsers: " -#: plugins/sudoers/parse.c:605 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " RunAsGroups: " -#: plugins/sudoers/parse.c:615 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " Volby: " -#: plugins/sudoers/parse.c:679 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " Příkazy:\n" -#: plugins/sudoers/parse.c:870 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "Odpovídající položky Defaults pro %s na %s:\n" -#: plugins/sudoers/parse.c:888 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "Výchozí hodnoty Runas a Command pro %s:\n" -#: plugins/sudoers/parse.c:906 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "Uživatel %s smí spustit následující příkazy na %s:\n" -#: plugins/sudoers/parse.c:921 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Uživatel %s nemá dovoleno spustit sudo na %s.\n" -#: plugins/sudoers/parse_ldif.c:617 +#: plugins/sudoers/parse_ldif.c:618 #, c-format msgid "ignoring incomplete sudoRole: cn: %s" msgstr "neúplná definice sudoRole se ignoruje: cn: %s" -#: plugins/sudoers/parse_ldif.c:677 +#: plugins/sudoers/parse_ldif.c:678 #, c-format msgid "invalid LDIF attribute: %s" msgstr "neplatný atribut LDIF: %s" -#: plugins/sudoers/policy.c:80 plugins/sudoers/policy.c:111 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "neplatné %.*s nenastaveno vnějším rozhraním sudo" -#: plugins/sudoers/policy.c:351 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "nelze rozebrat seznam síťových adres" -#: plugins/sudoers/policy.c:508 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "uživatelské jméno nenastaveno vnějším rozhraním sudo" -#: plugins/sudoers/policy.c:512 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "ID uživatele nenastaveno vnějším rozhraním sudo" -#: plugins/sudoers/policy.c:516 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "ID skupiny nenastaveno vnějším rozhraním sudo" -#: plugins/sudoers/policy.c:520 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "název počítače nenastaven vnějším rozhraním sudo" -#: plugins/sudoers/policy.c:706 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "neplatný pracovní adresář: %s" -#: plugins/sudoers/policy.c:886 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "neplatný kořenový adresář: %s" -#: plugins/sudoers/policy.c:1071 plugins/sudoers/visudo.c:254 -#: plugins/sudoers/visudo.c:896 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "nelze vykonat %s" -#: plugins/sudoers/policy.c:1141 plugins/sudoers/policy.c:1178 -#: plugins/sudoers/policy.c:1200 plugins/sudoers/policy.c:1226 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: neplatné příznaky souboru od vnějšího rozhraní suda: 0x%x" -#: plugins/sudoers/policy.c:1262 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Verze modulu s politikami sudoers je %s\n" -#: plugins/sudoers/policy.c:1264 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Verze gramatiky souboru sudoers je %d\n" -#: plugins/sudoers/policy.c:1268 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3018,27 +3107,27 @@ msgstr "" "\n" "Cesta sudoers: %s\n" -#: plugins/sudoers/policy.c:1271 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "cesta k nsswitch: %s\n" -#: plugins/sudoers/policy.c:1273 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "cesta k ldap.conf: %s\n" -#: plugins/sudoers/policy.c:1274 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "cesta k ldap.secret: %s\n" -#: plugins/sudoers/policy.c:1307 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "nelze zaregistrovat háček typu %d (verze %d.%d)" -#: plugins/sudoers/policy.c:1325 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "nelze odhlásit háček typu %d (verze %d.%d)" @@ -3085,24 +3174,24 @@ msgstr "skupinu %s si nelze zapamatovat" msgid "unable to cache group %s, already exists" msgstr "nelze zapamatovat si skupinu %s, již existuje" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "nelze zapamatovat si seznam skupin pro %s, již existuje" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "nelze si zapamatovat seznam skupin pro %s" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "nelze rozebrat skupiny pro %s" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "nelze rozebrat čísla GID pro %s" @@ -3177,256 +3266,254 @@ msgstr "nelze inicializovat zdroj SSS. Je SSSD nainstalován na vašem stroji?" msgid "unable to find symbol \"%s\" in %s" msgstr "nelze nalézt symbol „%s“ v %s" -#: plugins/sudoers/sudoers.c:258 +#: plugins/sudoers/sudoers.c:263 #, c-format msgid "unable to get defaults from %s" msgstr "z %s nelze získat výchozí hodnoty" -#: plugins/sudoers/sudoers.c:265 +#: plugins/sudoers/sudoers.c:270 msgid "no valid sudoers sources found, quitting" msgstr "nenalezeny žádné platné zdroje sudoers, končí se" -#: plugins/sudoers/sudoers.c:341 +#: plugins/sudoers/sudoers.c:346 #, c-format msgid "user not allowed to change root directory to %s" msgstr "uživatel nemá dovoleno změnit kořenový adresář na %s" -#: plugins/sudoers/sudoers.c:343 +#: plugins/sudoers/sudoers.c:348 #, c-format msgid "you are not permitted to use the -R option with %s" msgstr "nemáte dovoleno použít přepínač -R s %s" -#: plugins/sudoers/sudoers.c:368 +#: plugins/sudoers/sudoers.c:373 #, c-format msgid "user not allowed to change directory to %s" msgstr "uživatel nemá dovoleno změnit adresář na %s" -#: plugins/sudoers/sudoers.c:369 +#: plugins/sudoers/sudoers.c:374 #, c-format msgid "you are not permitted to use the -D option with %s" msgstr "nemáte dovoleno použít přepínač -D s %s" -#: plugins/sudoers/sudoers.c:396 +#: plugins/sudoers/sudoers.c:401 msgid "no command specified" msgstr "nezadán žádný příkaz" -#: plugins/sudoers/sudoers.c:421 +#: plugins/sudoers/sudoers.c:426 msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers udává, že root nemá dovoleno použít sudo" -#: plugins/sudoers/sudoers.c:471 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "uživatel nemá dovoleno přebít omezení „closefrom“" -#: plugins/sudoers/sudoers.c:472 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "nemáte dovoleno použít přepínač -C" -#: plugins/sudoers/sudoers.c:532 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "vlastník časového údaje (%s): Takový uživatel neexistuje" -#: plugins/sudoers/sudoers.c:547 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "žádné TTY" -#: plugins/sudoers/sudoers.c:548 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "je nám líto, ale pro spuštění sudo musíte mít TTY" -#: plugins/sudoers/sudoers.c:555 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "neplatný shell pro uživatele %s: %s" -#: plugins/sudoers/sudoers.c:638 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "příkaz v aktuálním adresáři" -#: plugins/sudoers/sudoers.c:653 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "„cd“ je vestavěný příkaz shellu a nelze jej přímo spustit." -#: plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "přepínač -s smí být použit pro spuštění privilegovaného shellu." -#: plugins/sudoers/sudoers.c:657 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "přepínač -D smí být použit pro spuštění příkazu v určitém adresáři." -#: plugins/sudoers/sudoers.c:666 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "uživatel nemá dovoleno nastavit časový limit příkazu" -#: plugins/sudoers/sudoers.c:668 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "je nám líto, ale nastavit časový limit nemáte dovoleno" -#: plugins/sudoers/sudoers.c:676 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "uživatel nemá dovoleno zachovat prostředí" -#: plugins/sudoers/sudoers.c:678 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "je nám líto, ale zachovat prostředí nemáte dovoleno" -#: plugins/sudoers/sudoers.c:1053 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "chyba při nastavování proměnných prostředí určených uživatelem" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit není nutné spouštět přes sudo" -#: plugins/sudoers/sudoers.c:1110 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "%s nelze číst" -#: plugins/sudoers/sudoers.c:1135 plugins/sudoers/visudo.c:485 -#: plugins/sudoers/visudo.c:764 -#, c-format -msgid "unable to stat %s" -msgstr "nelze zjistit údaje o %s" - -#: plugins/sudoers/sudoers.c:1139 plugins/sudoers/visudo.c:1058 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s není běžný soubor" -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/timestamp.c:252 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s je vlastněn UID %u, měl by být vlastněn %u" -#: plugins/sudoers/sudoers.c:1147 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "%s je zapisovatelný pro všechny" -#: plugins/sudoers/sudoers.c:1151 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s je vlastněn GID %u, mělo by být %u" -#: plugins/sudoers/sudoers.c:1184 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "pouze root může použít „-c %s“" -#: plugins/sudoers/sudoers.c:1203 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "neznámá přihlašovací třída %s" -#: plugins/sudoers/sudoers.c:1290 plugins/sudoers/sudoers.c:1305 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "nelze přeložit název stroje %s" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "neplatná volba filtru: %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "neplatná maximální doba čekání: %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "neplatný násobek rychlosti: %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "neplatná časový značka %s" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/časování: %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "Přehrává se relace sudo: %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "TTY nelze nastavit do přímého režimu" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "Pozor: váš terminál je příliš malý pro správné zobrazení záznamu.\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "Rozměry záznamu jsou %d × %d, váš terminál má rozměry %d × %d." -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "Přehrávání skončilo, pro obnovení terminálu stiskněte libovolnou klávesu." -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "nejednoznačný výraz „%s“" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "ve výrazu neodpovídá „)“" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "neznámý vyhledávací výraz „%s“" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s vyžaduje argument" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "datum „%s“ se nepodařilo rozebrat" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "ve výrazu neodpovídá „(“" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "zakázané zakončení „or“" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "zakázané zakončení „!“" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "neznámý vyhledávácí typ %d" -#: plugins/sudoers/sudoreplay.c:1651 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "použití: %s [-hnRS] [-d adresář] [-m číslo] [-s číslo] ID\n" -#: plugins/sudoers/sudoreplay.c:1654 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "použití: %s [-h] [-d adresář] -l [vyhledávací_výraz]\n" -#: plugins/sudoers/sudoreplay.c:1663 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3435,7 +3522,7 @@ msgstr "" "%s – přehraje záznam relace sudo\n" "\n" -#: plugins/sudoers/sudoreplay.c:1665 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3493,129 +3580,124 @@ msgstr "" "\n" "Příkaz se neshoduje" -#: plugins/sudoers/timestamp.c:260 -#, c-format -msgid "%s is group writable" -msgstr "%s je zapisovatelný pro skupinu" - # TODO: pluralize -#: plugins/sudoers/timestamp.c:328 plugins/sudoers/timestamp.c:663 +#: plugins/sudoers/timestamp.c:354 plugins/sudoers/timestamp.c:693 #, c-format msgid "unable to truncate time stamp file to %lld bytes" msgstr "nelze zkrátit soubor s časovými údaji na %lld bajtů" -#: plugins/sudoers/timestamp.c:860 +#: plugins/sudoers/timestamp.c:890 msgid "ignoring time stamp from the future" msgstr "časový údaj z budoucnosti se ignoruje" -#: plugins/sudoers/timestamp.c:883 +#: plugins/sudoers/timestamp.c:913 #, c-format msgid "time stamp too far in the future: %20.20s" msgstr "časový údaj ukazuje příliš do budoucna: %20.20s" # TODO: pluralize -#: plugins/sudoers/timestamp.c:1005 +#: plugins/sudoers/timestamp.c:1042 #, c-format msgid "unable to lock time stamp file %s" msgstr "soubor s časovými údaji %s nelze zamknout" -#: plugins/sudoers/timestamp.c:1049 plugins/sudoers/timestamp.c:1069 -#, c-format -msgid "lecture status path too long: %s/%s" -msgstr "cesta ke stavům lekce je příliš dlouhý: %s/%s" - #: plugins/sudoers/toke_util.c:156 msgid "sudoedit should not be specified with a path" msgstr "sudoedit by neměl být uveden s cestou" -#: plugins/sudoers/visudo.c:249 +#: plugins/sudoers/visudo.c:254 msgid "the -x option will be removed in a future release" msgstr "přepínač -x bude v příštím vydání odstraněn" -#: plugins/sudoers/visudo.c:251 +#: plugins/sudoers/visudo.c:256 msgid "please consider using the cvtsudoers utility instead" msgstr "prosím, zvažte použití nástroje cvtsudoers" -#: plugins/sudoers/visudo.c:306 plugins/sudoers/visudo.c:692 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "pro úpravu %s stiskněte enter: " -#: plugins/sudoers/visudo.c:321 +#: plugins/sudoers/visudo.c:326 #, c-format msgid "contents of edit session left in %s" msgstr "obsah relace úprav zanechán v %s" -#: plugins/sudoers/visudo.c:397 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "zadaný editor (%s) neexistuje" -#: plugins/sudoers/visudo.c:399 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "žádný editor nenalezen (cesta k editoru = %s)" -#: plugins/sudoers/visudo.c:505 plugins/sudoers/visudo.c:513 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 +#, c-format +msgid "unable to stat %s" +msgstr "nelze zjistit údaje o %s" + +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "chyba zápisu" -#: plugins/sudoers/visudo.c:559 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "nelze získat údaje o dočasném souboru (%s), %s nezměněno" -#: plugins/sudoers/visudo.c:566 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "dočasný soubor o nulové velikosti (%s), %s nezměněno" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "editor (%s) selhal, %s nezměněno" -#: plugins/sudoers/visudo.c:594 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s nezměněno" -#: plugins/sudoers/visudo.c:639 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "nelze znovu otevřít dočasný soubor (%s), %s nezměněno." -#: plugins/sudoers/visudo.c:652 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "není možné rozebrat dočasný soubor (%s), neznámá chyba" -#: plugins/sudoers/visudo.c:738 plugins/sudoers/visudo.c:768 -#: plugins/sudoers/visudo.c:775 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "nelze nastavit (UID, GID) %s na (%u, %u)" -#: plugins/sudoers/visudo.c:803 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s a %s se nenachází na jednom souborovém systému, pro přejmenování se použije mv" -#: plugins/sudoers/visudo.c:814 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "příkaz selhal: „'%s %s %s“, %s nezměněno" -#: plugins/sudoers/visudo.c:821 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "chyba při přejmenování %s, %s nezměněno" -#: plugins/sudoers/visudo.c:841 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "Co teď? " -#: plugins/sudoers/visudo.c:855 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3627,42 +3709,42 @@ msgstr "" " (x) skončit bez uložení změn do souboru sudoers\n" " (Q) skončit a uložit změny do souboru sudoers (NEBEZPEČNÉ!)\n" -#: plugins/sudoers/visudo.c:901 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "nelze spustit %s" -#: plugins/sudoers/visudo.c:932 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: chybný vlastník (UID, GID), měl by být (%u, %u)\n" -#: plugins/sudoers/visudo.c:943 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: chybná práva, měla by být 0%o\n" -#: plugins/sudoers/visudo.c:991 plugins/sudoers/visudo.c:998 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s: rozbor úspěšný\n" -#: plugins/sudoers/visudo.c:1017 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s je zaneprázdněn, zkuste to později" # The code indeed checks for non-localized "y" character. -#: plugins/sudoers/visudo.c:1021 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "Přesto upravit? [y pro ano / N pro ne]" -#: plugins/sudoers/visudo.c:1117 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "Pozor: %s:%d:%d: nepoužitý %s „%s“" -#: plugins/sudoers/visudo.c:1229 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3671,26 +3753,27 @@ msgstr "" "%s – bezpečně upraví soubor sudoers\n" "\n" -#: plugins/sudoers/visudo.c:1231 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" " -c, --check check-only mode\n" " -f, --file=sudoers specify sudoers file location\n" " -h, --help display help message and exit\n" +" -I, --no-includes do not edit include files\n" " -q, --quiet less verbose (quiet) syntax error messages\n" " -s, --strict strict syntax checking\n" " -V, --version display version information and exit\n" msgstr "" "\n" "Přepínače:\n" -" -c, --check pouze kontroluje\n" -" -f, --file=sudoers\n" -" určuje umístění souboru sudoers\n" -" -h, --help zobrazí nápovědu a skončí\n" -" -q, --quiet méně upovídaná (stručnější) hlášení chyb syntaxe\n" -" -s, --strict přísná kontrola syntaxe\n" -" -V, --version zobrazí údaje o verzi a skončí\n" +" -c, --check pouze kontroluje\n" +" -f, --file=sudoers určuje umístění souboru sudoers\n" +" -h, --help zobrazí nápovědu a skončí\n" +" -I, --no-includes neupravuje vložené soubory\n" +" -q, --quiet méně upovídaná (stručnější) hlášení chyb syntaxe\n" +" -s, --strict přísná kontrola syntaxe\n" +" -V, --version zobrazí údaje o verzi a skončí\n" #: toke.l:189 msgid "empty string" @@ -3716,14 +3799,26 @@ msgstr "neplatné pokračování řádku" msgid "invalid IPv6 address" msgstr "neplatná IPv6 adresa" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "nečekané zalomení řádku uvnitř řetězce" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "příliš mnoho úrovní zanoření" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s musí být vlastněn UID %d" + +#~ msgid "%s must only be writable by owner" +#~ msgstr "%s smí být zapisovatelný jen pro vlastníka" + +#~ msgid "%s is group writable" +#~ msgstr "%s je zapisovatelný pro skupinu" + +#~ msgid "lecture status path too long: %s/%s" +#~ msgstr "cesta ke stavům lekce je příliš dlouhý: %s/%s" + #~ msgid "Error: %s:%d:%d: cycle in %s \"%s\"" #~ msgstr "Chyba: %s:%d:%d: smyčka v %s „%s“" diff --git a/plugins/sudoers/po/de.mo b/plugins/sudoers/po/de.mo index 4d62604033..22fc1031fb 100644 Binary files a/plugins/sudoers/po/de.mo and b/plugins/sudoers/po/de.mo differ diff --git a/plugins/sudoers/po/de.po b/plugins/sudoers/po/de.po index 8cbf7a0089..e7068f0795 100644 --- a/plugins/sudoers/po/de.po +++ b/plugins/sudoers/po/de.po @@ -3,13 +3,13 @@ # Todd C. Miller , 2011-2013 # Hendrik Knackstedt , 2013 # Mario Blättermann , 2015. -# Jochen Hein , 2001-2022. +# Jochen Hein , 2001-2023. msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.12b2\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-10 09:13-0600\n" -"PO-Revision-Date: 2022-10-11 19:01+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 16:49+0100\n" "Last-Translator: Jochen Hein \n" "Language-Team: German \n" "Language: de\n" @@ -20,7 +20,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.3\n" -#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "Syntax-Fehler" @@ -51,73 +51,72 @@ msgstr "Das hat nicht funktioniert, bitte nochmal probieren." #: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 #: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 #: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 -#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 -#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 -#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 -#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 -#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 -#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 -#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 -#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 -#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 -#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 -#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 -#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 -#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 -#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 -#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 -#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 -#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 -#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 -#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 -#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 -#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 -#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 -#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 -#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 -#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 -#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 -#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 -#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 -#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 -#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 -#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 -#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 -#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 -#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 -#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 -#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 -#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 -#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 -#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 -#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 -#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 -#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 -#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 -#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 -#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:52 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 +#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 +#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 +#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 +#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 +#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 +#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 +#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 +#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 +#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 +#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 +#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 +#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -128,67 +127,67 @@ msgstr "Das hat nicht funktioniert, bitte nochmal probieren." #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 -#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 -#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 -#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 -#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 -#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 -#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 -#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 -#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 -#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 -#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 -#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 -#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 -#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 -#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 -#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 #: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 #: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 @@ -197,8 +196,8 @@ msgstr "Das hat nicht funktioniert, bitte nochmal probieren." #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 #: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 -#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 -#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "Es kann kein Speicher mehr alloziert werden" @@ -235,15 +234,15 @@ msgstr "ungültiger Wert für »notbefore«" msgid "invalid notafter value" msgstr "ungültiger Wert für »notafter«" -#: gram.y:844 plugins/sudoers/policy.c:383 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "Wert für Timeout ist zu groß" -#: gram.y:846 plugins/sudoers/policy.c:385 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "ungültiger Wert für Timeout" -#: gram.y:967 plugins/sudoers/sudoers.c:1033 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "Der Befehl ist zu lang" @@ -258,76 +257,75 @@ msgstr "%s:%d:%d: %s\n" msgid "Alias \"%s\" already defined" msgstr "Alias »%s« ist bereits definiert" -#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 -#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 -#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 -#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 -#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 -#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 -#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 -#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 -#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 -#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 -#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 -#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 -#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 -#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 -#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 -#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 -#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 -#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 -#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 -#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 -#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 -#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 -#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 -#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 -#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 -#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 -#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 -#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 -#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 -#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 -#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 -#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -340,80 +338,80 @@ msgstr "Alias »%s« ist bereits definiert" #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 -#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 -#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 -#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 -#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 -#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 -#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 -#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 -#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 -#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 -#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 -#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 -#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 -#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 -#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 -#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 -#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 -#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 #: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 #: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 @@ -422,68 +420,48 @@ msgstr "Alias »%s« ist bereits definiert" #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 #: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 #: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 -#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 -#: toke.l:1155 toke.l:1218 toke.l:1226 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 -#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 -#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 -#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "Interner Fehler, %s-Überlauf" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "Die Standardeingabe kann nicht dupliziert werden: %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "%s kann nicht ausgeführt werden: %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "Fehler bei fork()" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "Fehler bei fork(): %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "Die Pipe kann nicht geöffnet werden: %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (Befehl fortgesetzt) %s" #: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "ungültiger regulärer Ausdruck »%s«: %s" @@ -501,64 +479,64 @@ msgstr "Das JSON_ARRAY ist zu groß" msgid "missing double quote in name" msgstr "Im Name fehlt das doppelte Anführungszeichen" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "JSON_OBJECT fehlt" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "JSON_OBJECT erwartet, aber »%d« bekommen" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "json Stack erschöpft (maximal %u Frames)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "Objekte müssen aus Name:Wert Paaren bestehen" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "Fehlender Separator zwischen den Werten" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "unpassende schließende geschweifte Klammer" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "unerwartetes Array" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "unpassende schließende eckige Klammer" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "unerwartete Zeichenkette" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "fehlender Doppelpunkt nach dem Name" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "unerwarteter boolescher Wert (true/false)" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "unerwartete »null«" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "unerwartete Zahl" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "Syntax-Fehler" @@ -597,14 +575,14 @@ msgstr "%s: Das Feld für die »runas«-Gruppe fehlt" msgid "%s exists but is not a directory (0%o)" msgstr "%s existiert, aber ist kein Verzeichnis (0%o)" -#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 #: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "Das Verzeichnis »%s« kann nicht erstellt werden" -#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 -#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "Ändern des Modus von %s auf 0%o gescheitert" @@ -636,8 +614,8 @@ msgstr "%s: Protokollfehker: falscher Typ für %s" msgid "%s: protocol error: NULL value found in %s" msgstr "%s: Protokollfehker: Wert NULL gefunden in %s" -#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 -#: plugins/sudoers/policy.c:591 +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 msgid "unable to generate UUID" msgstr "UUID kann nicht generiert werden" @@ -690,27 +668,27 @@ msgstr "Fehler beim Leeren des I/O Dateideskriptors %d: %s" msgid "invalid I/O log %s: %s referenced but not present" msgstr "Ungültiges I/O log %s: »%s« wird verwendet, ist aber nicht vorhanden" -#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s; Der Wiederaufsetz-Punkt [%lld, %ld] kann nicht gefunden werden" -#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 #: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 #: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 #: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 #: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 -#: plugins/sudoers/visudo.c:971 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "Die Datei »%s« kann nicht geöffnet werden" #: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 -#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "Die Datei »%s/%s« kann nicht geöffnet werden" @@ -720,7 +698,7 @@ msgstr "Die Datei »%s/%s« kann nicht geöffnet werden" msgid "unable to copy %s/%s to %s/%s: %s" msgstr "Fehler beim Kopieren von »%s/%s« nach »%s/%s«: %s" -#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "Die Datei »%s« kann nicht in »%s« umbenannt werden" @@ -753,28 +731,28 @@ msgstr "Server-Nachricht ist zu groß: %zu" #: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 #: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 #: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 -#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 #: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 #: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 #: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 #: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 #: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 #: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 -#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 -#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 #: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 #: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 #: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 -#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 -#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 -#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 -#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 -#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "Event kann nicht zur Warteschlange hinzugefügt werden" @@ -835,14 +813,14 @@ msgstr "ungültige ChangeWindowSize" msgid "invalid CommandSuspend" msgstr "ungültiges CommandSusped" -#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 #: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 -#: plugins/sudoers/log_client.c:1583 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "Kann »%s« nicht auspacken, Größe %zu" -#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 #: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" @@ -878,8 +856,8 @@ msgstr "Dateiende (EOF) von %s ohne korrekten TLS-Abscluß" msgid "client message too large: %zu" msgstr "Client-Nachricht ist zu groß: %zu" -#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 -#: logsrvd/logsrvd_journal.c:257 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "Client-Nachricht ist zu groß" @@ -944,23 +922,23 @@ msgid "invalid random drop value: %s" msgstr "ungültiger Wert für »random drop«: %s" #: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 #: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s Version %s\n" -#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 -#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "Unbekannter Benutzer %s" #: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" @@ -1035,7 +1013,7 @@ msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] ungültiger Schlüssel: %s" #: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1029 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "Die Protokolldatei kann nicht geöffnet werden %s" @@ -1048,49 +1026,49 @@ msgstr "Server-SSL-Kontext kann nicht initialisiert werden" msgid "unable to initialize relay TLS context" msgstr "SSL-Kontext kann nicht initialisiert werden" -#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 -#: logsrvd/logsrvd_journal.c:426 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "Kann die Journal-Datei nicht anlegen" -#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 -#: plugins/sudoers/visudo.c:1026 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "Die Datei »%s« kann nicht gesperrt werden" -#: logsrvd/logsrvd_journal.c:153 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "Die Journal-Datei »%s« kann nicht gesperrt werden" -#: logsrvd/logsrvd_journal.c:161 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "Die Journal-Datei kann nicht geöffnet werden" -#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 -#: logsrvd/logsrvd_journal.c:462 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "In die Logdatei kann nicht geschrieben werden" -#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "Die Journal-Datei kann nicht geöffnet werden" -#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 -#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "unerwartetes Dateiende beim Lesen der Journal-Datei" -#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 -#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "Fehler beim Lesen der Journal-Datei" -#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "Ungültige Journal-Datei - kann nicht neu starten" -#: logsrvd/logsrvd_journal.c:440 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "Kann nicht zu [%lld, %ld] in der Journaldatei »%s« springen" @@ -1148,7 +1126,7 @@ msgstr "Der Zeitstempel kann nicht formatiert werden, Länge %d" #: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 #: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 -#: plugins/sudoers/sudoreplay.c:351 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" @@ -1183,7 +1161,7 @@ msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: ungültiges ServerHello, fehlende server_id" #: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 -#: plugins/sudoers/log_client.c:1469 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "ungültiges ServerHello" @@ -1296,35 +1274,35 @@ msgstr "Fehler beim Lookup %s:%s: %s" msgid "unable to get server IP addr" msgstr "Kann die Server IP-Adresse nicht finden" -#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "Fehler beim Lesen %s/%s: %s" -#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 -#: plugins/sudoers/iolog.c:1026 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "unerwarteter I/O Event %d" #: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 -#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 -#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: unerwarteter Status %d" -#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "Fehler beim Empfangen der Nachricht vom Server: %s" -#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "Abbruch-Nachricht vom Server empfangen: %s" -#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: unerwarteter type_case Wert %d" @@ -1333,7 +1311,7 @@ msgstr "%s: unerwarteter type_case Wert %d" msgid "timeout reading from server" msgstr "Zeitablauf beim Lesen vom Server" -#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "Der Hostname passt nicht zum Zertifikat" @@ -1341,7 +1319,7 @@ msgstr "Der Hostname passt nicht zum Zertifikat" msgid "premature EOF" msgstr "unerwartetes Datei-Ende" -#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "Server-Nachricht ist zu groß: %u" @@ -1428,10 +1406,10 @@ msgstr "Kann die minimale Protokollversion nicht auf TLS 1.2 setzen: %s" #: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 #: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 -#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 -#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 -#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 -#: plugins/sudoers/policy.c:124 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "Die aktuelle Zeit kann nicht ausgelesen werden" @@ -1586,11 +1564,11 @@ msgstr "SecurID-Server kann nicht erreicht werden" msgid "User ID locked for SecurID Authentication" msgstr "Benutzer-ID ist für SecurID-Authentifizierung gesperrt" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "Ungültige Länge des Benutzernamens für SecurID" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "Ungültiges Authentifizierungs-Handle für SecurID" @@ -1598,11 +1576,11 @@ msgstr "Ungültiges Authentifizierungs-Handle für SecurID" msgid "SecurID communication failed" msgstr "SecurID-Kommunikation fehlgeschlagen" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "Unbekannter SecurID-Fehler" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "Ungültige Länge des Passcodes für SecurID" @@ -1672,9 +1650,17 @@ msgstr "" " #3) Mit großer Macht kommt große Verantwortung.\n" "\n" -#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 -#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"Das eingegebene Passwort ist aus Sicherheitsgründen nicht sichtbar.\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "Unbekannte Benutzer-ID %u" @@ -1731,8 +1717,7 @@ msgstr "%s: Eingabe- und Ausgabedatei müssen unterschiedlich sein" #: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 #: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 -#: plugins/sudoers/visudo.c:975 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "Standardwerte für sudoers können nicht initialisiert werden" @@ -1761,12 +1746,12 @@ msgstr "ungültiger suppression Typ: %s" msgid "invalid filter: %s" msgstr "Ungültiger Filter: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "Analyse der Datei %s gescheitert, unbekannter Fehler" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 #: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" @@ -1820,17 +1805,36 @@ msgstr "" " -s, --suppress=sections Unterdrücke Ausgabe von bestimmten Abschnitten\n" " -V, --version Zeige Versionsinformationen an und Ende" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "Interner Fehler, %s-Überlauf" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "Die GMT-Zeit kann nicht bekommen werden" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "Der Zeitstempel kann nicht formatiert werden" @@ -2649,8 +2653,8 @@ msgstr "Ungültiger »Defaults« Typ 0x%x für Option »%s«" msgid "value \"%s\" is invalid for option \"%s\"" msgstr "Der Wert »%s« ist für die Option »%s« ungültig" -#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 -#: plugins/sudoers/policy.c:217 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "Pfadname für »%s« ist zu lang" @@ -2665,15 +2669,24 @@ msgstr "Werte für »%s« müssen mit »/«, »~« oder »*« beginnen" msgid "values for \"%s\" must start with a '/'" msgstr "Werte für »%s« müssen mit einem »/« beginnen" +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "Ignoriere Editor: %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "Editor Argumente dürfen »--« nicht enthalten" + #: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: envp ist beschädigt, die Längen passen nicht" -#: plugins/sudoers/env.c:1109 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "Das Environment kann nicht neu erstellt werden" -#: plugins/sudoers/env.c:1183 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "Leider dürfen die folgenden Umgebungsvariablen nicht gesetzt werden: %s" @@ -2688,27 +2701,17 @@ msgstr "Prüfsummentyp %d wird für %s nicht unterstützt" msgid "%s: read error" msgstr "%s: Fehler beim Lesen" -#: plugins/sudoers/group_plugin.c:169 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s muss der uid %d gehören" - -#: plugins/sudoers/group_plugin.c:173 -#, c-format -msgid "%s must only be writable by owner" -msgstr "%s darf nur für den Eigentümer der Datei schreibbar sein" - -#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "Laden von %s fehlgeschlagen: %s" -#: plugins/sudoers/group_plugin.c:197 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "Das Symbol »group_plugin« kann in %s nicht gefunden werden" -#: plugins/sudoers/group_plugin.c:202 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: Die Major-Version %d des Group-Plugins ist inkompatibel, erwartet wird %d" @@ -2731,10 +2734,10 @@ msgstr "Lokale IP-Adresse und Netzmaske:\n" msgid "unable to update sequence file" msgstr "Kann die Sequenz-Datei nicht aktualisieren" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 -#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 -#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 -#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "In die I/O Logdatei kann nicht geschrieben werden: %s" @@ -2744,20 +2747,20 @@ msgstr "In die I/O Logdatei kann nicht geschrieben werden: %s" msgid "unable to create %s/%s" msgstr "Die Datei %s%s kann nicht erstellt werden" -#: plugins/sudoers/iolog.c:957 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: Interner Fehler, Logdatei für Event %d nicht geöffnet" -#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 -#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 -#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "Die Uhrzeit kann nicht ausgelesen werden" -#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 -#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: Interner Fehler, ungültiges Signal %d" @@ -2776,16 +2779,16 @@ msgstr "Die Zertifikat- und Schlüsseldatenbank für SSL kann nicht initialisier msgid "you must set TLS_CERT in %s to use SSL" msgstr "In der Datei »%s« muss »TLS_CERT« angegeben sein, um SSL zu nutzen" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "LDAP kann nicht initialisiert werden: %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls ist angegeben, aber die LDAP-Bibliotheken unterstützen ldap_start_tls_s() und ldap_start_tls_s_np() nicht" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "Ungültiges »sudoOrder« Attribut: %s" @@ -2826,7 +2829,7 @@ msgid "unable to send audit message" msgstr "Die Audit-Nachricht kann nicht gesendet werden" #: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 -#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "Fehler in der Event-Schleife" @@ -2868,20 +2871,20 @@ msgstr "TLS Initialisierung war nicht erfolgreich" msgid "TLS handshake was unsuccessful" msgstr "TLS Handshake war nicht erfolgreich" -#: plugins/sudoers/log_client.c:1211 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: Interner Fehler, ungültiger Exit-Status %d" -#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "Verbindung zum Logserver verloren" -#: plugins/sudoers/log_client.c:1841 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "Schreib-Puffer fehlt" -#: plugins/sudoers/log_client.c:1995 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "Verbindung zum Logserver kann nicht aufgebaut werden" @@ -2923,15 +2926,15 @@ msgstr "Leider darf der Benutzer %s »%s%s%s« als %s%s%s auf %s nicht ausführe msgid "This incident has been reported to the administrator.\n" msgstr "Dieser Vorfall wurde an den Administrator gemeldet.\n" -#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 -#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 -#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 -#: plugins/sudoers/sudoers.c:807 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s: Befehl nicht gefunden" -#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2940,31 +2943,31 @@ msgstr "" "Im aktuellen Verzeichnis ».« gefundenes »%s« wird ignoriert.\n" "Verwenden Sie »sudo ./%s«, wenn dies der gewünschte Befehl »%s« ist." -#: plugins/sudoers/logging.c:387 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" msgstr[0] "%u Fehlversuch bei der Passwort-Eingabe" msgstr[1] "%u Fehlversuche bei der Passwort-Eingabe" -#: plugins/sudoers/logging.c:477 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "Fehler bei der Authentifizierung" -#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "Ein Passwort ist notwendig" -#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "Problem beim Auswerten der sudoers-Datei" -#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1062 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "In die Logdatei kann nicht geschrieben werden: %s" @@ -2979,7 +2982,7 @@ msgstr "Prüfsumme für %s (%s) ungültige Länge %zu, %zu erwartet" msgid "digest for %s (%s) is not in %s form" msgstr "Prüfsumme für %s (%s) ist nicht in der Form %s" -#: plugins/sudoers/parse.c:591 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2988,7 +2991,7 @@ msgstr "" "\n" "LDAP-Rolle: %s\n" -#: plugins/sudoers/parse.c:594 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2996,38 +2999,38 @@ msgstr "" "\n" "Sudoers-Eintrag:\n" -#: plugins/sudoers/parse.c:596 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " RunAsUsers: " -#: plugins/sudoers/parse.c:611 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " RunAsGroups: " -#: plugins/sudoers/parse.c:621 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " Optionen: " -#: plugins/sudoers/parse.c:685 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " Befehle:\n" -#: plugins/sudoers/parse.c:876 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "Passende Defaults-Einträge für %s auf %s:\n" -#: plugins/sudoers/parse.c:894 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "Runas und befehlsspezifische Standardwerte für %s:\n" -#: plugins/sudoers/parse.c:912 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "Der Benutzer %s darf die folgenden Befehle auf %s ausführen:\n" -#: plugins/sudoers/parse.c:927 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Der Benutzer %s darf sudo auf dem Rechner %s nicht ausführen.\n" @@ -3042,64 +3045,64 @@ msgstr "ignoriere die unvollständige sudoRole: cn: %s" msgid "invalid LDIF attribute: %s" msgstr "Ungültiges LDIF-Attribut: %s" -#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "ungültige Option »%.*s« durch das sudo-Frontend angegeben" -#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "Die Netzwerkadressliste kann nicht eingelesen werden" -#: plugins/sudoers/policy.c:526 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "Benutzername nicht durch das sudo-Frontend angegeben" -#: plugins/sudoers/policy.c:530 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "User-ID nicht durch das sudo-Frontend angegeben" -#: plugins/sudoers/policy.c:534 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "Gruppen-ID nicht durch das sudo-Frontend angegeben" -#: plugins/sudoers/policy.c:538 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "Hostname nicht durch das sudo-Frontend angegeben" -#: plugins/sudoers/policy.c:730 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "Ungültiges Arbeitsverzeichnis: %s" -#: plugins/sudoers/policy.c:914 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "Ungültiges »chroot« Verzeichnis: %s" -#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 -#: plugins/sudoers/visudo.c:902 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "%s kann nicht ausgeführt werden" -#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 -#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: ungültige Mode-Flags vom sudo-Frontend: 0x%x" -#: plugins/sudoers/policy.c:1292 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Sudoers-Policy-Plugin Version %s\n" -#: plugins/sudoers/policy.c:1294 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Sudoers-Datei-Grammatik-Version %d\n" -#: plugins/sudoers/policy.c:1298 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3108,27 +3111,27 @@ msgstr "" "\n" "Sudoers-Pfad: %s\n" -#: plugins/sudoers/policy.c:1301 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "nsswitch-Pfad: %s\n" -#: plugins/sudoers/policy.c:1303 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "ldap.conf-Pfad: %s\n" -#: plugins/sudoers/policy.c:1304 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "ldap.secret-Pfad: %s\n" -#: plugins/sudoers/policy.c:1337 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "Der Hook vom Typ %d kann nicht registriert werden (Version %d.%d)" -#: plugins/sudoers/policy.c:1355 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "Der Hook vom Typ %d kann nicht deregistriert werden (Version %d.%d)" @@ -3175,24 +3178,24 @@ msgstr "Die Gruppe %s kann nicht zwischengespeichert werden" msgid "unable to cache group %s, already exists" msgstr "Die Gruppe %s kann nicht in den Zwischenspeicher aufgenommen werden, sie existiert bereits" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "Die Gruppen-Liste für %s kann nicht in den Zwischenspeicher aufgenommen werden, sie existiert bereits" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "Die Gruppenliste für %s können nicht zwischengespeichert werden" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "Die Gruppen für %s können nicht eingelesen werden" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "Die Gruppen für %s können nicht geparst werden" @@ -3304,215 +3307,219 @@ msgstr "Kein Kommando angegeben" msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers gibt an, dass root sudo nicht verwenden darf" -#: plugins/sudoers/sudoers.c:476 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "Der Benutzer darf das »closefrom«-Limit nicht überschreiben" -#: plugins/sudoers/sudoers.c:477 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "Sie dürfen die Option -C nicht verwenden" -#: plugins/sudoers/sudoers.c:537 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "Zeitstempelbesitzer (%s): Benutzer existiert nicht" -#: plugins/sudoers/sudoers.c:552 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "Kein tty" -#: plugins/sudoers/sudoers.c:553 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "Sie müssen ein TTY haben, um sudo zu verwenden" -#: plugins/sudoers/sudoers.c:560 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "Ungültiger Shell für den Benutzer %s: %s" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "Befehl ist im aktuellen Verzeichnis" -#: plugins/sudoers/sudoers.c:658 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "»cd\"« ist ein Shell-internes Kommando, das nicht direkt gestartet werden kann." -#: plugins/sudoers/sudoers.c:660 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "Die Option »-s« kann zum Start einer privilegierten Shell verwendet werden." -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "Die Option »-D« kann zum Start des Programms im angegebenen Verzeichnis verwendet werden." -#: plugins/sudoers/sudoers.c:671 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "Der Benutzer darf keinen Kommand-Timeout angeben" -#: plugins/sudoers/sudoers.c:673 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "Sie dürfen keinen Timeout angeben" -#: plugins/sudoers/sudoers.c:681 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "Der Benutzer darf das Environment nicht erhalten" -#: plugins/sudoers/sudoers.c:683 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "Sie dürfen das Environment nicht erhalten" -#: plugins/sudoers/sudoers.c:1073 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "Fehler beim Setzen benutzerspezidischer Umgebungsvariablen" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "»sudoedit« muss nicht mittels »sudo« aufgerufen werden" -#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "Die Datei »%s« kann nicht gelesen werden" -#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s ist keine reguläre Datei" -#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s gehört UID %u, sollte UID %u gehören" -#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "%s ist für alle beschreibbar (world writable)" -#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s gehört GID %u, sollte allerdings %u gehören" -#: plugins/sudoers/sudoers.c:1194 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "Nur root kann »-c %s« verwenden" -#: plugins/sudoers/sudoers.c:1213 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "Unbekannte Anmeldeklasse »%s«" -#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "Hostname %s kann nicht aufgelöst werden" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "Ungültige Filteroption: %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "Ungültige maximale Wartezeit: %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "Ungültiger Geschwindigkeitsfaktor: %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "ungültiger Zeitversatz »%s«" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/Zeit: %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "Sudo-Sitzung wird abgespielt: %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "TTY konnte nicht in den Raw-Modus versetzt werden" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "" "Warnung: Ihr Terminal ist zu klein, um das Protokoll korrekt\n" "wiederzugeben.\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "Protokollgeometrie ist %d x %d, die Geometrie Ihres Terminals ist %d x %d." -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "Wiedergabe beendet, eine Taste drücken um das Terminal wiederherzustellen." -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "Mehrdeutiger Ausdruck »%s«" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "»)« ohne öffnende Klammer im Ausdruck" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "Unbekannter Suchbegriff »%s«" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s erfordert ein Argument" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "Datum »%s« konnte nicht analysiert werden" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "»(« ohne schließende Klammer im Ausdruck" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "Ungültiges nachgestelltes »or«" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "Ungültiges nachgestelltes »!«" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "Unbekannter Suchtyp %d" -#: plugins/sudoers/sudoreplay.c:1650 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "Aufruf: %s [-hnRS] [-d Verzeichnis] [-m Max_Wartezeit] [-s Geschwindigkeitsfaktor] ID\n" -#: plugins/sudoers/sudoreplay.c:1652 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "Aufruf: %s [-h] [-d Verzeichnis] -l [Suchausdruck]\n" -#: plugins/sudoers/sudoreplay.c:1666 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3521,7 +3528,7 @@ msgstr "" "%s – sudo-Sitzungsprotokolle abspielen\n" "\n" -#: plugins/sudoers/sudoreplay.c:1668 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3613,7 +3620,7 @@ msgstr "Die Option »-x» wird in einer zukünftigen Version entfernt" msgid "please consider using the cvtsudoers utility instead" msgstr "Bitte verwenden Sie stattdessen das Programm »cvtsudoers«" -#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "Drücken Sie die Eingabetaste, um %s zu bearbeiten: " @@ -3623,81 +3630,81 @@ msgstr "Drücken Sie die Eingabetaste, um %s zu bearbeiten: " msgid "contents of edit session left in %s" msgstr "Inhalt der Editor-Sitzung bleibt in »%s« erhalten" -#: plugins/sudoers/visudo.c:402 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "Der angegebene Editor (%s) ist nicht vorhanden" -#: plugins/sudoers/visudo.c:404 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "Kein Editor gefunden (Pfad zum Editor = %s)" -#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 #, c-format msgid "unable to stat %s" msgstr "stat konnte nicht auf %s angewendet werden" -#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "Schreibfehler" -#: plugins/sudoers/visudo.c:565 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "Anwenden von stat auf die temporäre Datei (%s) gescheitert, %s ist unverändert" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "Leere temporäre Datei (%s), %s ist unverändert" -#: plugins/sudoers/visudo.c:578 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "Editor-Aufruf (%s) ist gescheitert, %s ist unverändert" -#: plugins/sudoers/visudo.c:600 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s unverändert" -#: plugins/sudoers/visudo.c:645 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "Erneutes Öffnen der temporären Datei (%s) gescheitert, %s ist unverändert." -#: plugins/sudoers/visudo.c:658 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "Analyse der temporären Datei (%s) gescheitert, unbekannter Fehler" -#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "Festlegen von (uid, gid) von %s auf (%u, %u) gescheitert" -#: plugins/sudoers/visudo.c:809 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s und %s befinden sich nicht im gleichen Dateisystem, werden mit mv umbenannt" -#: plugins/sudoers/visudo.c:820 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "Befehl gescheitert: »%s %s %s«, %s unverändert" -#: plugins/sudoers/visudo.c:827 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "Fehler beim Umbenennen von %s, %s unverändert" -#: plugins/sudoers/visudo.c:847 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "Was jetzt? " -#: plugins/sudoers/visudo.c:861 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3709,42 +3716,42 @@ msgstr "" " Beenden, ohne die Änderungen an der sudoers-Datei zu speichern (mit x)\n" " Beenden und Änderungen an der sudoers-Datei speichern (mit Q, VORSICHT!)\n" -#: plugins/sudoers/visudo.c:907 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "%s konnte nicht ausgeführt werden" -#: plugins/sudoers/visudo.c:938 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: Falsche Besitzer-(uid, gid), sollte (%u, %u) sein\n" -#: plugins/sudoers/visudo.c:949 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: Falsche Zugriffsrechte, sollte Modus 0%o sein\n" -#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s: Analyse OK\n" -#: plugins/sudoers/visudo.c:1023 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s ist in Verwendung, versuchen Sie es später erneut" # XXX -#: plugins/sudoers/visudo.c:1027 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "Trotzdem ändern? [y/N]" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "Warnung: %s:%d:%d: nicht verwendet: %s »%s«" -#: plugins/sudoers/visudo.c:1240 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3753,7 +3760,7 @@ msgstr "" "%s – Die sudoers-Datei sicher bearbeiten\n" "\n" -#: plugins/sudoers/visudo.c:1242 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" @@ -3799,10 +3806,10 @@ msgstr "Ungültiger Zeilenfortsetzung" msgid "invalid IPv6 address" msgstr "Ungültiges IPv6 Adresse: %s" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "unerwarteter Zeilenumbruch in Zeichenkette" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "Zu viele geschachtelte include-Einträge" diff --git a/plugins/sudoers/po/eo.mo b/plugins/sudoers/po/eo.mo index 83fa94ea72..3f702c9e46 100644 Binary files a/plugins/sudoers/po/eo.mo and b/plugins/sudoers/po/eo.mo differ diff --git a/plugins/sudoers/po/eo.po b/plugins/sudoers/po/eo.po index 725518f3cd..87fad56b42 100644 --- a/plugins/sudoers/po/eo.po +++ b/plugins/sudoers/po/eo.po @@ -1,14 +1,14 @@ # Esperanto translations for sudo package. # This file is distributed under the same license as the sudo package. -# Keith Bowes , 2012, 2019-2022. +# Keith Bowes , 2012, 2019-2023. # Felipe Castro , 2013, 2014, 2015, 2016, 2017, 2018, 2019. # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.11b1\n" +"Project-Id-Version: sudoers 1.9.12b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-05-27 08:39-0600\n" -"PO-Revision-Date: 2022-05-29 16:58-0400\n" +"POT-Creation-Date: 2022-10-10 09:13-0600\n" +"PO-Revision-Date: 2023-01-01 15:47-0500\n" "Last-Translator: Keith Bowes \n" "Language-Team: Esperanto \n" "Language: eo\n" @@ -19,7 +19,7 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 2.0.7\n" -#: confstr.sh:1 gram.y:1218 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 msgid "syntax error" msgstr "sintaksa eraro" @@ -43,13 +43,13 @@ msgstr "*** SEKURECO: informoj por %h ***" msgid "Sorry, try again." msgstr "Malĝuste, reprovu." -#: gram.y:236 gram.y:303 gram.y:312 gram.y:321 gram.y:331 gram.y:341 -#: gram.y:365 gram.y:392 gram.y:401 gram.y:409 gram.y:418 gram.y:427 -#: gram.y:501 gram.y:511 gram.y:523 gram.y:571 gram.y:580 gram.y:589 -#: gram.y:598 gram.y:730 gram.y:738 gram.y:749 gram.y:761 gram.y:780 -#: gram.y:943 gram.y:948 gram.y:956 gram.y:970 gram.y:976 gram.y:1098 -#: gram.y:1107 gram.y:1115 gram.y:1124 gram.y:1133 gram.y:1162 gram.y:1171 -#: gram.y:1179 gram.y:1272 gram.y:1402 gram.y:1769 gram.y:1816 +#: gram.y:237 gram.y:304 gram.y:313 gram.y:322 gram.y:332 gram.y:342 +#: gram.y:366 gram.y:393 gram.y:402 gram.y:410 gram.y:419 gram.y:428 +#: gram.y:502 gram.y:512 gram.y:524 gram.y:572 gram.y:581 gram.y:590 +#: gram.y:599 gram.y:731 gram.y:739 gram.y:750 gram.y:762 gram.y:781 +#: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 +#: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 +#: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 #: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 #: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 #: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 @@ -59,50 +59,64 @@ msgstr "Malĝuste, reprovu." #: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 #: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 #: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:84 -#: logsrvd/iolog_writer.c:89 logsrvd/iolog_writer.c:123 -#: logsrvd/iolog_writer.c:172 logsrvd/iolog_writer.c:212 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:261 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:301 -#: logsrvd/iolog_writer.c:314 logsrvd/iolog_writer.c:327 -#: logsrvd/iolog_writer.c:340 logsrvd/iolog_writer.c:355 -#: logsrvd/iolog_writer.c:393 logsrvd/iolog_writer.c:399 -#: logsrvd/iolog_writer.c:406 logsrvd/iolog_writer.c:412 -#: logsrvd/iolog_writer.c:596 logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 -#: logsrvd/logsrvd.c:305 logsrvd/logsrvd.c:1012 logsrvd/logsrvd.c:1075 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:203 logsrvd/logsrvd_journal.c:204 -#: logsrvd/logsrvd_journal.c:260 logsrvd/logsrvd_journal.c:420 -#: logsrvd/logsrvd_journal.c:422 logsrvd/logsrvd_local.c:174 -#: logsrvd/logsrvd_local.c:175 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:238 logsrvd/logsrvd_local.c:376 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:426 -#: logsrvd/logsrvd_local.c:431 logsrvd/logsrvd_local.c:432 -#: logsrvd/logsrvd_queue.c:154 logsrvd/logsrvd_queue.c:184 -#: logsrvd/logsrvd_queue.c:261 logsrvd/logsrvd_relay.c:439 -#: logsrvd/logsrvd_relay.c:738 logsrvd/logsrvd_relay.c:845 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 -#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 -#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 -#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 -#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 -#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 -#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 -#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 -#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 -#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 -#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 -#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 -#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 -#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 -#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 -#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 -#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 -#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 -#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 +#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 +#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 +#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 +#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 +#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 +#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 +#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 +#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 +#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 +#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 +#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 +#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 +#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 +#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 +#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 +#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 +#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 +#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 +#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 +#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 +#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 +#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 +#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 +#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 +#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 +#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 +#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 +#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 +#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 +#: plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -112,11 +126,11 @@ msgstr "Malĝuste, reprovu." #: plugins/sudoers/cvtsudoers_merge.c:633 #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 -#: plugins/sudoers/defaults.c:657 plugins/sudoers/defaults.c:1018 -#: plugins/sudoers/defaults.c:1186 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:133 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 #: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 @@ -125,124 +139,125 @@ msgstr "Malĝuste, reprovu." #: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 #: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 #: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:294 +#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 +#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 +#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 +#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 +#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 #: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:397 plugins/sudoers/log_client.c:710 -#: plugins/sudoers/log_client.c:731 plugins/sudoers/log_client.c:1451 -#: plugins/sudoers/log_client.c:1672 plugins/sudoers/log_client.c:2003 -#: plugins/sudoers/log_client.c:2059 plugins/sudoers/logging.c:112 -#: plugins/sudoers/logging.c:193 plugins/sudoers/logging.c:461 -#: plugins/sudoers/logging.c:675 plugins/sudoers/logging.c:812 -#: plugins/sudoers/match_command.c:333 plugins/sudoers/match_command.c:594 -#: plugins/sudoers/match_command.c:645 plugins/sudoers/match_command.c:719 -#: plugins/sudoers/match_command.c:767 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:227 plugins/sudoers/parse.c:244 -#: plugins/sudoers/parse.c:263 plugins/sudoers/parse.c:282 -#: plugins/sudoers/parse.c:299 plugins/sudoers/parse.c:322 -#: plugins/sudoers/parse.c:333 plugins/sudoers/parse_ldif.c:153 -#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 -#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 -#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 -#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 -#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 -#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 -#: plugins/sudoers/parse_ldif.c:597 plugins/sudoers/parse_ldif.c:627 -#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 -#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 -#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:606 -#: plugins/sudoers/policy.c:998 plugins/sudoers/prompt.c:93 -#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 -#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 -#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 -#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:913 -#: plugins/sudoers/pwutil.c:957 plugins/sudoers/pwutil.c:1014 -#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:111 plugins/sudoers/stubs.c:119 -#: plugins/sudoers/sudoers.c:349 plugins/sudoers/sudoers.c:375 -#: plugins/sudoers/sudoers.c:443 plugins/sudoers/sudoers.c:452 -#: plugins/sudoers/sudoers.c:493 plugins/sudoers/sudoers.c:858 -#: plugins/sudoers/sudoers.c:996 plugins/sudoers/sudoers.c:1055 -#: plugins/sudoers/sudoers.c:1320 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 +#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 +#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 +#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 +#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 +#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 +#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 +#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 +#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 +#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 +#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 +#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 +#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 +#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 +#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 +#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 +#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 +#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 +#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 +#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 +#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 +#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 +#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 +#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 +#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 +#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 +#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 +#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 +#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 +#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 +#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 #: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 #: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 -#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:581 -#: plugins/sudoers/timestamp.c:424 plugins/sudoers/timestamp.c:468 -#: plugins/sudoers/timestamp.c:980 plugins/sudoers/timestamp.c:1118 +#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 +#: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 +#: plugins/sudoers/timestamp.c:1017 plugins/sudoers/timestamp.c:1146 #: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 -#: plugins/sudoers/visudo.c:148 plugins/sudoers/visudo.c:380 -#: plugins/sudoers/visudo.c:386 plugins/sudoers/visudo.c:492 -#: plugins/sudoers/visudo.c:1048 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 +#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 msgid "unable to allocate memory" msgstr "ne eblas rezervi memoron" -#: gram.y:622 +#: gram.y:623 msgid "a digest requires a path name" msgstr "resumo postulas vojnomon" -#: gram.y:644 +#: gram.y:645 msgid "values for \"CWD\" must start with a '/', '~', or '*'" msgstr "valoroj por \"CWD\" devas komenciĝi per '/', '~' aŭ '*'" -#: gram.y:650 +#: gram.y:651 msgid "\"CWD\" path too long" msgstr "\"CWD\"-vojo tro grandas" -#: gram.y:660 +#: gram.y:661 msgid "values for \"CHROOT\" must start with a '/', '~', or '*'" msgstr "valoroj por \"CHROOT\" devas komenciĝi per '/', '~' aŭ '*'" -#: gram.y:666 +#: gram.y:667 msgid "\"CHROOT\" path too long" msgstr "\"CHROOT\"-vojo tro grandas" -#: gram.y:801 +#: gram.y:802 #, c-format msgid "syntax error, reserved word %s used as an alias name" msgstr "sintakseraro: rezervita vorto %s uzata kiel kromnomo" -#: gram.y:824 +#: gram.y:825 msgid "invalid notbefore value" msgstr "malvalida valoro notafter" -#: gram.y:833 +#: gram.y:834 msgid "invalid notafter value" msgstr "validiga valoro notafter" -#: gram.y:843 plugins/sudoers/policy.c:376 +#: gram.y:844 plugins/sudoers/policy.c:383 msgid "timeout value too large" msgstr "eksvalidiĝo-valoro tro grandas" -#: gram.y:845 plugins/sudoers/policy.c:378 +#: gram.y:846 plugins/sudoers/policy.c:385 msgid "invalid timeout value" msgstr "malvalida eksvalidiĝo-valoro" -#: gram.y:966 plugins/sudoers/sudoers.c:1014 +#: gram.y:967 plugins/sudoers/sudoers.c:1033 msgid "command too long" msgstr "komando tro longas" -#: gram.y:1220 plugins/sudoers/check_aliases.c:96 -#: plugins/sudoers/defaults.c:1275 +#: gram.y:1224 plugins/sudoers/check_aliases.c:96 +#: plugins/sudoers/defaults.c:1276 #, c-format msgid "%s:%d:%d: %s\n" msgstr "%s:%d:%d: %s\n" -#: gram.y:1270 +#: gram.y:1278 #, c-format msgid "Alias \"%s\" already defined" msgstr "Kromnomo \"%s\" jam ekzistas" -#: gram.y:1769 gram.y:1816 lib/eventlog/eventlog.c:309 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 #: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 #: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 @@ -252,33 +267,48 @@ msgstr "Kromnomo \"%s\" jam ekzistas" #: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 #: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 #: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:84 logsrvd/iolog_writer.c:89 -#: logsrvd/iolog_writer.c:123 logsrvd/iolog_writer.c:162 -#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:189 -#: logsrvd/iolog_writer.c:211 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:251 logsrvd/iolog_writer.c:260 -#: logsrvd/iolog_writer.c:276 logsrvd/iolog_writer.c:285 -#: logsrvd/iolog_writer.c:300 logsrvd/iolog_writer.c:313 -#: logsrvd/iolog_writer.c:326 logsrvd/iolog_writer.c:339 -#: logsrvd/iolog_writer.c:354 logsrvd/iolog_writer.c:393 -#: logsrvd/iolog_writer.c:399 logsrvd/iolog_writer.c:406 -#: logsrvd/iolog_writer.c:412 logsrvd/iolog_writer.c:596 -#: logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 logsrvd/logsrvd.c:305 -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:593 -#: logsrvd/logsrvd.c:1086 logsrvd/logsrvd.c:1403 logsrvd/logsrvd.c:1410 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:114 logsrvd/logsrvd_journal.c:203 -#: logsrvd/logsrvd_journal.c:233 logsrvd/logsrvd_journal.c:237 -#: logsrvd/logsrvd_journal.c:245 logsrvd/logsrvd_journal.c:268 -#: logsrvd/logsrvd_journal.c:272 logsrvd/logsrvd_journal.c:420 -#: logsrvd/logsrvd_local.c:174 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:431 -#: logsrvd/logsrvd_local.c:450 logsrvd/logsrvd_queue.c:153 -#: logsrvd/logsrvd_queue.c:184 logsrvd/logsrvd_queue.c:261 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 logsrvd/sendlog.c:1526 logsrvd/sendlog.c:1533 -#: logsrvd/sendlog.c:1756 logsrvd/tls_init.c:299 logsrvd/tls_init.c:323 -#: logsrvd/tls_init.c:334 plugins/sudoers/audit.c:116 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 +#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 +#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 +#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 +#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 +#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 +#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 +#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 +#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 +#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 +#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 +#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 +#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 +#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 +#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 +#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 +#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 #: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 #: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 #: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 @@ -308,11 +338,11 @@ msgstr "Kromnomo \"%s\" jam ekzistas" #: plugins/sudoers/cvtsudoers_merge.c:633 #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 -#: plugins/sudoers/defaults.c:657 plugins/sudoers/defaults.c:1018 -#: plugins/sudoers/defaults.c:1186 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:132 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 #: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 @@ -321,46 +351,47 @@ msgstr "Kromnomo \"%s\" jam ekzistas" #: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 #: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 #: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:687 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:293 +#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 +#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 +#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 +#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 +#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 #: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:223 plugins/sudoers/log_client.c:245 -#: plugins/sudoers/log_client.c:259 plugins/sudoers/log_client.c:397 -#: plugins/sudoers/log_client.c:710 plugins/sudoers/log_client.c:731 -#: plugins/sudoers/log_client.c:1451 plugins/sudoers/log_client.c:1672 -#: plugins/sudoers/log_client.c:2003 plugins/sudoers/log_client.c:2059 -#: plugins/sudoers/logging.c:112 plugins/sudoers/logging.c:192 -#: plugins/sudoers/logging.c:193 plugins/sudoers/logging.c:461 -#: plugins/sudoers/logging.c:675 plugins/sudoers/logging.c:812 -#: plugins/sudoers/logging.c:882 plugins/sudoers/logging.c:894 -#: plugins/sudoers/match_command.c:332 plugins/sudoers/match_command.c:593 -#: plugins/sudoers/match_command.c:644 plugins/sudoers/match_command.c:719 -#: plugins/sudoers/match_command.c:766 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:226 plugins/sudoers/parse.c:243 -#: plugins/sudoers/parse.c:262 plugins/sudoers/parse.c:281 -#: plugins/sudoers/parse.c:298 plugins/sudoers/parse.c:321 -#: plugins/sudoers/parse.c:332 plugins/sudoers/parse_ldif.c:152 -#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 -#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 -#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 -#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 -#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 -#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 -#: plugins/sudoers/parse_ldif.c:597 plugins/sudoers/parse_ldif.c:626 -#: plugins/sudoers/parse_ldif.c:651 plugins/sudoers/parse_ldif.c:709 -#: plugins/sudoers/parse_ldif.c:726 plugins/sudoers/parse_ldif.c:754 -#: plugins/sudoers/parse_ldif.c:761 plugins/sudoers/policy.c:152 -#: plugins/sudoers/policy.c:161 plugins/sudoers/policy.c:170 -#: plugins/sudoers/policy.c:198 plugins/sudoers/policy.c:361 -#: plugins/sudoers/policy.c:376 plugins/sudoers/policy.c:378 -#: plugins/sudoers/policy.c:414 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:471 plugins/sudoers/policy.c:481 +#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 +#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 +#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 +#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 +#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 +#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 +#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 +#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 +#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 +#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 +#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 +#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 +#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 +#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 +#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 +#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 +#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 +#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 +#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 +#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 +#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 +#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 +#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 +#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 +#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 +#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 +#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 +#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 #: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:606 plugins/sudoers/policy.c:998 +#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 +#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 #: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 #: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 #: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 @@ -373,25 +404,25 @@ msgstr "Kromnomo \"%s\" jam ekzistas" #: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 #: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 #: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:111 plugins/sudoers/stubs.c:119 -#: plugins/sudoers/sudoers.c:349 plugins/sudoers/sudoers.c:375 -#: plugins/sudoers/sudoers.c:443 plugins/sudoers/sudoers.c:452 -#: plugins/sudoers/sudoers.c:493 plugins/sudoers/sudoers.c:858 -#: plugins/sudoers/sudoers.c:996 plugins/sudoers/sudoers.c:1055 -#: plugins/sudoers/sudoers.c:1320 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 -#: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 -#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:581 -#: plugins/sudoers/timestamp.c:424 plugins/sudoers/timestamp.c:468 -#: plugins/sudoers/timestamp.c:980 plugins/sudoers/timestamp.c:1118 -#: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 -#: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:160 -#: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 -#: plugins/sudoers/visudo.c:148 plugins/sudoers/visudo.c:380 -#: plugins/sudoers/visudo.c:386 plugins/sudoers/visudo.c:492 -#: plugins/sudoers/visudo.c:1048 toke.l:1023 toke.l:1155 toke.l:1218 -#: toke.l:1226 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 +#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 +#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 +#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 +#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 +#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 +#: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 +#: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 +#: plugins/sudoers/timestamp.c:1146 plugins/sudoers/toke_util.c:78 +#: plugins/sudoers/toke_util.c:106 plugins/sudoers/toke_util.c:131 +#: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 +#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 +#: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 +#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 +#: toke.l:1155 toke.l:1218 toke.l:1226 #, c-format msgid "%s: %s" msgstr "%s: %s" @@ -400,14 +431,14 @@ msgstr "%s: %s" #: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 #: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 #: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:326 -#: plugins/sudoers/env.c:333 plugins/sudoers/env.c:444 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 #: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 #: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:312 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:465 -#: plugins/sudoers/logging.c:820 plugins/sudoers/logging.c:830 -#: plugins/sudoers/policy.c:776 plugins/sudoers/policy.c:787 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 +#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 #: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 #: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 #: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 @@ -450,7 +481,7 @@ msgstr "%8s: %s" msgid "%8s : (command continued) %s" msgstr "%8s : (komando daŭrigis) %s" -#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1241 +#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 #: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 #, c-format msgid "invalid regular expression \"%s\": %s" @@ -565,14 +596,14 @@ msgstr "%s: mankas kampo de runa grupo" msgid "%s exists but is not a directory (0%o)" msgstr "%s ekzistas sed ne dosierujo (0%o)" -#: lib/iolog/iolog_mkdirs.c:119 lib/iolog/iolog_mkdtemp.c:77 -#: logsrvd/iolog_writer.c:810 plugins/sudoers/timestamp.c:205 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "ne eblas mkdir-i: %s" -#: lib/iolog/iolog_mkdtemp.c:81 plugins/sudoers/visudo.c:747 -#: plugins/sudoers/visudo.c:781 plugins/sudoers/visudo.c:787 +#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 +#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "ne eblas ŝanĝi reĝimon de %s al 0%o" @@ -587,150 +618,156 @@ msgstr "nelegebla tempo-registra dosiero: %s" msgid "invalid timing file line: %s" msgstr "malvalida linio en la tempo-registran dosieron: %s" -#: logsrvd/iolog_writer.c:130 plugins/sudoers/logging.c:982 -#: plugins/sudoers/policy.c:573 -msgid "unable to generate UUID" -msgstr "ne eblas genero de UUID" +#: logsrvd/iolog_writer.c:65 +#, c-format +msgid "%s: protocol error: NULL key" +msgstr "%s: protokoleraro: nul-ŝlosilo" -#: logsrvd/iolog_writer.c:158 logsrvd/iolog_writer.c:176 -#: logsrvd/iolog_writer.c:185 logsrvd/iolog_writer.c:203 -#: logsrvd/iolog_writer.c:216 logsrvd/iolog_writer.c:229 -#: logsrvd/iolog_writer.c:240 logsrvd/iolog_writer.c:247 -#: logsrvd/iolog_writer.c:265 logsrvd/iolog_writer.c:272 -#: logsrvd/iolog_writer.c:290 logsrvd/iolog_writer.c:305 -#: logsrvd/iolog_writer.c:318 logsrvd/iolog_writer.c:331 -#: logsrvd/iolog_writer.c:344 logsrvd/iolog_writer.c:359 +#: logsrvd/iolog_writer.c:69 #, c-format msgid "%s: protocol error: wrong type for %s" msgstr "%s: protokoleraro: erara tipo per %s" -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:375 -#: logsrvd/iolog_writer.c:380 logsrvd/iolog_writer.c:385 +#: logsrvd/iolog_writer.c:74 logsrvd/logsrvd_local.c:109 +#: logsrvd/logsrvd_local.c:123 logsrvd/logsrvd_local.c:131 +#: logsrvd/logsrvd_local.c:149 +#, c-format +msgid "%s: protocol error: NULL value found in %s" +msgstr "%s: protokoleraro: nul-valoro trovita en %s" + +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 +#: plugins/sudoers/policy.c:591 +msgid "unable to generate UUID" +msgstr "ne eblas genero de UUID" + +#: logsrvd/iolog_writer.c:341 logsrvd/iolog_writer.c:346 +#: logsrvd/iolog_writer.c:351 logsrvd/iolog_writer.c:356 #, c-format msgid "%s: protocol error: %s missing from AcceptMessage" msgstr "%s: protokola eraro: %s estas malhavata de AcceptMessage" -#: logsrvd/iolog_writer.c:446 +#: logsrvd/iolog_writer.c:417 #, c-format msgid "%s: unable to format session id" msgstr "%s: ne eblas formati seancan identigilon" -#: logsrvd/iolog_writer.c:460 logsrvd/iolog_writer.c:474 -#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:503 -#: logsrvd/iolog_writer.c:517 logsrvd/iolog_writer.c:531 +#: logsrvd/iolog_writer.c:431 logsrvd/iolog_writer.c:445 +#: logsrvd/iolog_writer.c:459 logsrvd/iolog_writer.c:474 +#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:502 #, c-format msgid "%s: %s is not set" msgstr "%s: %s ne estas valorizita" -#: logsrvd/iolog_writer.c:567 logsrvd/iolog_writer.c:574 +#: logsrvd/iolog_writer.c:538 logsrvd/iolog_writer.c:545 #, c-format msgid "unable to expand iolog path %s" msgstr "ne eblas etendi iolog-vojn %s" -#: logsrvd/iolog_writer.c:592 +#: logsrvd/iolog_writer.c:563 #, c-format msgid "unable to create iolog path %s" msgstr "ne eblas krei iolog-vojon %s" -#: logsrvd/iolog_writer.c:622 +#: logsrvd/iolog_writer.c:593 #, c-format msgid "invalid iofd %d" msgstr "nevalida eneliga dosierpriskribilo %d" -#: logsrvd/iolog_writer.c:642 +#: logsrvd/iolog_writer.c:613 #, c-format msgid "error closing iofd %d: %s" msgstr "eraro dum fermi eneligan dosierpriskribilon %d: %s" -#: logsrvd/iolog_writer.c:662 +#: logsrvd/iolog_writer.c:633 #, c-format msgid "error flushing iofd %d: %s" msgstr "eraro dum elbufrigi eneligan eneligan priskribilon %d: %s" -#: logsrvd/iolog_writer.c:780 +#: logsrvd/iolog_writer.c:751 #, c-format msgid "invalid I/O log %s: %s referenced but not present" msgstr "nevalida eneliga protokolo %s: %s estas referencita sed ne difinita" -#: logsrvd/iolog_writer.c:792 logsrvd/logsrvd_journal.c:372 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s: ne eblas trovi daŭrigan punkton [%lld, %ld]" -#: logsrvd/iolog_writer.c:814 logsrvd/logsrvd_journal.c:415 -#: logsrvd/logsrvd_queue.c:110 logsrvd/tls_init.c:250 -#: plugins/sudoers/check.c:282 plugins/sudoers/cvtsudoers.c:730 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 +#: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 -#: plugins/sudoers/cvtsudoers_csv.c:692 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1106 -#: plugins/sudoers/sudoreplay.c:1469 plugins/sudoers/timestamp.c:433 -#: plugins/sudoers/tsdump.c:128 plugins/sudoers/visudo.c:965 +#: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 +#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 +#: plugins/sudoers/visudo.c:971 #, c-format msgid "unable to open %s" msgstr "ne eblas malfermi: %s" -#: logsrvd/iolog_writer.c:826 logsrvd/logsrv_util.c:100 -#: logsrvd/logsrv_util.c:107 plugins/sudoers/sudoreplay.c:362 +#: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 #: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "unable to open %s/%s" msgstr "ne eblas malfermi: %s/%s" -#: logsrvd/iolog_writer.c:839 +#: logsrvd/iolog_writer.c:810 #, c-format msgid "unable to copy %s/%s to %s/%s: %s" msgstr "ne eblas kopii de %s/%s al %s/%s: %s" -#: logsrvd/iolog_writer.c:868 logsrvd/logsrvd_journal.c:185 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 #, c-format msgid "unable to rename %s to %s" msgstr "ne eblas alinomo de %s al %s" -#: logsrvd/logsrv_util.c:142 logsrvd/logsrv_util.c:171 +#: logsrvd/logsrv_util.c:147 logsrvd/logsrv_util.c:176 #, c-format msgid "%s/%s: unable to find resume point [%lld, %ld]" msgstr "%s/%s: ne eblas trovi daŭrigan punkton [%lld, %ld]" -#: logsrvd/logsrv_util.c:154 +#: logsrvd/logsrv_util.c:159 #, c-format msgid "missing I/O log file %s/%s" msgstr "mankas eneliga protokolo %s/%s" -#: logsrvd/logsrv_util.c:161 +#: logsrvd/logsrv_util.c:166 #, c-format msgid "%s/%s: unable to seek forward %zu" msgstr "%s/%s: ne eblas serĉi antaŭen: %zu" -#: logsrvd/logsrvd.c:266 logsrvd/logsrvd_queue.c:130 +#: logsrvd/logsrvd.c:271 logsrvd/logsrvd_queue.c:135 msgid "unable to connect to relay" msgstr "ne eblas konektiĝi al relajso" -#: logsrvd/logsrvd.c:325 logsrvd/logsrvd_relay.c:837 +#: logsrvd/logsrvd.c:330 logsrvd/logsrvd_relay.c:842 #, c-format msgid "server message too large: %zu" msgstr "servila mesaĝo tro granda: %zu" -#: logsrvd/logsrvd.c:417 logsrvd/logsrvd.c:534 logsrvd/logsrvd.c:613 -#: logsrvd/logsrvd.c:837 logsrvd/logsrvd.c:851 logsrvd/logsrvd.c:1011 -#: logsrvd/logsrvd.c:1136 logsrvd/logsrvd.c:1309 logsrvd/logsrvd.c:1327 -#: logsrvd/logsrvd.c:1428 logsrvd/logsrvd.c:1551 logsrvd/logsrvd.c:1735 -#: logsrvd/logsrvd_journal.c:484 logsrvd/logsrvd_local.c:197 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_relay.c:167 -#: logsrvd/logsrvd_relay.c:244 logsrvd/logsrvd_relay.c:248 -#: logsrvd/logsrvd_relay.c:384 logsrvd/logsrvd_relay.c:576 -#: logsrvd/logsrvd_relay.c:737 logsrvd/logsrvd_relay.c:1124 -#: logsrvd/sendlog.c:1316 logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 -#: logsrvd/tls_client.c:211 plugins/sudoers/audit.c:276 -#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 -#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:116 -#: plugins/sudoers/log_client.c:338 plugins/sudoers/log_client.c:354 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:606 -#: plugins/sudoers/log_client.c:613 plugins/sudoers/log_client.c:1138 -#: plugins/sudoers/log_client.c:1420 plugins/sudoers/log_client.c:1461 -#: plugins/sudoers/log_client.c:1469 plugins/sudoers/log_client.c:1628 -#: plugins/sudoers/log_client.c:1746 plugins/sudoers/log_client.c:2067 -#: plugins/sudoers/log_client.c:2075 plugins/sudoers/logging.c:150 -#: plugins/sudoers/logging.c:209 plugins/sudoers/sudoreplay.c:522 +#: logsrvd/logsrvd.c:422 logsrvd/logsrvd.c:545 logsrvd/logsrvd.c:631 +#: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 +#: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 +#: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 +#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 +#: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 +#: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 +#: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 +#: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 +#: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 +#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 +#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 +#: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 +#: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 +#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 +#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 +#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 +#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 #: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 #: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 #: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 @@ -739,633 +776,658 @@ msgstr "servila mesaĝo tro granda: %zu" msgid "unable to add event to queue" msgstr "ne eblas aldoni eventon al atendovico" -#: logsrvd/logsrvd.c:441 logsrvd/logsrvd.c:478 logsrvd/logsrvd.c:510 -#: logsrvd/logsrvd.c:558 logsrvd/logsrvd.c:630 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:720 logsrvd/logsrvd_relay.c:505 -#: logsrvd/logsrvd_relay.c:538 +#: logsrvd/logsrvd.c:446 logsrvd/logsrvd.c:483 logsrvd/logsrvd.c:515 +#: logsrvd/logsrvd.c:569 logsrvd/logsrvd.c:648 logsrvd/logsrvd.c:684 +#: logsrvd/logsrvd.c:720 logsrvd/logsrvd.c:756 logsrvd/logsrvd_relay.c:510 +#: logsrvd/logsrvd_relay.c:543 #, c-format msgid "unexpected state %d for %s" msgstr "neatendita stato %d por %s" -#: logsrvd/logsrvd.c:442 logsrvd/logsrvd.c:479 logsrvd/logsrvd.c:511 -#: logsrvd/logsrvd.c:559 logsrvd/logsrvd.c:631 logsrvd/logsrvd.c:661 -#: logsrvd/logsrvd.c:691 logsrvd/logsrvd.c:721 logsrvd/logsrvd_relay.c:507 -#: logsrvd/logsrvd_relay.c:540 +#: logsrvd/logsrvd.c:447 logsrvd/logsrvd.c:484 logsrvd/logsrvd.c:516 +#: logsrvd/logsrvd.c:570 logsrvd/logsrvd.c:649 logsrvd/logsrvd.c:685 +#: logsrvd/logsrvd.c:721 logsrvd/logsrvd.c:757 logsrvd/logsrvd_relay.c:512 +#: logsrvd/logsrvd_relay.c:545 msgid "state machine error" msgstr "statmaŝina eraro" -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:449 +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:454 msgid "invalid AcceptMessage" msgstr "nevalida AcceptMessage" -#: logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:486 +#: logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:491 msgid "invalid RejectMessage" msgstr "nevalida RejectMessage" -#: logsrvd/logsrvd.c:593 logsrvd/logsrvd.c:594 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:523 +msgid "invalid ExitMessage" +msgstr "nevalida ExitMessage" + +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:577 +msgid "invalid RestartMessage" +msgstr "nevalida RestartMessage" + +#: logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:612 msgid "invalid AlertMessage" msgstr "nevalida AlertMessage" -#: logsrvd/logsrvd.c:635 logsrvd/logsrvd.c:665 logsrvd/logsrvd.c:695 +#: logsrvd/logsrvd.c:653 logsrvd/logsrvd.c:689 logsrvd/logsrvd.c:725 #, c-format msgid "%s: unexpected IoBuffer" msgstr "%s: neatendita IoBuffer" -#: logsrvd/logsrvd.c:636 logsrvd/logsrvd.c:666 logsrvd/logsrvd.c:696 +#: logsrvd/logsrvd.c:654 logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:726 msgid "protocol error" msgstr "protokolo-eraro" -#: logsrvd/logsrvd.c:746 logsrvd/logsrvd_journal.c:283 -#: logsrvd/logsrvd_relay.c:647 logsrvd/sendlog.c:1217 -#: plugins/sudoers/log_client.c:1618 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:661 +msgid "invalid IoBuffer" +msgstr "malvalida IoBuffer" + +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:697 +msgid "invalid ChangeWindowSize" +msgstr "nevalida ChangeWindowSize" + +#: logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:733 +msgid "invalid CommandSuspend" +msgstr "nevalida CommandSuspend" + +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 +#: plugins/sudoers/log_client.c:1583 #, c-format msgid "unable to unpack %s size %zu" msgstr "ne malpakeblas %s, grando %zu" -#: logsrvd/logsrvd.c:791 logsrvd/logsrvd_journal.c:357 -#: logsrvd/logsrvd_local.c:125 logsrvd/logsrvd_relay.c:671 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "neatendita valoro %d de type_case en %s el %s" -#: logsrvd/logsrvd.c:793 +#: logsrvd/logsrvd.c:829 msgid "unrecognized ClientMessage type" msgstr "nekonata ClientMessage-tipo" -#: logsrvd/logsrvd.c:883 +#: logsrvd/logsrvd.c:919 #, c-format msgid "timed out writing to client %s" msgstr "eksvalidiĝo dum skribado al kliento %s" -#: logsrvd/logsrvd.c:888 logsrvd/logsrvd_relay.c:909 logsrvd/sendlog.c:1420 +#: logsrvd/logsrvd.c:924 logsrvd/logsrvd_relay.c:914 logsrvd/sendlog.c:1395 #, c-format msgid "missing write buffer for client %s" msgstr "mankanta skribobufo por kliento %s" -#: logsrvd/logsrvd.c:982 +#: logsrvd/logsrvd.c:1020 #, c-format msgid "timed out reading from client %s" msgstr "eksvalidiĝo dum legado el kliento %s" -#: logsrvd/logsrvd.c:1023 logsrvd/logsrvd_relay.c:772 +#: logsrvd/logsrvd.c:1061 logsrvd/logsrvd_relay.c:777 #, c-format msgid "EOF from %s without proper TLS shutdown" msgstr "Dosierfino de %s sen konvena TLS-finiĝo" -#: logsrvd/logsrvd.c:1067 logsrvd/logsrvd_relay.c:200 logsrvd/sendlog.c:317 -#: plugins/sudoers/log_client.c:716 +#: logsrvd/logsrvd.c:1105 logsrvd/logsrvd_relay.c:205 logsrvd/sendlog.c:322 +#: plugins/sudoers/log_client.c:721 #, c-format msgid "client message too large: %zu" msgstr "klienta mesaĝo tro grandas: %zu" -#: logsrvd/logsrvd.c:1068 logsrvd/logsrvd_journal.c:246 -#: logsrvd/logsrvd_journal.c:247 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 +#: logsrvd/logsrvd_journal.c:257 msgid "client message too large" msgstr "klienta mesaĝo tro grandas" -#: logsrvd/logsrvd.c:1086 logsrvd/logsrvd.c:1087 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1125 msgid "invalid ClientMessage" msgstr "nevalida ClientMessage" -#: logsrvd/logsrvd.c:1389 +#: logsrvd/logsrvd.c:1425 msgid "unable to get remote IP addr" msgstr "ne eblas atingi foran IP-adreson" -#: logsrvd/logsrvd.c:1420 logsrvd/tls_client.c:198 -#: plugins/sudoers/log_client.c:276 +#: logsrvd/logsrvd.c:1456 logsrvd/tls_client.c:203 +#: plugins/sudoers/log_client.c:281 #, c-format msgid "Unable to attach user data to the ssl object: %s" msgstr "Ne eblas almeti uzanto-datumojn al la SSL-objekto: %s" -#: logsrvd/logsrvd.c:1601 logsrvd/logsrvd.c:1953 +#: logsrvd/logsrvd.c:1639 logsrvd/logsrvd.c:1992 msgid "unable to setup listen socket" msgstr "ne eblas agordi aŭskultan ŝtopilingon" -#: logsrvd/logsrvd.c:1718 +#: logsrvd/logsrvd.c:1756 #, c-format msgid "unexpected signal %d" msgstr "neatendita signalo %d" -#: logsrvd/logsrvd.c:1855 +#: logsrvd/logsrvd.c:1894 msgid "sudo log server" msgstr "protokolo-servilo de sudo" -#: logsrvd/logsrvd.c:1857 logsrvd/sendlog.c:116 +#: logsrvd/logsrvd.c:1896 logsrvd/sendlog.c:121 msgid "Options:" msgstr "Modifiloj:" -#: logsrvd/logsrvd.c:1859 +#: logsrvd/logsrvd.c:1898 msgid "path to configuration file" msgstr "vojo al la agordo-dosiero" -#: logsrvd/logsrvd.c:1861 logsrvd/sendlog.c:118 +#: logsrvd/logsrvd.c:1900 logsrvd/sendlog.c:123 msgid "display help message and exit" msgstr "montri helpan mesaĝon kaj finiĝi" -#: logsrvd/logsrvd.c:1863 +#: logsrvd/logsrvd.c:1902 msgid "do not fork, run in the foreground" msgstr "ne disforkiĝi, plenumiĝi en la malfono" -#: logsrvd/logsrvd.c:1865 +#: logsrvd/logsrvd.c:1904 msgid "percent chance connections will drop" msgstr "elcenta ŝanco, ke konektoj malkonektiĝos" -#: logsrvd/logsrvd.c:1867 logsrvd/sendlog.c:148 +#: logsrvd/logsrvd.c:1906 logsrvd/sendlog.c:153 msgid "display version information and exit" msgstr "montri eldonan informon kaj finiĝi" -#: logsrvd/logsrvd.c:1917 logsrvd/sendlog.c:1725 +#: logsrvd/logsrvd.c:1956 logsrvd/sendlog.c:1702 msgid "Protobuf-C version 1.3 or higher required" msgstr "Protobuf-C, eldono 1.3 aŭ pli postulata" -#: logsrvd/logsrvd.c:1933 +#: logsrvd/logsrvd.c:1972 #, c-format msgid "invalid random drop value: %s" msgstr "validiga hazarda interrompiĝo-valoro: %s" -#: logsrvd/logsrvd.c:1936 logsrvd/sendlog.c:1779 +#: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 #: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 -#: plugins/sudoers/visudo.c:180 +#: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s eldono %s\n" -#: logsrvd/logsrvd_conf.c:417 plugins/sudoers/check.c:347 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1234 plugins/sudoers/sudoers.c:500 -#: plugins/sudoers/sudoers.c:1362 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "nekonata uzanto %s" -#: logsrvd/logsrvd_conf.c:434 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:1396 +#: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 +#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" msgstr "nekonata grupo %s" -#: logsrvd/logsrvd_conf.c:452 +#: logsrvd/logsrvd_conf.c:457 #, c-format msgid "unable to parse iolog mode %s" msgstr "ne eblas analizi iolog-reĝimon %s" -#: logsrvd/logsrvd_conf.c:469 logsrvd/logsrvd_conf.c:1238 +#: logsrvd/logsrvd_conf.c:474 logsrvd/logsrvd_conf.c:1243 #, c-format msgid "invalid value for %s: %s" msgstr "nevalida valoro por %s: %s" -#: logsrvd/logsrvd_conf.c:522 +#: logsrvd/logsrvd_conf.c:527 msgid "TLS not supported" msgstr "TLS ne regata" -#: logsrvd/logsrvd_conf.c:544 +#: logsrvd/logsrvd_conf.c:549 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: logsrvd/logsrvd_conf.c:617 logsrvd/logsrvd_conf.c:1027 +#: logsrvd/logsrvd_conf.c:622 logsrvd/logsrvd_conf.c:1032 #, c-format msgid "%s: not a fully qualified path" msgstr "%s: ne tute kvalifikita vojo" -#: logsrvd/logsrvd_conf.c:945 logsrvd/logsrvd_conf.c:961 -#: logsrvd/logsrvd_conf.c:1671 +#: logsrvd/logsrvd_conf.c:951 logsrvd/logsrvd_conf.c:967 +#: logsrvd/logsrvd_conf.c:1676 #, c-format msgid "unknown syslog facility %s" msgstr "nekonata syslog-instalaĵo: %s" -#: logsrvd/logsrvd_conf.c:977 logsrvd/logsrvd_conf.c:993 -#: logsrvd/logsrvd_conf.c:1009 logsrvd/logsrvd_conf.c:1675 -#: logsrvd/logsrvd_conf.c:1679 logsrvd/logsrvd_conf.c:1683 +#: logsrvd/logsrvd_conf.c:983 logsrvd/logsrvd_conf.c:999 +#: logsrvd/logsrvd_conf.c:1015 logsrvd/logsrvd_conf.c:1680 +#: logsrvd/logsrvd_conf.c:1684 logsrvd/logsrvd_conf.c:1688 #, c-format msgid "unknown syslog priority %s" msgstr "nekonata syslog-prioritato: %s" -#: logsrvd/logsrvd_conf.c:1192 +#: logsrvd/logsrvd_conf.c:1197 #, c-format msgid "%s:%d unmatched '[': %s" msgstr "%s:%d '[' sen kongruanta ']': %s" -#: logsrvd/logsrvd_conf.c:1198 +#: logsrvd/logsrvd_conf.c:1203 #, c-format msgid "%s:%d garbage after ']': %s" msgstr "%s:%d '[' rubo post ']': %s" -#: logsrvd/logsrvd_conf.c:1210 +#: logsrvd/logsrvd_conf.c:1215 #, c-format msgid "%s:%d invalid config section: %s" msgstr "%s:%d nevalida agordo-sekcio: %s" -#: logsrvd/logsrvd_conf.c:1218 +#: logsrvd/logsrvd_conf.c:1223 #, c-format msgid "%s:%d invalid configuration line: %s" msgstr "%s:%d nevalida agordo-dosiera linio: %s" -#: logsrvd/logsrvd_conf.c:1224 +#: logsrvd/logsrvd_conf.c:1229 #, c-format msgid "%s:%d expected section name: %s" msgstr "%s:%d atendas sekcian nomon: %s" -#: logsrvd/logsrvd_conf.c:1246 +#: logsrvd/logsrvd_conf.c:1251 #, c-format msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] nevalida ŝlosilo: %s" -#: logsrvd/logsrvd_conf.c:1276 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1035 +#: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 +#: plugins/sudoers/logging.c:1029 #, c-format msgid "unable to open log file %s" msgstr "ne eblas malfermi protokolon %s" -#: logsrvd/logsrvd_conf.c:1757 +#: logsrvd/logsrvd_conf.c:1763 msgid "unable to initialize server TLS context" msgstr "ne eblas ekigi servilan TLS-kuntekston" -#: logsrvd/logsrvd_conf.c:1777 +#: logsrvd/logsrvd_conf.c:1783 msgid "unable to initialize relay TLS context" msgstr "ne eblas ekigi relajsan SSL-kuntekston" -#: logsrvd/logsrvd_journal.c:136 logsrvd/logsrvd_journal.c:411 -#: logsrvd/logsrvd_journal.c:416 +#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 +#: logsrvd/logsrvd_journal.c:426 msgid "unable to create journal file" msgstr "ne eblas krei ĵurnalon" -#: logsrvd/logsrvd_journal.c:140 logsrvd/logsrvd_queue.c:104 -#: plugins/sudoers/visudo.c:1020 +#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1026 #, c-format msgid "unable to lock %s" msgstr "ne eblas ŝlosi: %s" -#: logsrvd/logsrvd_journal.c:143 +#: logsrvd/logsrvd_journal.c:153 msgid "unable to lock journal file" msgstr "ne eblas ŝlosi ĵurnalon" -#: logsrvd/logsrvd_journal.c:151 +#: logsrvd/logsrvd_journal.c:161 msgid "unable to open journal file" msgstr "ne eblas malfermi ĵurnalon" -#: logsrvd/logsrvd_journal.c:172 logsrvd/logsrvd_journal.c:447 -#: logsrvd/logsrvd_journal.c:452 +#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 +#: logsrvd/logsrvd_journal.c:462 msgid "unable to write journal file" msgstr "ne eblas skribi ĵurnalon: %s" -#: logsrvd/logsrvd_journal.c:180 logsrvd/logsrvd_journal.c:187 +#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 msgid "unable to rename journal file" msgstr "ne eblas alinomi ĵurnalon" -#: logsrvd/logsrvd_journal.c:234 logsrvd/logsrvd_journal.c:235 -#: logsrvd/logsrvd_journal.c:269 logsrvd/logsrvd_journal.c:270 +#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 +#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 msgid "unexpected EOF reading journal file" msgstr "neatendita dosierfino en ĵurnalo" -#: logsrvd/logsrvd_journal.c:238 logsrvd/logsrvd_journal.c:239 -#: logsrvd/logsrvd_journal.c:273 logsrvd/logsrvd_journal.c:274 +#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 +#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 msgid "error reading journal file" msgstr "eraro dum legi prelegan ĵurnalon" -#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:371 +#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 msgid "invalid journal file, unable to restart" msgstr "nevalida ĵurnalo, ne eblas restarti" -#: logsrvd/logsrvd_journal.c:430 +#: logsrvd/logsrvd_journal.c:440 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "ne eblas atingi punkton [%lld, %ld] en ĵurnalo %s" -#: logsrvd/logsrvd_local.c:153 +#: logsrvd/logsrvd_local.c:166 +#, c-format +msgid "unexpected value_case %d in %s from %s" +msgstr "neatendita valoro %d de value_case en %s el %s" + +#: logsrvd/logsrvd_local.c:194 msgid "error parsing AcceptMessage" msgstr "neanalizebla AcceptMessage" -#: logsrvd/logsrvd_local.c:164 +#: logsrvd/logsrvd_local.c:205 msgid "error creating I/O log" msgstr "malsukcesis kreiĝo de eneliga protokolo" -#: logsrvd/logsrvd_local.c:187 +#: logsrvd/logsrvd_local.c:228 msgid "error logging accept event" msgstr "malsukcesis protokoli akcepto-eventon" -#: logsrvd/logsrvd_local.c:226 +#: logsrvd/logsrvd_local.c:267 msgid "error parsing RejectMessage" msgstr "neanalizebla RejectMessage" -#: logsrvd/logsrvd_local.c:250 +#: logsrvd/logsrvd_local.c:291 msgid "error logging reject event" msgstr "malsukcesis protokoli malakcepto-eventon" -#: logsrvd/logsrvd_local.c:386 logsrvd/logsrvd_local.c:394 +#: logsrvd/logsrvd_local.c:427 logsrvd/logsrvd_local.c:435 msgid "error logging exit event" msgstr "malsukcesis protokoli finigo-eventon" -#: logsrvd/logsrvd_local.c:451 logsrvd/logsrvd_local.c:452 +#: logsrvd/logsrvd_local.c:492 logsrvd/logsrvd_local.c:493 msgid "log is already complete, cannot be restarted" msgstr "protokolo jam estas kompleta, ne eblas restartigi ĝin" -#: logsrvd/logsrvd_local.c:482 +#: logsrvd/logsrvd_local.c:523 msgid "unable to restart log" msgstr "ne eblas restartigi protokolon" -#: logsrvd/logsrvd_local.c:498 +#: logsrvd/logsrvd_local.c:539 msgid "error parsing AlertMessage" msgstr "neanalizebla AlertMessage" -#: logsrvd/logsrvd_local.c:508 +#: logsrvd/logsrvd_local.c:549 msgid "error logging alert event" msgstr "malsukcesis protokoli alarmo-eventon" -#: logsrvd/logsrvd_local.c:544 logsrvd/logsrvd_local.c:607 -#: logsrvd/logsrvd_local.c:642 +#: logsrvd/logsrvd_local.c:585 logsrvd/logsrvd_local.c:648 +#: logsrvd/logsrvd_local.c:683 #, c-format msgid "unable to format timing buffer, length %d" msgstr "ne eblas aranĝi tempo-bufron, longo %d" -#: logsrvd/logsrvd_local.c:558 logsrvd/logsrvd_local.c:566 -#: logsrvd/logsrvd_local.c:614 logsrvd/logsrvd_local.c:649 +#: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 +#: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 #: plugins/sudoers/sudoreplay.c:351 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" -#: logsrvd/logsrvd_local.c:577 +#: logsrvd/logsrvd_local.c:618 msgid "randomly dropping connection" msgstr "hazarde ĉesanta konekto" -#: logsrvd/logsrvd_local.c:589 +#: logsrvd/logsrvd_local.c:630 msgid "error writing IoBuffer" msgstr "neskribebla IoBuffer" -#: logsrvd/logsrvd_local.c:624 +#: logsrvd/logsrvd_local.c:665 msgid "error writing ChangeWindowSize" msgstr "neskribela ChangeWindowSize" -#: logsrvd/logsrvd_local.c:659 +#: logsrvd/logsrvd_local.c:700 msgid "error writing CommandSuspend" msgstr "neskribela CommandSuspend" -#: logsrvd/logsrvd_relay.c:430 +#: logsrvd/logsrvd_relay.c:435 msgid "TLS handshake with relay host failed" msgstr "Malsukcesis TLS-manpremo kun relajsa retnodo" -#: logsrvd/logsrvd_relay.c:458 +#: logsrvd/logsrvd_relay.c:463 msgid "unable to connect to relay host" msgstr "ne eblas konektiĝi al relajsa retnodo" -#: logsrvd/logsrvd_relay.c:513 +#: logsrvd/logsrvd_relay.c:518 #, c-format msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: nevalida ServerHello, server_id mankas" -#: logsrvd/logsrvd_relay.c:515 logsrvd/sendlog.c:1121 -#: plugins/sudoers/log_client.c:1504 +#: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 +#: plugins/sudoers/log_client.c:1469 msgid "invalid ServerHello" msgstr "nevalida ServerHello" -#: logsrvd/logsrvd_relay.c:674 +#: logsrvd/logsrvd_relay.c:679 msgid "unrecognized ServerMessage type" msgstr "nekonata ServerMessage-tipo" -#: logsrvd/logsrvd_relay.c:703 +#: logsrvd/logsrvd_relay.c:708 #, c-format msgid "timed out reading from relay %s (%s)" msgstr "eksvalidiĝo dum legado el relajso %s (%s)" -#: logsrvd/logsrvd_relay.c:705 +#: logsrvd/logsrvd_relay.c:710 msgid "timeout reading from relay" msgstr "eksvalidiĝo dum legado el relajso" -#: logsrvd/logsrvd_relay.c:757 +#: logsrvd/logsrvd_relay.c:762 msgid "relay host name does not match certificate" msgstr "relajsa retnodnomo ne kongruas kun atestilo" -#: logsrvd/logsrvd_relay.c:763 logsrvd/logsrvd_relay.c:777 -#: logsrvd/logsrvd_relay.c:784 +#: logsrvd/logsrvd_relay.c:768 logsrvd/logsrvd_relay.c:782 +#: logsrvd/logsrvd_relay.c:789 msgid "error reading from relay" msgstr "eraro dum legi el relajso" -#: logsrvd/logsrvd_relay.c:805 +#: logsrvd/logsrvd_relay.c:810 msgid "unable to read from relay" msgstr "ne eblas legi el relajso" -#: logsrvd/logsrvd_relay.c:820 logsrvd/logsrvd_relay.c:938 +#: logsrvd/logsrvd_relay.c:825 logsrvd/logsrvd_relay.c:943 msgid "relay server closed connection" msgstr "relajsa servilo fermis la konekton" -#: logsrvd/logsrvd_relay.c:838 +#: logsrvd/logsrvd_relay.c:843 msgid "server message too large" msgstr "servila mesaĝo tro granda" -#: logsrvd/logsrvd_relay.c:902 +#: logsrvd/logsrvd_relay.c:907 #, c-format msgid "timed out writing to relay %s (%s)" msgstr "eksvalidiĝo dum skribado al relajso %s (%s)" -#: logsrvd/logsrvd_relay.c:904 +#: logsrvd/logsrvd_relay.c:909 msgid "timeout writing to relay" msgstr "eksvalidiĝo dum skribado al relajso" -#: logsrvd/logsrvd_relay.c:957 logsrvd/logsrvd_relay.c:964 -#: logsrvd/logsrvd_relay.c:974 +#: logsrvd/logsrvd_relay.c:962 logsrvd/logsrvd_relay.c:969 +#: logsrvd/logsrvd_relay.c:981 msgid "error writing to relay" msgstr "eraro dum skribi al relajso" -#: logsrvd/sendlog.c:114 +#: logsrvd/sendlog.c:119 msgid "send sudo I/O log to remote server" msgstr "%s - sendi eneligo-protokolon de sudo al fora servilo" -#: logsrvd/sendlog.c:120 +#: logsrvd/sendlog.c:125 msgid "only send an accept event (no I/O)" msgstr "sendi nur akcepto-eventon (neniun eneligon)" -#: logsrvd/sendlog.c:123 +#: logsrvd/sendlog.c:128 msgid "certificate bundle file to verify server's cert against" msgstr "atestilara dosiero kontraŭ kiu aŭtentigi la servilan atestilon" -#: logsrvd/sendlog.c:125 +#: logsrvd/sendlog.c:130 msgid "certificate file for TLS handshake" msgstr "atestila dosiero por TLS-manpremo" -#: logsrvd/sendlog.c:128 +#: logsrvd/sendlog.c:133 msgid "host to send logs to" msgstr "retnodo al kiu sendi protokolojn" -#: logsrvd/sendlog.c:130 +#: logsrvd/sendlog.c:135 msgid "remote ID of I/O log to be resumed" msgstr "fora identigilo de eneliga protokolo rekomenciĝonta" -#: logsrvd/sendlog.c:133 +#: logsrvd/sendlog.c:138 msgid "private key file" msgstr "privatŝlosila dosiero" -#: logsrvd/sendlog.c:135 +#: logsrvd/sendlog.c:140 msgid "do not verify server certificate" msgstr "ne aŭtentigi servilan atestilon" -#: logsrvd/sendlog.c:138 +#: logsrvd/sendlog.c:143 msgid "port to use when connecting to host" msgstr "porto uzoto dum konektiĝi al retnodo" -#: logsrvd/sendlog.c:140 +#: logsrvd/sendlog.c:145 msgid "restart previous I/O log transfer" msgstr "restartigi iaman eneligo-protokolan transdonon" -#: logsrvd/sendlog.c:142 +#: logsrvd/sendlog.c:147 msgid "reject the command with the given reason" msgstr "malakcepti la komandon kun la donita kialo" -#: logsrvd/sendlog.c:144 +#: logsrvd/sendlog.c:149 msgid "stop transfer after reaching this time" msgstr "haltigi transigon post atingo de ĉi tiu tempo" -#: logsrvd/sendlog.c:146 +#: logsrvd/sendlog.c:151 msgid "test audit server by sending selected I/O log n times in parallel" msgstr "provi revizian servilon per sendado de elektita eneliga logo n-foje paralele" -#: logsrvd/sendlog.c:171 plugins/sudoers/log_client.c:448 +#: logsrvd/sendlog.c:176 plugins/sudoers/log_client.c:453 #, c-format msgid "unable to look up %s:%s: %s" msgstr "ne eblas serĉi je %s:%s %s" -#: logsrvd/sendlog.c:209 +#: logsrvd/sendlog.c:214 msgid "unable to get server IP addr" msgstr "ne eblas atingi servilan IP-adreson" -#: logsrvd/sendlog.c:295 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 #, c-format msgid "unable to read %s/%s: %s" msgstr "ne eblas legi je %s/%s: %s" -#: logsrvd/sendlog.c:1045 plugins/sudoers/iolog.c:949 -#: plugins/sudoers/iolog.c:1024 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 +#: plugins/sudoers/iolog.c:1026 #, c-format msgid "unexpected I/O event %d" msgstr "neatendita eneliga evento %d" -#: logsrvd/sendlog.c:1098 logsrvd/sendlog.c:1115 logsrvd/sendlog.c:1149 -#: plugins/sudoers/log_client.c:1153 plugins/sudoers/log_client.c:1430 -#: plugins/sudoers/log_client.c:1498 plugins/sudoers/log_client.c:1537 +#: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 +#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 #, c-format msgid "%s: unexpected state %d" msgstr "%s: neatendita stato %d" -#: logsrvd/sendlog.c:1185 plugins/sudoers/log_client.c:1586 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 #, c-format msgid "error message received from server: %s" msgstr "erarmesaĝo ricevita el servilo: %s" -#: logsrvd/sendlog.c:1198 plugins/sudoers/log_client.c:1599 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 #, c-format msgid "abort message received from server: %s" msgstr "abortiga mesaĝo ricevita el servilo: %s" -#: logsrvd/sendlog.c:1257 plugins/sudoers/log_client.c:1649 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s neatendita valoro %d de type_case" -#: logsrvd/sendlog.c:1286 +#: logsrvd/sendlog.c:1261 msgid "timeout reading from server" msgstr "eksvalidiĝo dum legado el servilo" -#: logsrvd/sendlog.c:1335 plugins/sudoers/log_client.c:1765 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 msgid "host name does not match certificate" msgstr "retnodnomo ne kongruas kun atestilo" -#: logsrvd/sendlog.c:1368 +#: logsrvd/sendlog.c:1343 msgid "premature EOF" msgstr "trofrua dosierfino" -#: logsrvd/sendlog.c:1381 plugins/sudoers/log_client.c:1812 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 #, c-format msgid "server message too large: %u" msgstr "servila mesaĝo tro granda: %u" -#: logsrvd/sendlog.c:1437 +#: logsrvd/sendlog.c:1412 msgid "timeout writing to server" msgstr "eksvalidiĝo dum skribado al servilo" -#: logsrvd/sendlog.c:1802 +#: logsrvd/sendlog.c:1779 msgid "both restart point and iolog ID must be specified" msgstr "kaj restartiga punkto kaj iolog-identigilo estas specifendaj" -#: logsrvd/sendlog.c:1806 +#: logsrvd/sendlog.c:1783 msgid "a restart point may not be set when no I/O is sent" msgstr "ne rajtas estigi restartigan punkton kiam neniu eneligaĵo estas sendita" -#: logsrvd/sendlog.c:1882 +#: logsrvd/sendlog.c:1859 #, c-format msgid "exited prematurely with state %d" msgstr "trofrue finiĝis kun stato %d" -#: logsrvd/sendlog.c:1883 +#: logsrvd/sendlog.c:1860 #, c-format msgid "elapsed time sent to server [%lld, %ld]" msgstr "pasinta tempo sentita al servilo [%lld, %ld]" -#: logsrvd/sendlog.c:1885 +#: logsrvd/sendlog.c:1862 #, c-format msgid "commit point received from server [%lld, %ld]" msgstr "kunsendita punkto ricevita el servilo [%lld, %ld]" -#: logsrvd/tls_client.c:106 plugins/sudoers/log_client.c:310 +#: logsrvd/tls_client.c:111 plugins/sudoers/log_client.c:315 msgid "TLS handshake timeout occurred" msgstr "Eksvalidiĝo de TLS-manpremo okazis" -#: logsrvd/tls_client.c:126 logsrvd/tls_client.c:142 -#: plugins/sudoers/log_client.c:332 plugins/sudoers/log_client.c:348 +#: logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 +#: plugins/sudoers/log_client.c:337 plugins/sudoers/log_client.c:353 msgid "unable to set event" msgstr "ne eblas apliki eventon" -#: logsrvd/tls_client.c:152 logsrvd/tls_client.c:156 +#: logsrvd/tls_client.c:157 logsrvd/tls_client.c:161 #, c-format msgid "TLS connection failed: %s" msgstr "TLS-konekto malsukcesis: %s" -#: logsrvd/tls_client.c:191 +#: logsrvd/tls_client.c:196 #, c-format msgid "unable to allocate ssl object: %s" msgstr "ne eblas generi SSL-objekton: %s" -#: logsrvd/tls_client.c:205 +#: logsrvd/tls_client.c:210 #, c-format msgid "Unable to attach socket to the ssl object: %s" msgstr "Ne eblas almeti ŝtopilingon al la SSL-objekton: %s" -#: logsrvd/tls_client.c:233 +#: logsrvd/tls_client.c:238 msgid "unable to initialize TLS context" msgstr "ne eblas ekigi TLS-kuntekston" -#: logsrvd/tls_init.c:132 logsrvd/tls_init.c:140 +#: logsrvd/tls_init.c:138 logsrvd/tls_init.c:146 #, c-format msgid "unable to set TLS 1.2 ciphersuite to %s: %s" msgstr "ne agordi ĉifraron de TLS 1.2 al %s: %s" -#: logsrvd/tls_init.c:160 logsrvd/tls_init.c:168 +#: logsrvd/tls_init.c:166 logsrvd/tls_init.c:174 #, c-format msgid "unable to set TLS 1.3 ciphersuite to %s: %s" msgstr "ne agordi ĉifraron de TLS 1.3 al %s: %s" -#: logsrvd/tls_init.c:200 logsrvd/tls_init.c:221 +#: logsrvd/tls_init.c:206 logsrvd/tls_init.c:227 #, c-format msgid "unable to set diffie-hellman parameters: %s" msgstr "ne ablas agordi parametrojn de diffie-hellman: %s" -#: logsrvd/tls_init.c:277 +#: logsrvd/tls_init.c:283 #, c-format msgid "unable to create TLS context: %s" msgstr "ne eblas krei TLS-kuntekston: %s" -#: logsrvd/tls_init.c:284 +#: logsrvd/tls_init.c:290 #, c-format msgid "unable to set minimum protocol version to TLS 1.2: %s" msgstr "ne ablas elekti minimuman eldonon de TLS al 1.2: %s" -#: plugins/sudoers/audit.c:267 plugins/sudoers/audit.c:419 -#: plugins/sudoers/log_client.c:986 plugins/sudoers/log_client.c:1035 -#: plugins/sudoers/log_client.c:1084 plugins/sudoers/log_client.c:1210 -#: plugins/sudoers/logging.c:599 plugins/sudoers/logging.c:696 -#: plugins/sudoers/logging.c:800 plugins/sudoers/logging.c:989 -#: plugins/sudoers/policy.c:123 +#: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 +#: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 +#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 +#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 +#: plugins/sudoers/policy.c:124 msgid "unable to get time of day" msgstr "ne eblas akiri la tempon de la tago" @@ -1502,7 +1564,7 @@ msgstr "Konto eksvalidiĝis aŭ PAM-agordon malhavas sekcion \"account\" por sud msgid "PAM account management error: %s" msgstr "Eraro de administro de konto PAM: %s" -#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:266 +#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:271 #, c-format msgid "you do not exist in the %s database" msgstr "vi ne ekzistas en la datumbazo %s" @@ -1575,17 +1637,17 @@ msgstr "Ne eblis determini revizian kondiĉon" msgid "unable to commit audit record" msgstr "ne eblis konservi revizian rikordon" -#: plugins/sudoers/check.c:275 +#: plugins/sudoers/check.c:285 #, c-format msgid "error reading lecture file %s" msgstr "eraro dum legi prelegan dosieron %s" -#: plugins/sudoers/check.c:278 +#: plugins/sudoers/check.c:288 #, c-format msgid "ignoring lecture file %s: not a regular file" msgstr "ignoranta prelegan dosieron %s: ne regula dosiero" -#: plugins/sudoers/check.c:291 +#: plugins/sudoers/check.c:301 msgid "" "\n" "We trust you have received the usual lecture from the local System\n" @@ -1605,14 +1667,14 @@ msgstr "" " #3) Granda povo devigas grandan responson.\n" "\n" -#: plugins/sudoers/check.c:342 plugins/sudoers/check.c:352 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:901 -#: plugins/sudoers/sudoers.c:922 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 +#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 +#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "nekonata uid %u" -#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1278 +#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1279 #, c-format msgid "%s: %s\n" msgstr "%s: %s\n" @@ -1642,7 +1704,7 @@ msgstr "komenca ordo: %s: %s" msgid "order padding: %s: %s" msgstr "ŝtopado de ordo: %s: %s" -#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:182 +#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:184 #, c-format msgid "%s grammar version %d\n" msgstr "%s gramatika eldono %d\n" @@ -1662,14 +1724,14 @@ msgstr "nesubtenata elig-formo %s" msgid "%s: input and output files must be different" msgstr "%s: eliga kaj eniga dosieroj devas esti malsamaj" -#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:165 -#: plugins/sudoers/sudoers.c:217 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:275 plugins/sudoers/visudo.c:644 -#: plugins/sudoers/visudo.c:969 +#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 +#: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 +#: plugins/sudoers/visudo.c:975 msgid "unable to initialize sudoers default values" msgstr "ne eblas ekigi aŭtomatajn valorojn de sudoers" -#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:433 +#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:434 #, c-format msgid "%s: %s: %s: %s" msgstr "%s: %s: %s: %s" @@ -1694,18 +1756,18 @@ msgstr "malvalida demeto-tipo: %s" msgid "invalid filter: %s" msgstr "malvalida filtro: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:974 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 #, c-format msgid "failed to parse %s file, unknown error" msgstr "malsukcesis analizi dosieron %s, nekonata eraro" #: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 -#: plugins/sudoers/timestamp.c:317 plugins/sudoers/timestamp.c:320 +#: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" msgstr "ne eblas skribi al %s" -#: plugins/sudoers/cvtsudoers.c:1501 +#: plugins/sudoers/cvtsudoers.c:1506 #, c-format msgid "" "%s - convert between sudoers file formats\n" @@ -1714,7 +1776,7 @@ msgstr "" "%s - konverti inter dosierformoj de sudoers\n" "\n" -#: plugins/sudoers/cvtsudoers.c:1503 +#: plugins/sudoers/cvtsudoers.c:1508 msgid "" "\n" "Options:\n" @@ -1871,7 +1933,7 @@ msgstr "Sendi retmesaĝon se la uzanto ne estas en sudoers" #: plugins/sudoers/def_data.c:88 msgid "Send mail if the user is not in sudoers for this host" -msgstr "Sendi retmesaĝon se la uzanto ne estas en sudors por la gastiganto" +msgstr "Sendi retmesaĝon se la uzanto ne estas en sudoers por la gastiganto" #: plugins/sudoers/def_data.c:92 msgid "Send mail if the user is not allowed to run a command" @@ -2160,366 +2222,390 @@ msgstr "Uzi pli rapida kunigo, kiu estas malpli ĝusta sed ne atingas la dosiers #: plugins/sudoers/def_data.c:348 msgid "The umask specified in sudoers will override the user's, even if it is more permissive" -msgstr "La umask specifa en sudors superregos tio de la uzanto, eĉ se ĝi estas pli permesema" +msgstr "La umask specifa en sudoers superregos tio de la uzanto, eĉ se ĝi estas pli permesema" #: plugins/sudoers/def_data.c:352 msgid "Log user's input for the command being run" -msgstr "Protokoli enmeton de uzanto por la komando, kiun si plenumigas" +msgstr "Protokoli enmeton de uzanto por la komando plenumigata" #: plugins/sudoers/def_data.c:356 +msgid "Log the command's standard input if not connected to a terminal" +msgstr "Protokoli la ĉefenigujon de komando se ne konektiĝinta al terminalo" + +#: plugins/sudoers/def_data.c:360 +msgid "Log the user's terminal input for the command being run" +msgstr "Protokoli la terminalo-enmeton de uzanto por la komando plenumigata" + +#: plugins/sudoers/def_data.c:364 msgid "Log the output of the command being run" msgstr "Protokoli la eligon de la komando, kiu estas plenumiĝi" -#: plugins/sudoers/def_data.c:360 +#: plugins/sudoers/def_data.c:368 +msgid "Log the command's standard output if not connected to a terminal" +msgstr "Protokoli la ĉefeligujon de komandon se ne konektiĝinta al terminalo" + +#: plugins/sudoers/def_data.c:372 +msgid "Log the command's standard error if not connected to a terminal" +msgstr "Protokoli la ĉeferarujon de komandon se ne konektiĝinta al terminalo" + +#: plugins/sudoers/def_data.c:376 +msgid "Log the terminal output of the command being run" +msgstr "Protokoli la terminalo-eligon de la komando plenumigata" + +#: plugins/sudoers/def_data.c:380 msgid "Compress I/O logs using zlib" msgstr "Kunpremi eneligaj protokoloj per zlib" -#: plugins/sudoers/def_data.c:364 +#: plugins/sudoers/def_data.c:384 msgid "Always run commands in a pseudo-tty" msgstr "Ĉiam protokoli komandojn en pseŭda tty" -#: plugins/sudoers/def_data.c:368 +#: plugins/sudoers/def_data.c:388 #, c-format msgid "Plugin for non-Unix group support: %s" msgstr "Kromprogramo por kompreno de ne-uniksaj grupoj: %s" -#: plugins/sudoers/def_data.c:372 +#: plugins/sudoers/def_data.c:392 #, c-format msgid "Directory in which to store input/output logs: %s" msgstr "Dosierujo en kiu konservi eneligaj protokoloj: %s" -#: plugins/sudoers/def_data.c:376 +#: plugins/sudoers/def_data.c:396 #, c-format msgid "File in which to store the input/output log: %s" msgstr "Dosiero en kiu konservi la eneliga protokolo: %s" -#: plugins/sudoers/def_data.c:380 +#: plugins/sudoers/def_data.c:400 msgid "Add an entry to the utmp/utmpx file when allocating a pty" msgstr "Aldoni eron al la utmp/utmpx-dosiero dum generi pty-on" -#: plugins/sudoers/def_data.c:384 +#: plugins/sudoers/def_data.c:404 msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "Valorizi uzanton en utmp al la plenumigkiela uzanto, ne la vokanta uzanto" -#: plugins/sudoers/def_data.c:388 +#: plugins/sudoers/def_data.c:408 #, c-format msgid "Set of permitted privileges: %s" msgstr "Aro da permesitaj privilegioj: %s" -#: plugins/sudoers/def_data.c:392 +#: plugins/sudoers/def_data.c:412 #, c-format msgid "Set of limit privileges: %s" msgstr "Aro da limigaj privilegioj: %s" -#: plugins/sudoers/def_data.c:396 +#: plugins/sudoers/def_data.c:416 msgid "Run commands on a pty in the background" msgstr "Plenumigi komandojn en pty en la fono" -#: plugins/sudoers/def_data.c:400 +#: plugins/sudoers/def_data.c:420 #, c-format msgid "PAM service name to use: %s" msgstr "PAM-servonomo uzota: %s" -#: plugins/sudoers/def_data.c:404 +#: plugins/sudoers/def_data.c:424 #, c-format msgid "PAM service name to use for login shells: %s" msgstr "PAM-servonomo uzota por ensalutaj ŝeloj: %s" -#: plugins/sudoers/def_data.c:408 +#: plugins/sudoers/def_data.c:428 #, c-format msgid "PAM service name to use when sudo is run with the -A option: %s" msgstr "PAM-servonomo uzota kiam sudo estas plenumigota ken la elektebleco -A: %s" -#: plugins/sudoers/def_data.c:412 +#: plugins/sudoers/def_data.c:432 msgid "Attempt to establish PAM credentials for the target user" msgstr "Ne eblas establi PAM-atestilojn por la cela uzanto" -#: plugins/sudoers/def_data.c:416 +#: plugins/sudoers/def_data.c:436 msgid "Create a new PAM session for the command to run in" msgstr "Krei novan PAM-seancon en kiu la komando plenumiĝos" -#: plugins/sudoers/def_data.c:420 +#: plugins/sudoers/def_data.c:440 msgid "Perform PAM account validation management" msgstr "Administradi validigon de konto PAM" -#: plugins/sudoers/def_data.c:424 +#: plugins/sudoers/def_data.c:444 #, c-format msgid "Maximum I/O log sequence number: %s" msgstr "Maksimuma sinsekva numero de la eneliga protokolo: %s" -#: plugins/sudoers/def_data.c:428 +#: plugins/sudoers/def_data.c:448 msgid "Enable sudoers netgroup support" msgstr "Aktivigi retgrupan regon de sudoers" -#: plugins/sudoers/def_data.c:432 +#: plugins/sudoers/def_data.c:452 msgid "Check parent directories for writability when editing files with sudoedit" msgstr "Kontroli gepatrajn dosierujojn pri skribeblo dum redakto de dosieroj per sudoedit" -#: plugins/sudoers/def_data.c:436 +#: plugins/sudoers/def_data.c:456 msgid "Follow symbolic links when editing files with sudoedit" msgstr "Sekvi simbolajn ligojn dum redakto de dosieroj per sudoedit" -#: plugins/sudoers/def_data.c:440 +#: plugins/sudoers/def_data.c:460 msgid "Query the group plugin for unknown system groups" msgstr "Informo-mendi la grupan kromprogramon por nekonataj sistem-grupoj" -#: plugins/sudoers/def_data.c:444 +#: plugins/sudoers/def_data.c:464 msgid "Match netgroups based on the entire tuple: user, host and domain" msgstr "Kongrui retgrupoj surbaze de entuta n-opo: uzanto, gastiganto kaj domajno" -#: plugins/sudoers/def_data.c:448 +#: plugins/sudoers/def_data.c:468 msgid "Allow commands to be run even if sudo cannot write to the audit log" msgstr "Permesi ke komandoj estu plenumataj eĉ se sudo ne povas skribi al la ekzamena protokolo" -#: plugins/sudoers/def_data.c:452 +#: plugins/sudoers/def_data.c:472 msgid "Allow commands to be run even if sudo cannot write to the I/O log" msgstr "Permesi ke komandoj estu plenumataj eĉ se sudo ne povas skribi al la eneliga protokolo" -#: plugins/sudoers/def_data.c:456 +#: plugins/sudoers/def_data.c:476 msgid "Allow commands to be run even if sudo cannot write to the log file" msgstr "Permesi ke komandoj estu plenumataj eĉ se sudo ne povas skribi al la protokola dosiero" -#: plugins/sudoers/def_data.c:460 +#: plugins/sudoers/def_data.c:480 msgid "Resolve groups in sudoers and match on the group ID, not the name" msgstr "Solvi grupojn en sudoers kaj kongrui al la grupa ID, ne la nomo" -#: plugins/sudoers/def_data.c:464 +#: plugins/sudoers/def_data.c:484 #, c-format msgid "Log entries larger than this value will be split into multiple syslog messages: %u" msgstr "Protokoleroj pli grandaj ol tiu ĉi valoro estos dividitaj en multoblajn mesaĝojn en syslog: %u" -#: plugins/sudoers/def_data.c:468 +#: plugins/sudoers/def_data.c:488 #, c-format msgid "User that will own the I/O log files: %s" msgstr "Uzanto kiu posedos la eneligajn protokol-dosierojn: %s" -#: plugins/sudoers/def_data.c:472 +#: plugins/sudoers/def_data.c:492 #, c-format msgid "Group that will own the I/O log files: %s" msgstr "Grupo kiu posedos la eneligajn protokol-dosierojn: %s" -#: plugins/sudoers/def_data.c:476 +#: plugins/sudoers/def_data.c:496 #, c-format msgid "File mode to use for the I/O log files: 0%o" msgstr "Dosier-reĝimo uzota por la eneligaj protokol-dosieroj: 0%o" -#: plugins/sudoers/def_data.c:480 +#: plugins/sudoers/def_data.c:500 #, c-format msgid "Execute commands by file descriptor instead of by path: %s" msgstr "Plenumigi komandojn laŭ dosiernumero anstataŭ laŭ vojo: %s" -#: plugins/sudoers/def_data.c:484 +#: plugins/sudoers/def_data.c:504 msgid "Ignore unknown Defaults entries in sudoers instead of producing a warning" msgstr "Ignori nekonatajn erojn Defaults en sudoers anstataŭ prezenti averton" -#: plugins/sudoers/def_data.c:488 +#: plugins/sudoers/def_data.c:508 #, c-format msgid "Time in seconds after which the command will be terminated: %u" msgstr "Tempo laŭ sekundoj pust kiu la komando finiĝos: %u" -#: plugins/sudoers/def_data.c:492 +#: plugins/sudoers/def_data.c:512 msgid "Allow the user to specify a timeout on the command line" msgstr "Permesi al la uzanto specifi eksvalidiĝon per la komandlinio" -#: plugins/sudoers/def_data.c:496 +#: plugins/sudoers/def_data.c:516 msgid "Flush I/O log data to disk immediately instead of buffering it" msgstr "Tuj elbufrigi eneligo-protokolajn datumojn en diskon anstataŭ enbufrigi ĝin" -#: plugins/sudoers/def_data.c:500 +#: plugins/sudoers/def_data.c:520 msgid "Include the process ID when logging via syslog" msgstr "Inkluzivigi la procezan identigilon dum protokoli per syslog" -#: plugins/sudoers/def_data.c:504 +#: plugins/sudoers/def_data.c:524 #, c-format msgid "Type of authentication timestamp record: %s" msgstr "Tipo de tempindika rikordo por aŭtentikigo: %s" -#: plugins/sudoers/def_data.c:508 +#: plugins/sudoers/def_data.c:528 #, c-format msgid "Authentication failure message: %s" msgstr "Mesaĝo pri malsukceso dum aŭtentikigo: %s" -#: plugins/sudoers/def_data.c:512 +#: plugins/sudoers/def_data.c:532 msgid "Ignore case when matching user names" msgstr "Preteratenti usklecon dum kongruo al uzantnomoj" -#: plugins/sudoers/def_data.c:516 +#: plugins/sudoers/def_data.c:536 msgid "Ignore case when matching group names" msgstr "Preteratenti usklecon dum kongruo al grupnomoj" -#: plugins/sudoers/def_data.c:520 +#: plugins/sudoers/def_data.c:540 msgid "Log when a command is allowed by sudoers" msgstr "Protokoli kiam komando estas permesata de sudoers" -#: plugins/sudoers/def_data.c:524 +#: plugins/sudoers/def_data.c:544 msgid "Log when a command is denied by sudoers" msgstr "Protokoli kiam komando estas malpermesata de sudoers" -#: plugins/sudoers/def_data.c:528 +#: plugins/sudoers/def_data.c:548 msgid "Sudo log server(s) to connect to with optional port" msgstr "Sudo: protokoli servilo(j)n al kiuj konektiĝi kun libervola pordo" -#: plugins/sudoers/def_data.c:532 +#: plugins/sudoers/def_data.c:552 #, c-format msgid "Sudo log server timeout in seconds: %u" msgstr "Sudo: protokoli servilan eksvalidiĝon laŭ sekundoj: %u" -#: plugins/sudoers/def_data.c:536 +#: plugins/sudoers/def_data.c:556 msgid "Enable SO_KEEPALIVE socket option on the socket connected to the logserver" msgstr "Ebligi ŝtopilingan elekton SO_KEEPALIVE por la ŝtopilingo konektita al la protokolservilo" -#: plugins/sudoers/def_data.c:540 +#: plugins/sudoers/def_data.c:560 #, c-format msgid "Path to the audit server's CA bundle file: %s" msgstr "Vojo al atestilara dosiero de la kontrola servilo: %s" -#: plugins/sudoers/def_data.c:544 +#: plugins/sudoers/def_data.c:564 #, c-format msgid "Path to the sudoers certificate file: %s" msgstr "Vojo al atestila dosiero de sudoers: %s" -#: plugins/sudoers/def_data.c:548 +#: plugins/sudoers/def_data.c:568 #, c-format msgid "Path to the sudoers private key file: %s" msgstr "Vojo al la privatŝlosila dosiero de sudoers: %s" -#: plugins/sudoers/def_data.c:552 +#: plugins/sudoers/def_data.c:572 msgid "Verify that the log server's certificate is valid" msgstr "Konstati ke la atestilo de la protokolo-servilo validas" -#: plugins/sudoers/def_data.c:556 +#: plugins/sudoers/def_data.c:576 msgid "Allow the use of unknown runas user and/or group ID" msgstr "Permesi la uzon de nekonata plenumkiel-uzanto kajaŭ grupa identigilo" -#: plugins/sudoers/def_data.c:560 +#: plugins/sudoers/def_data.c:580 msgid "Only permit running commands as a user with a valid shell" msgstr "Permesi nur plenumigi komandojn kiel uzanto kun valida ŝelo" -#: plugins/sudoers/def_data.c:564 +#: plugins/sudoers/def_data.c:584 msgid "Set the pam remote user to the user running sudo" msgstr "Agordi la PAM-foran uzanton al la uzanto, kiu plenumigas je sudo" -#: plugins/sudoers/def_data.c:568 +#: plugins/sudoers/def_data.c:588 msgid "Set the pam remote host to the local host name" msgstr "Agordi la PAM-foran retnodon al la loka nodnomo" -#: plugins/sudoers/def_data.c:572 +#: plugins/sudoers/def_data.c:592 #, c-format msgid "Working directory to change to before executing the command: %s" msgstr "Kuranta dosierujo ŝanĝota antaŭ ol plenumi la komandon: %s" -#: plugins/sudoers/def_data.c:576 +#: plugins/sudoers/def_data.c:596 #, c-format msgid "Root directory to change to before executing the command: %s" msgstr "Radika dosierujo ŝanĝota antaŭ ol plenumi la komandon: %s" -#: plugins/sudoers/def_data.c:580 +#: plugins/sudoers/def_data.c:600 #, c-format msgid "The format of logs to produce: %s" msgstr "La formato de protokoloj por produkti je %s" -#: plugins/sudoers/def_data.c:584 +#: plugins/sudoers/def_data.c:604 msgid "Enable SELinux RBAC support" msgstr "Aktivigu regon de SELinux-RBAC" -#: plugins/sudoers/def_data.c:588 +#: plugins/sudoers/def_data.c:608 #, c-format msgid "Path to the file that is created the first time sudo is run: %s" msgstr "Vojo al la dosiero, kiu estas kreota la unan fojon, kiam sudo estas plenumiĝinta: %s" -#: plugins/sudoers/def_data.c:592 +#: plugins/sudoers/def_data.c:612 msgid "Intercept further commands and apply sudoers restrictions to them" msgstr "Interkapti pluajn komandojn kaj apliki al ili limigojn el sudoers" -#: plugins/sudoers/def_data.c:596 +#: plugins/sudoers/def_data.c:616 msgid "Log sub-commands run by the original command" msgstr "Protokoli subkomandojn plenumigitajn de la origina komando" -#: plugins/sudoers/def_data.c:600 +#: plugins/sudoers/def_data.c:620 msgid "Log the exit status of commands" msgstr "Protokoli la eligon de komandoj" -#: plugins/sudoers/def_data.c:604 +#: plugins/sudoers/def_data.c:624 msgid "Subsequent commands in an intercepted session must be authenticated" msgstr "Sinsekvaj komandoj en interkaptita seanco devas esti aŭtentigita" -#: plugins/sudoers/def_data.c:608 +#: plugins/sudoers/def_data.c:628 msgid "Allow an intercepted command to run set setuid or setgid programs" msgstr "Permesi al interkaptita komando plenumi iujn setuid- aŭ setgid-programojn" -#: plugins/sudoers/def_data.c:612 +#: plugins/sudoers/def_data.c:632 #, c-format msgid "The maximum size to which the process's address space may grow (in bytes): %s" msgstr "La maksimuma grando ĝis kiu la adresspaco de la procezo rajtas kreski (laŭ bajtoj): %s" -#: plugins/sudoers/def_data.c:616 +#: plugins/sudoers/def_data.c:636 #, c-format msgid "The largest size core dump file that may be created (in bytes): %s" msgstr "La plej granda ŝuto-dosiero, kiu rajtas kreiĝi (laŭ bajtoj): %s" -#: plugins/sudoers/def_data.c:620 +#: plugins/sudoers/def_data.c:640 #, c-format msgid "The maximum amount of CPU time that the process may use (in seconds): %s" msgstr "La maksimumo da ĉefprocezora tempo, kiun procezo rajtas uzi (laŭ sekundoj): %s" -#: plugins/sudoers/def_data.c:624 +#: plugins/sudoers/def_data.c:644 #, c-format msgid "The maximum size of the data segment for the process (in bytes): %s" msgstr "La maksimuma grando de la datuma segmento por la procezo (laŭ bajtoj): %s" -#: plugins/sudoers/def_data.c:628 +#: plugins/sudoers/def_data.c:648 #, c-format msgid "The largest size file that the process may create (in bytes): %s" msgstr "La plaj granda dosiero, kiun procezo rajtas krei (laŭ bajtoj): %s" -#: plugins/sudoers/def_data.c:632 +#: plugins/sudoers/def_data.c:652 #, c-format msgid "The maximum number of locks that the process may establish: %s" msgstr "La maksimuma nombro da fiksiloj, kiujn la procezo rajtas krei: %s" -#: plugins/sudoers/def_data.c:636 +#: plugins/sudoers/def_data.c:656 #, c-format msgid "The maximum size that the process may lock in memory (in bytes): %s" msgstr "La maksumima grando, kiun la procezo rajtas fiksi en memoron (laŭ bajtoj): %s" -#: plugins/sudoers/def_data.c:640 +#: plugins/sudoers/def_data.c:660 #, c-format msgid "The maximum number of files that the process may have open: %s" msgstr "La maksimuma nombro da dosieroj, kiujn la procezo rajtas teni malfermajn: %s" -#: plugins/sudoers/def_data.c:644 +#: plugins/sudoers/def_data.c:664 #, c-format msgid "The maximum number of processes that the user may run simultaneously: %s" msgstr "La maksimuma nombro da procezoj, kiujn la uzanta rajtas samtempe plenumigi: %s" -#: plugins/sudoers/def_data.c:648 +#: plugins/sudoers/def_data.c:668 #, c-format msgid "The maximum size to which the process's resident set size may grow (in bytes): %s" msgstr "La maksimuma grando ĝis kiu la loĝa aro de la procezo rajtas kreski (laŭ bajtoj): %s" -#: plugins/sudoers/def_data.c:652 +#: plugins/sudoers/def_data.c:672 #, c-format msgid "The maximum size to which the process's stack may grow (in bytes): %s" msgstr "La maksimuma grando ĝis kiu la staplo de la procezo rajtas kreski (laŭ bajtoj): %s" -#: plugins/sudoers/def_data.c:656 +#: plugins/sudoers/def_data.c:676 msgid "Attempt authentication even when in non-interactive mode" msgstr "Provi aŭtentigo eĉ kiam en neinteraga reĝimo" -#: plugins/sudoers/def_data.c:660 +#: plugins/sudoers/def_data.c:680 msgid "Store plaintext passwords in I/O log input" msgstr "Konservi plattekstajn pasvortojn en eneliga protokolo" -#: plugins/sudoers/def_data.c:664 +#: plugins/sudoers/def_data.c:684 msgid "List of regular expressions to use when matching a password prompt" msgstr "Listo da regulesprimo uzota kiam kongruanta kun pasvorta invitilo" -#: plugins/sudoers/def_data.c:668 +#: plugins/sudoers/def_data.c:688 #, c-format msgid "The mechanism used by the intercept and log_subcmds options: %s" msgstr "La meĥanismo uzata de la intercept- kaj log_subcmd-elektoj: %s" -#: plugins/sudoers/def_data.c:672 +#: plugins/sudoers/def_data.c:692 +msgid "Attempt to verify the command and arguments after execution" +msgstr "Provi aŭtentigi la komandon kaj parametrojn post plenumiĝo" + +#: plugins/sudoers/def_data.c:696 #, c-format msgid "AppArmor profile to use in the new security context: %s" msgstr "AppArmor-profile uzota en la nova sekureca kunteksto: %s" @@ -2554,31 +2640,31 @@ msgstr "malvalida Defaults-tipo 0x%x por parametro \"%s\"" msgid "value \"%s\" is invalid for option \"%s\"" msgstr "valoro \"%s\" estas malvalida por parametro \"%s\"" -#: plugins/sudoers/defaults.c:1127 plugins/sudoers/policy.c:207 -#: plugins/sudoers/policy.c:216 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 +#: plugins/sudoers/policy.c:217 #, c-format msgid "path name for \"%s\" too long" msgstr "vojnomo por \"%s\" tro longas" -#: plugins/sudoers/defaults.c:1133 +#: plugins/sudoers/defaults.c:1134 #, c-format msgid "values for \"%s\" must start with a '/', '~', or '*'" msgstr "valoroj por \"%s\" devas komenciĝi per '/', '~' aŭ '*'" -#: plugins/sudoers/defaults.c:1140 +#: plugins/sudoers/defaults.c:1141 #, c-format msgid "values for \"%s\" must start with a '/'" msgstr "valoroj por \"%s\" devas komenciĝi per '/'" -#: plugins/sudoers/env.c:412 +#: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: medio tro granda" -#: plugins/sudoers/env.c:1095 +#: plugins/sudoers/env.c:1109 msgid "unable to rebuild the environment" msgstr "ne eblas rekonstrui la medion" -#: plugins/sudoers/env.c:1169 +#: plugins/sudoers/env.c:1183 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "bedaŭre vi ne estas permesata valorizi la jenajn medivariablojn: %s" @@ -2593,27 +2679,27 @@ msgstr "nekonata resuma tipo %d por %s" msgid "%s: read error" msgstr "%s: lega eraro" -#: plugins/sudoers/group_plugin.c:83 +#: plugins/sudoers/group_plugin.c:169 #, c-format msgid "%s must be owned by uid %d" msgstr "%s devas esti estrata de uid %d" -#: plugins/sudoers/group_plugin.c:87 +#: plugins/sudoers/group_plugin.c:173 #, c-format msgid "%s must only be writable by owner" msgstr "%s devas esti skribebla nur de estro" -#: plugins/sudoers/group_plugin.c:96 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "ne eblas ŝarĝi je %s: %s" -#: plugins/sudoers/group_plugin.c:102 +#: plugins/sudoers/group_plugin.c:197 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "ne eblas trovi simbolon \"group_plugin\" en %s" -#: plugins/sudoers/group_plugin.c:107 +#: plugins/sudoers/group_plugin.c:202 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: nekongrua grupa kromprogramo: ĉefa eldono %d, atendita %d" @@ -2636,10 +2722,10 @@ msgstr "Loka IP-adresa kaj retmaska paroj:\n" msgid "unable to update sequence file" msgstr "ne eblas ĝisdatigi sinsekvan dosieron" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 -#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 -#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 -#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 +#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 +#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 +#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 #, c-format msgid "unable to write to I/O log file: %s" msgstr "ne eblas skribi al eneliga protokoldosiero: %s" @@ -2649,25 +2735,25 @@ msgstr "ne eblas skribi al eneliga protokoldosiero: %s" msgid "unable to create %s/%s" msgstr "ne eblas krei: %s/%s" -#: plugins/sudoers/iolog.c:955 +#: plugins/sudoers/iolog.c:957 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: interna eraro, protokola dosiero de en/eligo por evento %d ne estas malferma" -#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 -#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:849 -#: plugins/sudoers/timestamp.c:941 plugins/sudoers/visudo.c:546 -#: plugins/sudoers/visudo.c:552 +#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 +#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 +#: plugins/sudoers/visudo.c:558 msgid "unable to read the clock" msgstr "ne eblas legi la horloĝon" -#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1228 -#: plugins/sudoers/log_client.c:1238 plugins/sudoers/log_client.c:1242 +#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 +#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: interna eraro, malvalida signalo %d" -#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:291 +#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:292 msgid "starttls not supported when using ldaps" msgstr "starttls ne estas regata dum uzo de ldaps" @@ -2690,7 +2776,7 @@ msgstr "ne eblas ekigi LDAP-on: %s" msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls specifita sed LDAP-bibliotekoj ne havas la funkciojn ldap_start_tls_s() kaj ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:747 +#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "malvalida atributo de sudoOrder: %s" @@ -2700,12 +2786,12 @@ msgstr "malvalida atributo de sudoOrder: %s" msgid "%s: port too large" msgstr "%s: pordo tro grandas" -#: plugins/sudoers/ldap_conf.c:260 +#: plugins/sudoers/ldap_conf.c:261 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "nekonata retadresa tipo de LDAP: %s" -#: plugins/sudoers/ldap_conf.c:287 +#: plugins/sudoers/ldap_conf.c:288 msgid "unable to mix ldap and ldaps URIs" msgstr "ne eblas miksi sekurajn kaj nesekurajn retadresojn de LDAP" @@ -2730,111 +2816,111 @@ msgstr "ne eblas malfermi revizian sistemon" msgid "unable to send audit message" msgstr "ne eblas sendi revizian mesaĝon" -#: plugins/sudoers/log_client.c:120 plugins/sudoers/log_client.c:407 -#: plugins/sudoers/log_client.c:1475 plugins/sudoers/log_client.c:2083 +#: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 +#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 msgid "error in event loop" msgstr "eraro en evento-iteracio" -#: plugins/sudoers/log_client.c:200 +#: plugins/sudoers/log_client.c:205 #, c-format msgid "Creation of new SSL_CTX object failed: %s" msgstr "Kreiĝo de nova objekto SSL_CTX malsukcesis: %s" -#: plugins/sudoers/log_client.c:225 +#: plugins/sudoers/log_client.c:230 #, c-format msgid "unable to load certificate authority bundle %s" msgstr "Ne eblas ŝargi aŭtoritatan atestilaron: %s" -#: plugins/sudoers/log_client.c:247 +#: plugins/sudoers/log_client.c:252 #, c-format msgid "unable to load certificate %s" msgstr "ne eblas ŝargi atestilon %s" -#: plugins/sudoers/log_client.c:261 +#: plugins/sudoers/log_client.c:266 #, c-format msgid "unable to load private key %s" msgstr "ne eblas ŝarĝi privatŝlosilon %s" -#: plugins/sudoers/log_client.c:270 +#: plugins/sudoers/log_client.c:275 #, c-format msgid "Unable to allocate ssl object: %s" msgstr "Ne eblas generi SSL-objekton: %s" -#: plugins/sudoers/log_client.c:359 plugins/sudoers/log_client.c:364 +#: plugins/sudoers/log_client.c:364 plugins/sudoers/log_client.c:369 #, c-format msgid "TLS connection to %s:%s failed: %s" msgstr "TLS-konekto al %s:%s malsukcesis: %s" -#: plugins/sudoers/log_client.c:538 +#: plugins/sudoers/log_client.c:543 msgid "TLS initialization was unsuccessful" msgstr "TLS-komenciĝo malsukcesis" -#: plugins/sudoers/log_client.c:548 +#: plugins/sudoers/log_client.c:553 msgid "TLS handshake was unsuccessful" msgstr "TLS-manpremo malsukcesis" -#: plugins/sudoers/log_client.c:1246 +#: plugins/sudoers/log_client.c:1211 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: interna eraro, malvalida finiĝo-stato %d" -#: plugins/sudoers/log_client.c:1775 plugins/sudoers/log_client.c:1799 +#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 msgid "lost connection to log server" msgstr "konekto al protokolo-servilo perdita" -#: plugins/sudoers/log_client.c:1876 +#: plugins/sudoers/log_client.c:1841 msgid "missing write buffer" msgstr "mankanta skribobufo" -#: plugins/sudoers/log_client.c:2024 +#: plugins/sudoers/log_client.c:1995 msgid "unable to connect to log server" msgstr "ne eblas konektiĝi al protokolo-servilo" -#: plugins/sudoers/logging.c:298 +#: plugins/sudoers/logging.c:290 msgid "user NOT in sudoers" msgstr "uzanto NE estas en sudoers" -#: plugins/sudoers/logging.c:300 +#: plugins/sudoers/logging.c:292 msgid "user NOT authorized on host" msgstr "uzanto NE permesata en gastiganto" -#: plugins/sudoers/logging.c:302 +#: plugins/sudoers/logging.c:294 msgid "command not allowed" msgstr "komando ne permesata" -#: plugins/sudoers/logging.c:323 +#: plugins/sudoers/logging.c:315 #, c-format msgid "%s is not in the sudoers file.\n" msgstr "%s ne estas en la dosiero sudoers.\n" -#: plugins/sudoers/logging.c:326 +#: plugins/sudoers/logging.c:318 #, c-format msgid "%s is not allowed to run sudo on %s.\n" msgstr "Uzanto %s ne rajtas plenumigi sudo-on en %s.\n" -#: plugins/sudoers/logging.c:329 +#: plugins/sudoers/logging.c:321 #, c-format msgid "Sorry, user %s may not run sudo on %s.\n" msgstr "Bedaŭre uzanto %s ne rajtas plenumigi sudo en %s.\n" -#: plugins/sudoers/logging.c:332 +#: plugins/sudoers/logging.c:324 #, c-format msgid "Sorry, user %s is not allowed to execute '%s%s%s' as %s%s%s on %s.\n" msgstr "Bedaŭre uzanto %s ne rajtas plenumigi '%s%s%s' kiel %s%s%s en %s.\n" -#: plugins/sudoers/logging.c:342 +#: plugins/sudoers/logging.c:334 msgid "This incident has been reported to the administrator.\n" msgstr "Ĉi tiu okazo raportiĝis al la administranto.\n" -#: plugins/sudoers/logging.c:373 plugins/sudoers/sudoers.c:643 -#: plugins/sudoers/sudoers.c:645 plugins/sudoers/sudoers.c:647 -#: plugins/sudoers/sudoers.c:649 plugins/sudoers/sudoers.c:799 -#: plugins/sudoers/sudoers.c:801 +#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 +#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 +#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 +#: plugins/sudoers/sudoers.c:807 #, c-format msgid "%s: command not found" msgstr "%s: komando ne trovita" -#: plugins/sudoers/logging.c:375 plugins/sudoers/sudoers.c:639 +#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2843,31 +2929,31 @@ msgstr "" "ni malatentas \"%s\" trovita en '.'\n" "Uzu \"sudo ./%s\" se tio estas la \"%s\" , kiun vi volas plenumigi." -#: plugins/sudoers/logging.c:395 +#: plugins/sudoers/logging.c:387 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" msgstr[0] "%u malĝusta pasvorta provo" msgstr[1] "%u malĝustaj pasvortaj provoj" -#: plugins/sudoers/logging.c:485 +#: plugins/sudoers/logging.c:477 msgid "authentication failure" msgstr "aŭtentiga malsukceso" -#: plugins/sudoers/logging.c:524 plugins/sudoers/logging.c:543 +#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 msgid "a password is required" msgstr "pasvorto estas bezonata" -#: plugins/sudoers/logging.c:806 plugins/sudoers/logging.c:818 +#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 msgid "problem parsing sudoers" msgstr "problemo dum analizi dosieron sudoers" -#: plugins/sudoers/logging.c:879 plugins/sudoers/logging.c:891 +#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1068 +#: plugins/sudoers/logging.c:1062 #, c-format msgid "unable to write log file: %s" msgstr "ne eblas skribi al protokolo: %s" @@ -2882,7 +2968,7 @@ msgstr "resumo por %s (%s): malbona longo %zu, atendita %zu" msgid "digest for %s (%s) is not in %s form" msgstr "resumo por %s (%s) ne estas laŭ la formo %s" -#: plugins/sudoers/parse.c:585 +#: plugins/sudoers/parse.c:591 #, c-format msgid "" "\n" @@ -2891,7 +2977,7 @@ msgstr "" "\n" "LDAP-rolo: %s\n" -#: plugins/sudoers/parse.c:588 +#: plugins/sudoers/parse.c:594 msgid "" "\n" "Sudoers entry:\n" @@ -2899,110 +2985,110 @@ msgstr "" "\n" "Ero en sudoers:\n" -#: plugins/sudoers/parse.c:590 +#: plugins/sudoers/parse.c:596 msgid " RunAsUsers: " msgstr " RunAsUsers: " -#: plugins/sudoers/parse.c:605 +#: plugins/sudoers/parse.c:611 msgid " RunAsGroups: " msgstr " RunAsGroups: " -#: plugins/sudoers/parse.c:615 +#: plugins/sudoers/parse.c:621 msgid " Options: " msgstr " Modifiloj: " -#: plugins/sudoers/parse.c:679 +#: plugins/sudoers/parse.c:685 msgid " Commands:\n" msgstr " Komandoj:\n" -#: plugins/sudoers/parse.c:870 +#: plugins/sudoers/parse.c:876 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "Kongruantaj eroj de Defaults: %s en %s:\n" -#: plugins/sudoers/parse.c:888 +#: plugins/sudoers/parse.c:894 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "Plenumigkiela komando-specifaj aŭtomataĵoj por %s:\n" -#: plugins/sudoers/parse.c:906 +#: plugins/sudoers/parse.c:912 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "Uzanto %s rajtas plenumigi la jenajn komandojn en %s:\n" -#: plugins/sudoers/parse.c:921 +#: plugins/sudoers/parse.c:927 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Uzanto %s ne rajtas plenumigi sudo-on en %s.\n" -#: plugins/sudoers/parse_ldif.c:617 +#: plugins/sudoers/parse_ldif.c:618 #, c-format msgid "ignoring incomplete sudoRole: cn: %s" msgstr "ni preteratentas malkompletan sudoRole: cn: %s" -#: plugins/sudoers/parse_ldif.c:677 +#: plugins/sudoers/parse_ldif.c:678 #, c-format msgid "invalid LDIF attribute: %s" msgstr "malvalida LDIF-atributo: %s" -#: plugins/sudoers/policy.c:80 plugins/sudoers/policy.c:111 +#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "malvalida %.*s difinita de sudo-fasado" -#: plugins/sudoers/policy.c:351 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "ne eblas trakti reto-adresan liston" -#: plugins/sudoers/policy.c:508 +#: plugins/sudoers/policy.c:526 msgid "user name not set by sudo front-end" msgstr "uzantnomo ne difinita de sudo-fasado" -#: plugins/sudoers/policy.c:512 +#: plugins/sudoers/policy.c:530 msgid "user-ID not set by sudo front-end" msgstr "uzanto-ID ne difinita de sudo-fasado" -#: plugins/sudoers/policy.c:516 +#: plugins/sudoers/policy.c:534 msgid "group-ID not set by sudo front-end" msgstr "grupo-ID ne difinita de sudo-fasado" -#: plugins/sudoers/policy.c:520 +#: plugins/sudoers/policy.c:538 msgid "host name not set by sudo front-end" msgstr "gastiganta nomo ne difinita de sudo-fasado" -#: plugins/sudoers/policy.c:706 +#: plugins/sudoers/policy.c:730 #, c-format msgid "invalid working directory: %s" msgstr "nevalida kuranta dosierujo: %s" -#: plugins/sudoers/policy.c:886 +#: plugins/sudoers/policy.c:914 #, c-format msgid "invalid chroot directory: %s" msgstr "malvalida chroot-dosierujo: %s" -#: plugins/sudoers/policy.c:1071 plugins/sudoers/visudo.c:254 -#: plugins/sudoers/visudo.c:896 +#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:902 #, c-format msgid "unable to execute %s" msgstr "ne eblas plenumigi: %s" -#: plugins/sudoers/policy.c:1141 plugins/sudoers/policy.c:1178 -#: plugins/sudoers/policy.c:1200 plugins/sudoers/policy.c:1226 +#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 +#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: nevalidaj reĝimaj flagoj el la fasado de sudo: 0x%x" -#: plugins/sudoers/policy.c:1262 +#: plugins/sudoers/policy.c:1292 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Eldono %s de la konduta kromprogramo\n" -#: plugins/sudoers/policy.c:1264 +#: plugins/sudoers/policy.c:1294 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Eldono %d de la gramatikilo de sudoers\n" -#: plugins/sudoers/policy.c:1268 +#: plugins/sudoers/policy.c:1298 #, c-format msgid "" "\n" @@ -3011,27 +3097,27 @@ msgstr "" "\n" "Vojo de sudoers: %s\n" -#: plugins/sudoers/policy.c:1271 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "nsswitch path: %s\n" msgstr "vojo de nsswitch: %s\n" -#: plugins/sudoers/policy.c:1273 +#: plugins/sudoers/policy.c:1303 #, c-format msgid "ldap.conf path: %s\n" msgstr "vojo de ldap.conf: %s\n" -#: plugins/sudoers/policy.c:1274 +#: plugins/sudoers/policy.c:1304 #, c-format msgid "ldap.secret path: %s\n" msgstr "vojo de ldap.secret: %s\n" -#: plugins/sudoers/policy.c:1307 +#: plugins/sudoers/policy.c:1337 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "ne eblas registri hokon el tipo %d (versio %d.%d)" -#: plugins/sudoers/policy.c:1325 +#: plugins/sudoers/policy.c:1355 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "ne eblas malregistri hokon el tipo %d (versio %d.%d)" @@ -3170,148 +3256,142 @@ msgstr "ne eblas ekigi SSS-fonton. Ĉu SSSD estas instalita en via maŝino?" msgid "unable to find symbol \"%s\" in %s" msgstr "ne eblas trovi simbolon \"%s\" en %s" -#: plugins/sudoers/sudoers.c:258 +#: plugins/sudoers/sudoers.c:263 #, c-format msgid "unable to get defaults from %s" msgstr "ne eblas atingi aprioraĵojn el %s" -#: plugins/sudoers/sudoers.c:265 +#: plugins/sudoers/sudoers.c:270 msgid "no valid sudoers sources found, quitting" msgstr "ne validaj fontotekstoj de sudoers trovita, ĉesiganta" -#: plugins/sudoers/sudoers.c:341 +#: plugins/sudoers/sudoers.c:346 #, c-format msgid "user not allowed to change root directory to %s" msgstr "uzanto ne rajtas ŝanĝi radikan dosierujon al %s" -#: plugins/sudoers/sudoers.c:343 +#: plugins/sudoers/sudoers.c:348 #, c-format msgid "you are not permitted to use the -R option with %s" msgstr "vi ne rajtas uzi la parametron -R kun %s" -#: plugins/sudoers/sudoers.c:368 +#: plugins/sudoers/sudoers.c:373 #, c-format msgid "user not allowed to change directory to %s" msgstr "uzanto ne rajtas ŝanĝi dosierujon al %s" -#: plugins/sudoers/sudoers.c:369 +#: plugins/sudoers/sudoers.c:374 #, c-format msgid "you are not permitted to use the -D option with %s" msgstr "vi ne rajtas uzi la parametron -D kun %s" -#: plugins/sudoers/sudoers.c:396 +#: plugins/sudoers/sudoers.c:401 msgid "no command specified" msgstr "Neniu komando donita" -#: plugins/sudoers/sudoers.c:421 +#: plugins/sudoers/sudoers.c:426 msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers specifas, ke ĉefuzanto ne rajtas sudo-i" -#: plugins/sudoers/sudoers.c:471 +#: plugins/sudoers/sudoers.c:476 msgid "user not allowed to override closefrom limit" msgstr "uzanto ne permesata superregi la limigon de closefrom" -#: plugins/sudoers/sudoers.c:472 +#: plugins/sudoers/sudoers.c:477 msgid "you are not permitted to use the -C option" msgstr "vi ne rajtas uzi la parametron -C" -#: plugins/sudoers/sudoers.c:532 +#: plugins/sudoers/sudoers.c:537 #, c-format msgid "timestamp owner (%s): No such user" msgstr "tempo-indikila posedanto (%s): Nenia uzanto" -#: plugins/sudoers/sudoers.c:547 +#: plugins/sudoers/sudoers.c:552 msgid "no tty" msgstr "neniu tty" -#: plugins/sudoers/sudoers.c:548 +#: plugins/sudoers/sudoers.c:553 msgid "sorry, you must have a tty to run sudo" msgstr "bedaŭre vi devas havi tty-on por plenumigi sudo-on" -#: plugins/sudoers/sudoers.c:555 +#: plugins/sudoers/sudoers.c:560 #, c-format msgid "invalid shell for user %s: %s" msgstr "nevalida ŝelo por uzanto %s: %s" -#: plugins/sudoers/sudoers.c:638 +#: plugins/sudoers/sudoers.c:643 msgid "command in current directory" msgstr "komando en nuna dosierujo" -#: plugins/sudoers/sudoers.c:653 +#: plugins/sudoers/sudoers.c:658 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "\"cd\" estas apriora ŝelkomando, ne eblas rekte plenumigi ĝin" -#: plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:660 msgid "the -s option may be used to run a privileged shell." msgstr "La elekton -s oni rajtas uzi por plenumigi privilegiitan ŝelon." -#: plugins/sudoers/sudoers.c:657 +#: plugins/sudoers/sudoers.c:662 msgid "the -D option may be used to run a command in a specific directory." msgstr "la elekto -D oni rajtas uzi por plenumigi komandon en specifa dosierujo." -#: plugins/sudoers/sudoers.c:666 +#: plugins/sudoers/sudoers.c:671 msgid "user not allowed to set a command timeout" msgstr "uzanto ne rajtas elekti komando-eksvalidiĝon" -#: plugins/sudoers/sudoers.c:668 +#: plugins/sudoers/sudoers.c:673 msgid "sorry, you are not allowed set a command timeout" msgstr "bedaŭre vi ne rajtas elekti komando-eksvalidiĝon" -#: plugins/sudoers/sudoers.c:676 +#: plugins/sudoers/sudoers.c:681 msgid "user not allowed to preserve the environment" msgstr "uzanto ne rajtas konservi la medion" -#: plugins/sudoers/sudoers.c:678 +#: plugins/sudoers/sudoers.c:683 msgid "sorry, you are not allowed to preserve the environment" msgstr "bedaŭre vi ne rajtas konservi la medion" -#: plugins/sudoers/sudoers.c:1053 +#: plugins/sudoers/sudoers.c:1073 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit ne devas plenumiĝi per sudo" -#: plugins/sudoers/sudoers.c:1110 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "ne eblas legi %s" -#: plugins/sudoers/sudoers.c:1135 plugins/sudoers/visudo.c:485 -#: plugins/sudoers/visudo.c:764 -#, c-format -msgid "unable to stat %s" -msgstr "ne eblas apliki stat al %s" - -#: plugins/sudoers/sudoers.c:1139 plugins/sudoers/visudo.c:1058 +#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 #, c-format msgid "%s is not a regular file" msgstr "%s ne estas normala dosiero" -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/timestamp.c:252 toke.l:1247 +#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s estas estrita de uid %u, devas esti %u" -#: plugins/sudoers/sudoers.c:1147 toke.l:1252 +#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 #, c-format msgid "%s is world writable" msgstr "%s estas skribebla de ĉiuj" -#: plugins/sudoers/sudoers.c:1151 toke.l:1255 +#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s estas estrita de gid %u, devas esti %u" -#: plugins/sudoers/sudoers.c:1184 +#: plugins/sudoers/sudoers.c:1194 #, c-format msgid "only root can use \"-c %s\"" msgstr "nur ĉefuzanto rajtas uzi \"-c %s\"" -#: plugins/sudoers/sudoers.c:1203 +#: plugins/sudoers/sudoers.c:1213 #, c-format msgid "unknown login class %s" msgstr "nekonata ensaluta klaso: %s" -#: plugins/sudoers/sudoers.c:1290 plugins/sudoers/sudoers.c:1305 +#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 #, c-format msgid "unable to resolve host %s" msgstr "ne eblas trovi gastiganton %s" @@ -3409,17 +3489,17 @@ msgstr "malvalida posta \"!\"" msgid "unknown search type %d" msgstr "nekonata serĉtipo %d" -#: plugins/sudoers/sudoreplay.c:1651 +#: plugins/sudoers/sudoreplay.c:1650 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "uzado: %s [-hnRS] [-d ujo] [-m num] [-s num] ID\n" -#: plugins/sudoers/sudoreplay.c:1654 +#: plugins/sudoers/sudoreplay.c:1652 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "uzado: %s [-h] [-d ujo] -l [serĉaĵo]\n" -#: plugins/sudoers/sudoreplay.c:1663 +#: plugins/sudoers/sudoreplay.c:1666 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3428,7 +3508,7 @@ msgstr "" "%s - refari sudo-seancajn protokolojn\n" "\n" -#: plugins/sudoers/sudoreplay.c:1665 +#: plugins/sudoers/sudoreplay.c:1668 msgid "" "\n" "Options:\n" @@ -3484,127 +3564,122 @@ msgstr "" "\n" "Komando sen egalo" -#: plugins/sudoers/timestamp.c:260 -#, c-format -msgid "%s is group writable" -msgstr "%s estas skribebla de la grupo" - -#: plugins/sudoers/timestamp.c:328 plugins/sudoers/timestamp.c:663 +#: plugins/sudoers/timestamp.c:354 plugins/sudoers/timestamp.c:693 #, c-format msgid "unable to truncate time stamp file to %lld bytes" msgstr "ne eblas mallongigi tempo-indikilan dosieron ĝis %lld bajtoj" -#: plugins/sudoers/timestamp.c:860 +#: plugins/sudoers/timestamp.c:890 msgid "ignoring time stamp from the future" msgstr "ignoranta tempo-indikilon el la estonteco" -#: plugins/sudoers/timestamp.c:883 +#: plugins/sudoers/timestamp.c:913 #, c-format msgid "time stamp too far in the future: %20.20s" msgstr "tempo-indikilo tro estonte: %20.20s" -#: plugins/sudoers/timestamp.c:1005 +#: plugins/sudoers/timestamp.c:1042 #, c-format msgid "unable to lock time stamp file %s" msgstr "ne eblas ŝlosi tempo-indikilan dosieron %s" -#: plugins/sudoers/timestamp.c:1049 plugins/sudoers/timestamp.c:1069 -#, c-format -msgid "lecture status path too long: %s/%s" -msgstr "vojo de prelega stato tro longas: %s/%s" - #: plugins/sudoers/toke_util.c:156 msgid "sudoedit should not be specified with a path" msgstr "sudoedit plej bone ne specifiĝu kun vojo" -#: plugins/sudoers/visudo.c:249 +#: plugins/sudoers/visudo.c:254 msgid "the -x option will be removed in a future release" msgstr "la elekto -x estos forigita en posta eldono" -#: plugins/sudoers/visudo.c:251 +#: plugins/sudoers/visudo.c:256 msgid "please consider using the cvtsudoers utility instead" msgstr "bonvolu konsideri uzi la utilaĵon cvtsudoers anstataŭe" -#: plugins/sudoers/visudo.c:306 plugins/sudoers/visudo.c:692 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 #, c-format msgid "press return to edit %s: " msgstr "premu enen-klavon por redakti %s-on: " -#: plugins/sudoers/visudo.c:321 +#: plugins/sudoers/visudo.c:326 #, c-format msgid "contents of edit session left in %s" msgstr "enhavo de redakto-seanco restigita en %s" -#: plugins/sudoers/visudo.c:397 +#: plugins/sudoers/visudo.c:402 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "specifita tekstoredaktilo (%s) ne ekzistas" -#: plugins/sudoers/visudo.c:399 +#: plugins/sudoers/visudo.c:404 #, c-format msgid "no editor found (editor path = %s)" msgstr "neniu tekstoredaktilo trovita (vojo = %s)" -#: plugins/sudoers/visudo.c:505 plugins/sudoers/visudo.c:513 +#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#, c-format +msgid "unable to stat %s" +msgstr "ne eblas apliki stat al %s" + +#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 msgid "write error" msgstr "skriba eraro" -#: plugins/sudoers/visudo.c:559 +#: plugins/sudoers/visudo.c:565 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "ne eblas apliki stat al provizora dosiero (%s), %s neŝanĝita" -#: plugins/sudoers/visudo.c:566 +#: plugins/sudoers/visudo.c:572 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "nul-longa provizora dosiero (%s), %s neŝanĝita" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:578 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "redaktilo (%s) malsukcesis, %s neŝanĝita" -#: plugins/sudoers/visudo.c:594 +#: plugins/sudoers/visudo.c:600 #, c-format msgid "%s unchanged" msgstr "%s neŝanĝita" -#: plugins/sudoers/visudo.c:639 +#: plugins/sudoers/visudo.c:645 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "ne eblas remalfermi provizoran dosieron (%s), %s neŝanĝita." -#: plugins/sudoers/visudo.c:652 +#: plugins/sudoers/visudo.c:658 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "ne eblas analizi provizoran dosieron (%s), nekonata eraro" -#: plugins/sudoers/visudo.c:738 plugins/sudoers/visudo.c:768 -#: plugins/sudoers/visudo.c:775 +#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 +#: plugins/sudoers/visudo.c:781 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "ne eblas ŝanĝi (uid, gid) de %s al (%u, %u)" -#: plugins/sudoers/visudo.c:803 +#: plugins/sudoers/visudo.c:809 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s kaj %s ne estas la sama dosiersistemo, uzanta mv-on por alinomi" -#: plugins/sudoers/visudo.c:814 +#: plugins/sudoers/visudo.c:820 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "komando malsukcesis: '%s %s %s', %s neŝanĝita" -#: plugins/sudoers/visudo.c:821 +#: plugins/sudoers/visudo.c:827 #, c-format msgid "error renaming %s, %s unchanged" msgstr "eraro dum alinomi %s-on; %s neŝanĝita" -#: plugins/sudoers/visudo.c:841 +#: plugins/sudoers/visudo.c:847 msgid "What now? " msgstr "Kion nun? " -#: plugins/sudoers/visudo.c:855 +#: plugins/sudoers/visudo.c:861 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3616,41 +3691,41 @@ msgstr "" " (x) eliri sen konservi ŝanĝojn al sudoers-dosiero\n" " (Q) Eliri kaj konservi ŝanĝojn al sudoers-dosiero (DANĜERA!)\n" -#: plugins/sudoers/visudo.c:901 +#: plugins/sudoers/visudo.c:907 #, c-format msgid "unable to run %s" msgstr "ne eblas plenumigi: %s" -#: plugins/sudoers/visudo.c:932 +#: plugins/sudoers/visudo.c:938 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: malĝusta estro (uid, gid) devas esti (%u, %u)\n" -#: plugins/sudoers/visudo.c:943 +#: plugins/sudoers/visudo.c:949 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: misaj permesoj, devas esti reĝimo 0%o\n" -#: plugins/sudoers/visudo.c:991 plugins/sudoers/visudo.c:998 +#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 #, c-format msgid "%s: parsed OK\n" msgstr "%s: analizita senerare\n" -#: plugins/sudoers/visudo.c:1017 +#: plugins/sudoers/visudo.c:1023 #, c-format msgid "%s busy, try again later" msgstr "%s okupata, reprovu pli malfrue" -#: plugins/sudoers/visudo.c:1021 +#: plugins/sudoers/visudo.c:1027 msgid "Edit anyway? [y/N]" msgstr "Ĉu redakti ja? [y/N]" -#: plugins/sudoers/visudo.c:1117 +#: plugins/sudoers/visudo.c:1128 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "Averto: %s:%d:%d: neuzata %s \"%s\"" -#: plugins/sudoers/visudo.c:1229 +#: plugins/sudoers/visudo.c:1240 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3659,13 +3734,14 @@ msgstr "" "%s - sekure redakti la dosieron sudoers\n" "\n" -#: plugins/sudoers/visudo.c:1231 +#: plugins/sudoers/visudo.c:1242 msgid "" "\n" "Options:\n" " -c, --check check-only mode\n" " -f, --file=sudoers specify sudoers file location\n" " -h, --help display help message and exit\n" +" -I, --no-includes do not edit include files\n" " -q, --quiet less verbose (quiet) syntax error messages\n" " -s, --strict strict syntax checking\n" " -V, --version display version information and exit\n" @@ -3675,6 +3751,7 @@ msgstr "" " -c, --check nur kontroli\n" " -f, --file=sudoers indiki lokon de la dosiero sudoers\n" " -h, --help montri helpan mesaĝon kaj eliri\n" +" -I, --no-includes ne redakti inkluzivitajn dosierojn\n" " -q, --quiet pli silenta (quiet) pri sintaksaj eraroj\n" " -s, --strict severa kontrolado de sintakso\n" " -V, --version montri eldonon kaj eliri\n" diff --git a/plugins/sudoers/po/fr.mo b/plugins/sudoers/po/fr.mo index 1c345360a7..47f634a78f 100644 Binary files a/plugins/sudoers/po/fr.mo and b/plugins/sudoers/po/fr.mo differ diff --git a/plugins/sudoers/po/fr.po b/plugins/sudoers/po/fr.po index d6e29d0909..abe98255e1 100644 --- a/plugins/sudoers/po/fr.po +++ b/plugins/sudoers/po/fr.po @@ -2,13 +2,13 @@ # This file is distributed under the same license as the sudo package. # # Frédéric Hantrais , 2014, 2015, 2016. -# Frédéric Marchal , 2022 +# Frédéric Marchal , 2023 msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.12b2\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-10 09:13-0600\n" -"PO-Revision-Date: 2022-10-12 14:05+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 12:21+0100\n" "Last-Translator: Frédéric Marchal \n" "Language-Team: French \n" "Language: fr\n" @@ -18,7 +18,7 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n >= 2);\n" -#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "erreur de syntaxe" @@ -49,73 +49,72 @@ msgstr "Désolé, essayez de nouveau." #: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 #: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 #: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 -#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 -#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 -#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 -#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 -#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 -#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 -#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 -#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 -#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 -#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 -#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 -#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 -#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 -#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 -#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 -#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 -#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 -#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 -#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 -#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 -#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 -#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 -#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 -#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 -#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 -#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 -#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 -#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 -#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 -#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 -#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 -#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 -#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 -#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 -#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 -#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 -#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 -#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 -#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 -#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 -#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 -#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 -#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 -#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 -#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:52 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 +#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 +#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 +#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 +#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 +#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 +#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 +#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 +#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 +#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 +#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 +#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 +#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -126,67 +125,67 @@ msgstr "Désolé, essayez de nouveau." #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 -#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 -#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 -#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 -#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 -#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 -#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 -#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 -#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 -#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 -#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 -#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 -#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 -#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 -#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 -#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 #: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 #: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 @@ -195,8 +194,8 @@ msgstr "Désolé, essayez de nouveau." #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 #: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 -#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 -#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "impossible d'allouer la mémoire" @@ -233,15 +232,15 @@ msgstr "valeur « notbefore » (pas avant) invalide" msgid "invalid notafter value" msgstr "valeur « notafter » (pas après) invalide" -#: gram.y:844 plugins/sudoers/policy.c:383 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "valeur trop grande pour le délai d'expiration" -#: gram.y:846 plugins/sudoers/policy.c:385 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "valeur invalide pour le délai d'expiration" -#: gram.y:967 plugins/sudoers/sudoers.c:1033 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "commande trop longue" @@ -256,76 +255,75 @@ msgstr "%s:%d:%d: %s\n" msgid "Alias \"%s\" already defined" msgstr "L'alias « %s » est déjà défini" -#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 -#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 -#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 -#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 -#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 -#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 -#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 -#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 -#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 -#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 -#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 -#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 -#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 -#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 -#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 -#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 -#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 -#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 -#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 -#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 -#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 -#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 -#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 -#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 -#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 -#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 -#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 -#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 -#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 -#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 -#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 -#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -338,80 +336,80 @@ msgstr "L'alias « %s » est déjà défini" #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 -#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 -#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 -#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 -#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 -#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 -#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 -#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 -#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 -#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 -#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 -#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 -#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 -#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 -#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 -#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 -#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 -#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 #: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 #: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 @@ -420,68 +418,48 @@ msgstr "L'alias « %s » est déjà défini" #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 #: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 #: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 -#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 -#: toke.l:1155 toke.l:1218 toke.l:1226 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s : %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 -#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 -#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 -#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "erreur interne, dépassement de %s" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "duplication (dup) de stdin impossible : %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "exécution de %s impossible : %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "création du processus fils impossible" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "création du processus fils impossible : %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "ouverture du tube impossible : %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (suite de la commande) %s" #: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "expression régulière « %s » invalide : %s" @@ -499,64 +477,64 @@ msgstr "JSON_ARRAY trop grand" msgid "missing double quote in name" msgstr "guillemet manquante dans le nom" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "JSON_OBJECT manquant" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "JSON_OBJECT attendu, %d obtenu" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "pile json épuisée (max %u trames)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "les objets doivent être des paires nom:valeur" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "séparateur manquant entre les valeurs" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "accolade fermante non appariée" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "tableau attendu" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "crochet fermant non apparié" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "chaîne inattendue" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "deux points manquants après le nom" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "booléen inattendu" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "nul inattendu" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "nombre inattendu" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "erreur d'analyse grammaticale" @@ -595,14 +573,14 @@ msgstr "%s: il manque le champ précisant le groupe effectif (runas)" msgid "%s exists but is not a directory (0%o)" msgstr "%s existe mais n'est pas un répertoire (0%o)" -#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 #: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "création du répertoire (mkdir) %s impossible" -#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 -#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "impossible de changer le mode de %s pour lui affecter 0%o" @@ -634,8 +612,8 @@ msgstr "%s : erreur de protocole : mauvais type pour %s" msgid "%s: protocol error: NULL value found in %s" msgstr "%s : erreur de protocole : valeur NULL trouvée dans %s" -#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 -#: plugins/sudoers/policy.c:591 +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 msgid "unable to generate UUID" msgstr "impossible de générer le UUID" @@ -687,27 +665,27 @@ msgstr "erreur lors de la vidange du iofd %d : %s" msgid "invalid I/O log %s: %s referenced but not present" msgstr "journal E/S %s invalide : il est fait référence à %s alors qu'il n'est pas présent" -#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s : impossible de trouver le point de redémarrage [%lld, %ld]" -#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 #: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 #: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 #: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 #: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 -#: plugins/sudoers/visudo.c:971 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "ouverture de %s impossible" #: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 -#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "ouverture de %si/%s impossible" @@ -717,7 +695,7 @@ msgstr "ouverture de %si/%s impossible" msgid "unable to copy %s/%s to %s/%s: %s" msgstr "impossible de copier %s/%s vers %s/%s : %s" -#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "impossible de renommer %s en %s" @@ -750,28 +728,28 @@ msgstr "message serveur trop grand : %zu" #: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 #: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 #: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 -#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 #: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 #: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 #: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 #: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 #: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 #: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 -#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 -#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 #: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 #: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 #: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 -#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 -#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 -#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 -#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 -#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "impossible d'ajouter l'événement à la queue" @@ -831,14 +809,14 @@ msgstr "ChangeWindowSize invalide" msgid "invalid CommandSuspend" msgstr "CommandSuspend invalide" -#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 #: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 -#: plugins/sudoers/log_client.c:1583 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "impossible de décompresser %s avec une taille de %zu" -#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 #: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" @@ -874,8 +852,8 @@ msgstr "Fin de fichier reçu de %s sans suivre la procédure d'arrêt TLS" msgid "client message too large: %zu" msgstr "message client trop grand : %zu" -#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 -#: logsrvd/logsrvd_journal.c:257 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "message client trop grand" @@ -940,23 +918,23 @@ msgid "invalid random drop value: %s" msgstr "valeur d'abandon aléatoire invalide : %s" #: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 #: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s version %s\n" -#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 -#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "utilisateur %s inconnu" #: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" @@ -1030,7 +1008,7 @@ msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] clé illégale : %s" #: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1029 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "ouverture du fichier de journalisation %s impossible" @@ -1043,49 +1021,49 @@ msgstr "impossible d'initialiser le contexte TLS du serveur : %s" msgid "unable to initialize relay TLS context" msgstr "impossible d'initialiser le contexte TLS du relai : %s" -#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 -#: logsrvd/logsrvd_journal.c:426 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "impossible de créer le fichier de journalisation" -#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 -#: plugins/sudoers/visudo.c:1026 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "impossible de verrouiller %s" -#: logsrvd/logsrvd_journal.c:153 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "verrouillage du fichier de journalisation impossible : %s" -#: logsrvd/logsrvd_journal.c:161 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "impossible d'ouvrir le fichier de journalisation" -#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 -#: logsrvd/logsrvd_journal.c:462 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "impossible d'écrire le fichier de journalisation" -#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "impossible de renommer le fichier de journalisation" -#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 -#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "fin de fichier inattendue en lisant le fichier de journalisation" -#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 -#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "erreur de lecture dans le fichier de journalisation" -#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "fichier de journalisation invalide, impossible de redémarrer" -#: logsrvd/logsrvd_journal.c:440 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "impossible de déplacer le pointeur vers [%lld, %ld] dans le fichier de journalisation %s" @@ -1143,7 +1121,7 @@ msgstr "impossible de formater le tampon de minutage, longueur %d" #: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 #: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 -#: plugins/sudoers/sudoreplay.c:351 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s : %s" @@ -1178,7 +1156,7 @@ msgid "%s: invalid ServerHello, missing server_id" msgstr "%s : ServerHello invalide, le server_id manque" #: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 -#: plugins/sudoers/log_client.c:1469 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "ServerHello invalide" @@ -1291,35 +1269,35 @@ msgstr "impossible de rechercher %s:%s : %s" msgid "unable to get server IP addr" msgstr "impossible d'obtenir l'adresse IP du serveur" -#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "impossible de lire %s/%s : %s" -#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 -#: plugins/sudoers/iolog.c:1026 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "événement d'E/S %d inattendu" #: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 -#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 -#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: état %d inattendu" -#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "message d'erreur reçu du serveur : %s" -#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "message d'interruption reçu du serveur : %s" -#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: valeur type_case %d inattendue" @@ -1328,7 +1306,7 @@ msgstr "%s: valeur type_case %d inattendue" msgid "timeout reading from server" msgstr "délai d'attente expiré durant la lecture depuis le serveur" -#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "le nom de l'hôte ne correspond pas au certificat" @@ -1336,7 +1314,7 @@ msgstr "le nom de l'hôte ne correspond pas au certificat" msgid "premature EOF" msgstr "fin de fichier prématurée" -#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "message serveur trop grand : %u" @@ -1423,10 +1401,10 @@ msgstr "impossible de définir TLS 1.2 comme étant la version minimale du proto #: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 #: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 -#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 -#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 -#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 -#: plugins/sudoers/policy.c:124 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "récupération de l'heure du jour impossible" @@ -1580,11 +1558,11 @@ msgstr "le contact avec le serveur SecurID n'a pas pu être établi" msgid "User ID locked for SecurID Authentication" msgstr "l'identifiant de l'utilisateur est verrouillé pour l'authentification SecurID" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "la longueur du nom de l'utilisateur n'est pas conforme aux règles fixées pour SecurID" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "l'identifiant d'authentification (« Authentication Handle ») est invalide pour SecurID" @@ -1592,11 +1570,11 @@ msgstr "l'identifiant d'authentification (« Authentication Handle ») est inv msgid "SecurID communication failed" msgstr "la communication avec SecurID a échoué" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "erreur SecurID non identifiée" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "la longueur du mot de passe est invalide pour SecurID" @@ -1666,9 +1644,17 @@ msgstr "" " #3) De grands pouvoirs confèrent de grandes responsabilités.\n" "\n" -#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 -#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"Pour des raisons de sécurité, le mot de passe que vous tapez ne sera pas visible.\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "identifiant utilisateur %u inconnu" @@ -1725,8 +1711,7 @@ msgstr "%s : les fichiers d'entrée et de sortie doivent être différents" #: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 #: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 -#: plugins/sudoers/visudo.c:975 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "initialisation des valeurs par défaut de sudoers impossible" @@ -1755,12 +1740,12 @@ msgstr "type de suppression invalide : %s" msgid "invalid filter: %s" msgstr "filtre invalide : %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "échec lors de l'analyse grammaticale de %s, erreur inconnue" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 #: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" @@ -1817,17 +1802,36 @@ msgstr "" " -s, --suppress=sections supprimer la sortie de certaines sections\n" " -V, --version afficher la version et terminer" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "erreur interne, dépassement de %s" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "récupération de l'heure GMT impossible" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "impossible de formater l'horodatage" @@ -2641,8 +2645,8 @@ msgstr "type Defaults 0x%x invalide pour l'option «␣%s␣»" msgid "value \"%s\" is invalid for option \"%s\"" msgstr "la valeur « %s » ne convient pas pour l'option « %s »" -#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 -#: plugins/sudoers/policy.c:217 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "chemin trop long pour « %s »" @@ -2657,15 +2661,24 @@ msgstr "les valeurs de « %s » doivent commencer par « / », « ~ » ou msgid "values for \"%s\" must start with a '/'" msgstr "les valeurs de « %s » doivent commencer par « / »" +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "éditeur ignoré : %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "les arguments de l'éditeur ne peuvent pas contenir « -- »" + #: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv : envp est corrompu, longueur incorrecte" -#: plugins/sudoers/env.c:1109 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "impossible de créer à nouveau l'environnement" -#: plugins/sudoers/env.c:1183 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "désolé, vous n'êtes pas autorisé à définir ces variables d'environnement : %s" @@ -2680,27 +2693,17 @@ msgstr "le type résumé (digest type) %d pour n'est pas autorisé pour %s" msgid "%s: read error" msgstr "%s : erreur en lecture" -#: plugins/sudoers/group_plugin.c:169 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s doit appartenir à l'utilisateur (uid) %d" - -#: plugins/sudoers/group_plugin.c:173 -#, c-format -msgid "%s must only be writable by owner" -msgstr "seul le propriétaire doit avoir le droit en écriture sur %s" - -#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "chargement de %s impossible : %s" -#: plugins/sudoers/group_plugin.c:197 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "le symbole « group_plugin » est introuvable dans %s" -#: plugins/sudoers/group_plugin.c:202 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s : la version majeure %d du greffon group est incompatible, la version attendue est %d" @@ -2723,10 +2726,10 @@ msgstr "Couples adresse IP locale/masque de sous-réseau :\n" msgid "unable to update sequence file" msgstr "mise à jour du fichier de séquence impossible" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 -#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 -#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 -#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "impossible d'écrire dans le journal des E/S : %s" @@ -2736,20 +2739,20 @@ msgstr "impossible d'écrire dans le journal des E/S : %s" msgid "unable to create %s/%s" msgstr "impossible de créer %s/%s" -#: plugins/sudoers/iolog.c:957 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: erreur interne, le fichier journal des E/S pour l'événement %d n'est pas ouvert" -#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 -#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 -#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "lecture de l'horloge impossible" -#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 -#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: erreur interne, signal %d invalide" @@ -2768,16 +2771,16 @@ msgstr "impossible d'initialiser le certificat SSL et la base de clés : %s" msgid "you must set TLS_CERT in %s to use SSL" msgstr "TLS_CERT doit être défini dans %s pour pouvoir utiliser SSL" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "initialisation de LDAP impossible : %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls est spécifié mais les bibliothèques LDAP ne gèrent pas ldap_start_tls_s() ou ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "attribut sudoOrder invalide : %s" @@ -2818,7 +2821,7 @@ msgid "unable to send audit message" msgstr "envoi du message d'audit impossible" #: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 -#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "erreur dans la boucle des événements" @@ -2860,20 +2863,20 @@ msgstr "l'initialisation TLS n'a pas réussi" msgid "TLS handshake was unsuccessful" msgstr "la négociation TLS n'a pas réussi" -#: plugins/sudoers/log_client.c:1211 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: erreur interne, statut de sortie %d invalide" -#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "perte de la connexion au serveur de journalisation" -#: plugins/sudoers/log_client.c:1841 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "tampon d'écriture manquant" -#: plugins/sudoers/log_client.c:1995 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "impossible de se connecter au serveur de journal" @@ -2913,15 +2916,15 @@ msgstr "Désolé, l'utilisateur %s n'est pas autorisé à exécuter « %s%s%s  msgid "This incident has been reported to the administrator.\n" msgstr "Cet incident a été signalé à l'administrateur.\n" -#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 -#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 -#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 -#: plugins/sudoers/sudoers.c:807 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s : commande introuvable" -#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2930,31 +2933,31 @@ msgstr "" "« %s » trouvé dans « . » n'a pas été exécuté\n" "Utilisez « sudo ./%s » si c'est bien la version de « %s » que vous souhaitez exécuter." -#: plugins/sudoers/logging.c:387 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" msgstr[0] "%u saisie de mot de passe incorrecte" msgstr[1] "%u saisies de mots de passe incorrectes" -#: plugins/sudoers/logging.c:477 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "échec de l'authentification" -#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "il est nécessaire de saisir un mot de passe" -#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "problème lors de l'analyse syntaxique de sudoers" -#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1062 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "impossible d'écrire le fichier journal : %s" @@ -2969,7 +2972,7 @@ msgstr "le résumé (digest) de %s (%s) a la mauvaise longueur %zu, %zu attendue msgid "digest for %s (%s) is not in %s form" msgstr "le résume (digest) de %s (%s) n'est pas dans le forme %s" -#: plugins/sudoers/parse.c:591 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2978,7 +2981,7 @@ msgstr "" "\n" "Rôle LDAP : %s\n" -#: plugins/sudoers/parse.c:594 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2986,38 +2989,38 @@ msgstr "" "\n" "Entrée sudoers :\n" -#: plugins/sudoers/parse.c:596 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " RunAsUsers : " -#: plugins/sudoers/parse.c:611 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " RunAsGroups : " -#: plugins/sudoers/parse.c:621 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " Options : " -#: plugins/sudoers/parse.c:685 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " Commandes :\n" -#: plugins/sudoers/parse.c:876 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "Entrées Defaults correspondant pour %s sur %s :\n" -#: plugins/sudoers/parse.c:894 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "Paramètres par défaut de runas ou spécifiques aux commandes pour %s :\n" -#: plugins/sudoers/parse.c:912 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "L'utilisateur %s peut utiliser les commandes suivantes sur %s :\n" -#: plugins/sudoers/parse.c:927 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "L'utilisateur %s n'est pas autorisé à exécuter sudo sur %s.\n" @@ -3032,64 +3035,64 @@ msgstr "le sudoRole incomplet est ignoré : cn : %s" msgid "invalid LDIF attribute: %s" msgstr "attribut LDIF invalide : %s" -#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "%.*s invalide défini par l'interface utilisateur de sudo" -#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "impossible d'analyser la liste des adresses réseau" -#: plugins/sudoers/policy.c:526 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "nom d'utilisateur pas défini par l'interface utilisateur de sudo" -#: plugins/sudoers/policy.c:530 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "ID utilisateur pas défini par l'interface utilisateur de sudo" -#: plugins/sudoers/policy.c:534 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "ID de groupe pas défini par l'interface utilisateur de sudo" -#: plugins/sudoers/policy.c:538 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "nom d'hôte pas défini par l'interface utilisateur de sudo" -#: plugins/sudoers/policy.c:730 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "répertoire de travail invalide : %s" -#: plugins/sudoers/policy.c:914 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "répertoire chroot invalide : %s" -#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 -#: plugins/sudoers/visudo.c:902 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "exécution de %s impossible" -#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 -#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: fanions de mode invalides dans l'interface utilisateur de sudo : 0x%x" -#: plugins/sudoers/policy.c:1292 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "La version du greffon de politique de sudoers est %s\n" -#: plugins/sudoers/policy.c:1294 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "La version de la grammaire du fichier sudoers est %d\n" -#: plugins/sudoers/policy.c:1298 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3098,27 +3101,27 @@ msgstr "" "\n" "Chemin d'accès à sudoers : %s\n" -#: plugins/sudoers/policy.c:1301 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "chemin d'accès à nsswitch : %s\n" -#: plugins/sudoers/policy.c:1303 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "chemin d'accès à ldap.conf : %s\n" -#: plugins/sudoers/policy.c:1304 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "chemin d'accès à ldap.secret : %s\n" -#: plugins/sudoers/policy.c:1337 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "activation d'un point d'ancrage de type %d (version %d.%d) impossible" -#: plugins/sudoers/policy.c:1355 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "désactivation d'un point d'ancrage de type %d (version %d.%d) impossible" @@ -3165,24 +3168,24 @@ msgstr "impossible d'écrire le groupe %s dans la cache" msgid "unable to cache group %s, already exists" msgstr "enregistrement du groupe %s dans le cache impossible, l'entrée existe déjà" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "enregistrement de la liste de groupe %s dans le cache impossible, l'entrée existe déjà" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "impossible d'écrire la liste de groupes dans la cache pour %s" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "impossible d'analyser les groupes pour %s" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "impossible d'analyser les gids pour %s" @@ -3294,213 +3297,217 @@ msgstr "aucune commande spécifiée" msgid "sudoers specifies that root is not allowed to sudo" msgstr "il est précisé dans sudoers que root n'est pas autorisé à utiliser sudo" -#: plugins/sudoers/sudoers.c:476 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "l'utilisateur n'est pas autorisé à outrepasser la limite closeform" -#: plugins/sudoers/sudoers.c:477 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "vous n'êtes pas autorisé à utiliser l'option -C" -#: plugins/sudoers/sudoers.c:537 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "propriétaire du fichier d'horodatage (%s) : utilisateur inconnu" -#: plugins/sudoers/sudoers.c:552 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "pas de terminal tty" -#: plugins/sudoers/sudoers.c:553 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "désolé, vous devez avoir un terminal tty pour exécuter sudo" -#: plugins/sudoers/sudoers.c:560 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "interpréteur de commande invalide pour l'utilisateur %s : %s" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "commande dans le répertoire courant" -#: plugins/sudoers/sudoers.c:658 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "« cd » est une commande interne du shell, elle ne peut pas être exécutée directement." -#: plugins/sudoers/sudoers.c:660 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "l'option -s peut être utilisée pour exécuter un shell privilégié." -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "l'option -D peut être utilisée pour exécuter une commande dans un répertoire spécifique." -#: plugins/sudoers/sudoers.c:671 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "l'utilisateur n'est pas autorisé à définir un délai d'expiration de la commande" -#: plugins/sudoers/sudoers.c:673 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "désolé, vous n'êtes pas autorisé à définir un délai d'expiration de la commande" -#: plugins/sudoers/sudoers.c:681 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "l'utilisateur n'est pas autorisé à conserver l'environnement" -#: plugins/sudoers/sudoers.c:683 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "désolé, vous n'êtes pas autorisé à conserver l'environnement" -#: plugins/sudoers/sudoers.c:1073 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "erreur en définissant les variables d'environnement spécifiées par l'utilisateur" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit n'a pas besoin d'être exécuté via sudo" -#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "lecture de %s impossible" -#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s n'est pas un fichier ordinaire" -#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "Le fichier %s est la propriété de l'utilisateur (uid) %u, alors qu'il devrait appartenir à %u" -#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "Le fichier %s est ouvert en écriture pour tous" -#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "Le fichier %s a pour groupe (gid) %u, alors qu'il devrait appartenir au groupe %u" -#: plugins/sudoers/sudoers.c:1194 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "« -c %s » est réservé à l'utilisateur root" -#: plugins/sudoers/sudoers.c:1213 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "classe de connexion %s inconnue" -#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "impossible de résoudre l'hôte %s" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "option du filtre invalide : %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "attente maximum invalide : %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "facteur de vitesse invalide : %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "décalage de temps i%s invalide" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s : %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/timing : %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "Rejeu de la session sudo : %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "impossible d'initialiser le terminal tty en mode direct" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "Attention : la taille du terminal n'est pas suffisante pour pouvoir rejouer correctement la séquence.\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "La taille du journal est %d × %d, la taille de votre terminal est %d × %d." -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "Rejeu terminé, appuyez sur n'importe quelle touche pour rétablir le terminal." -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "expression ambiguë « %s »" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "« ) » sans parenthèse ouvrante dans l'expression" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "terme de recherche « %s » inconnu" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s requiert un argument" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "analyse de la date « %s » impossible" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "« ( » sans parenthèse fermante dans l'expression" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "« or » n'est pas autorisé en fin d'expression" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "« ! » n'est pas autorisé en fin d'expression" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "type de recherche %d inconnu" -#: plugins/sudoers/sudoreplay.c:1650 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "utilisation : %s [-hnRS] [-d répertoire] [-m nombre] [-s nombre] ID\n" -#: plugins/sudoers/sudoreplay.c:1652 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "utilisation : %s [-h] [-d répertoire] -l [expression recherchée]\n" -#: plugins/sudoers/sudoreplay.c:1666 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3509,7 +3516,7 @@ msgstr "" "%s - rejeu du journal de la session sudo\n" "\n" -#: plugins/sudoers/sudoreplay.c:1668 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3597,7 +3604,7 @@ msgstr "l'option -x sera supprimée dans une version ultérieure" msgid "please consider using the cvtsudoers utility instead" msgstr "envisagez plutôt l'utilisation de l'utilitaire cvtsudoers" -#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "appuyer sur entrée pour éditer %s : " @@ -3607,81 +3614,81 @@ msgstr "appuyer sur entrée pour éditer %s : " msgid "contents of edit session left in %s" msgstr "le contenu de la session d'édition a été laissé dans %s" -#: plugins/sudoers/visudo.c:402 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "l'éditeur indiqué (%s) n'existe pas" -#: plugins/sudoers/visudo.c:404 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "aucun éditeur trouvé (chemin d'accès à l'éditeur : %s)" -#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 #, c-format msgid "unable to stat %s" msgstr "impossible d'appliquer la fonction stat à %s" -#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "erreur en écriture" -#: plugins/sudoers/visudo.c:565 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "impossible d'appliquer la fonction stat au fichier temporaire (%s), %s n'a pas été modifié" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "fichier temporaire vide (%s), %s n'a pas été modifié" -#: plugins/sudoers/visudo.c:578 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "l'éditeur (%s) a échoué, %s n'a pas été modifié" -#: plugins/sudoers/visudo.c:600 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s n'a pas été modifié" -#: plugins/sudoers/visudo.c:645 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "impossible de rouvrir le fichier temporaire (%s), %s n'a pas été modifié." -#: plugins/sudoers/visudo.c:658 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "impossible d'analyser le fichier temporaire (%s), erreur inconnue" -#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "impossible de définir (uid, gid) de %s à (%u, %u)" -#: plugins/sudoers/visudo.c:809 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s et %s ne sont pas dans le même système de fichiers, tentative de renommage à l'aide de la commande mv" -#: plugins/sudoers/visudo.c:820 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "la commande a échoué : « %s %s %s », %s n'a pas été modifié" -#: plugins/sudoers/visudo.c:827 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "erreur lors du renommage de %s, %s n'a pas été modifié" -#: plugins/sudoers/visudo.c:847 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "Et maintenant ?" -#: plugins/sudoers/visudo.c:861 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3693,41 +3700,41 @@ msgstr "" " e(x)it sans sauvegarde des modifications apportées au fichier sudoers\n" " (Q)uitter et sauvegarder les modifications apportées au fichier sudoers (DANGER!)\n" -#: plugins/sudoers/visudo.c:907 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "exécution de %s impossible" -#: plugins/sudoers/visudo.c:938 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s : mauvais propriétaire (uid, gid), celui-ci devrait être (%u,%u)\n" -#: plugins/sudoers/visudo.c:949 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s : mauvais droits d'utilisation, le mode devrait être 0%o\n" -#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s : analyse réussie\n" -#: plugins/sudoers/visudo.c:1023 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s n'est pas disponible, réessayez plus tard" -#: plugins/sudoers/visudo.c:1027 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "Éditer quand même ? [y/N]" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "Attention : %s:%d:%d: %s « %s » n'est pas utilisé" -#: plugins/sudoers/visudo.c:1240 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3736,7 +3743,7 @@ msgstr "" "%s - édite le fichier sudoers en toute sécurité\n" "\n" -#: plugins/sudoers/visudo.c:1242 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" @@ -3782,14 +3789,20 @@ msgstr "la suite de la ligne est invalide" msgid "invalid IPv6 address" msgstr "adresse IPv6 invalide" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "saut de ligne inattendu dans la chaîne" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "nombre de niveaux d'inclusions trop élevé" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s doit appartenir à l'utilisateur (uid) %d" + +#~ msgid "%s must only be writable by owner" +#~ msgstr "seul le propriétaire doit avoir le droit en écriture sur %s" + #~ msgid "%s is group writable" #~ msgstr "%s est accessible en écriture pour les membres du groupe" diff --git a/plugins/sudoers/po/hr.mo b/plugins/sudoers/po/hr.mo index 966ef708f4..626a820094 100644 Binary files a/plugins/sudoers/po/hr.mo and b/plugins/sudoers/po/hr.mo differ diff --git a/plugins/sudoers/po/hr.po b/plugins/sudoers/po/hr.po index f54c2572e7..13b4ed37df 100644 --- a/plugins/sudoers/po/hr.po +++ b/plugins/sudoers/po/hr.po @@ -1,13 +1,13 @@ # Translation of sudoer to Croatian. # This file is put in the public domain. # -# Božidar Putanec , 2016, 2017, 2018, 2019, 2020, 2021, 2022. +# Božidar Putanec , 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023. msgid "" msgstr "" -"Project-Id-Version: sudoers-1.9.11b1\n" +"Project-Id-Version: sudoers-1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-05-27 08:39-0600\n" -"PO-Revision-Date: 2022-05-30 15:44-0700\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 18:06-0800\n" "Last-Translator: Božidar Putanec \n" "Language-Team: Croatian \n" "Language: hr\n" @@ -16,14 +16,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\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" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.2.2\n" "X-Poedit-Basepath: ../packages/sudo-1.8.23b2\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SearchPath-0: .\n" -#: confstr.sh:1 gram.y:1218 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" -msgstr "pogreška u sintaksi" +msgstr "sintaktična greška" #: confstr.sh:2 msgid "%p's password: " @@ -45,46 +45,59 @@ msgstr "*** SIGURNOSNE informacije za %h ***" msgid "Sorry, try again." msgstr "Pokušajte ponovo." -#: gram.y:236 gram.y:303 gram.y:312 gram.y:321 gram.y:331 gram.y:341 -#: gram.y:365 gram.y:392 gram.y:401 gram.y:409 gram.y:418 gram.y:427 -#: gram.y:501 gram.y:511 gram.y:523 gram.y:571 gram.y:580 gram.y:589 -#: gram.y:598 gram.y:730 gram.y:738 gram.y:749 gram.y:761 gram.y:780 -#: gram.y:943 gram.y:948 gram.y:956 gram.y:970 gram.y:976 gram.y:1098 -#: gram.y:1107 gram.y:1115 gram.y:1124 gram.y:1133 gram.y:1162 gram.y:1171 -#: gram.y:1179 gram.y:1272 gram.y:1402 gram.y:1769 gram.y:1816 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: gram.y:237 gram.y:304 gram.y:313 gram.y:322 gram.y:332 gram.y:342 +#: gram.y:366 gram.y:393 gram.y:402 gram.y:410 gram.y:419 gram.y:428 +#: gram.y:502 gram.y:512 gram.y:524 gram.y:572 gram.y:581 gram.y:590 +#: gram.y:599 gram.y:731 gram.y:739 gram.y:750 gram.y:762 gram.y:781 +#: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 +#: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 +#: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:84 -#: logsrvd/iolog_writer.c:89 logsrvd/iolog_writer.c:123 -#: logsrvd/iolog_writer.c:172 logsrvd/iolog_writer.c:212 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:261 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:301 -#: logsrvd/iolog_writer.c:314 logsrvd/iolog_writer.c:327 -#: logsrvd/iolog_writer.c:340 logsrvd/iolog_writer.c:355 -#: logsrvd/iolog_writer.c:393 logsrvd/iolog_writer.c:399 -#: logsrvd/iolog_writer.c:406 logsrvd/iolog_writer.c:412 -#: logsrvd/iolog_writer.c:596 logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 -#: logsrvd/logsrvd.c:305 logsrvd/logsrvd.c:1012 logsrvd/logsrvd.c:1075 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:203 logsrvd/logsrvd_journal.c:204 -#: logsrvd/logsrvd_journal.c:260 logsrvd/logsrvd_journal.c:420 -#: logsrvd/logsrvd_journal.c:422 logsrvd/logsrvd_local.c:174 -#: logsrvd/logsrvd_local.c:175 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:238 logsrvd/logsrvd_local.c:376 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:426 -#: logsrvd/logsrvd_local.c:431 logsrvd/logsrvd_local.c:432 -#: logsrvd/logsrvd_queue.c:154 logsrvd/logsrvd_queue.c:184 -#: logsrvd/logsrvd_queue.c:261 logsrvd/logsrvd_relay.c:439 -#: logsrvd/logsrvd_relay.c:738 logsrvd/logsrvd_relay.c:845 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 plugins/sudoers/audit.c:116 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 #: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 #: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 #: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 @@ -114,191 +127,206 @@ msgstr "Pokušajte ponovo." #: plugins/sudoers/cvtsudoers_merge.c:633 #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 -#: plugins/sudoers/defaults.c:657 plugins/sudoers/defaults.c:1018 -#: plugins/sudoers/defaults.c:1186 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:133 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:397 plugins/sudoers/log_client.c:710 -#: plugins/sudoers/log_client.c:731 plugins/sudoers/log_client.c:1451 -#: plugins/sudoers/log_client.c:1672 plugins/sudoers/log_client.c:2003 -#: plugins/sudoers/log_client.c:2059 plugins/sudoers/logging.c:112 -#: plugins/sudoers/logging.c:193 plugins/sudoers/logging.c:461 -#: plugins/sudoers/logging.c:675 plugins/sudoers/logging.c:812 -#: plugins/sudoers/match_command.c:333 plugins/sudoers/match_command.c:594 -#: plugins/sudoers/match_command.c:645 plugins/sudoers/match_command.c:719 -#: plugins/sudoers/match_command.c:767 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:227 plugins/sudoers/parse.c:244 -#: plugins/sudoers/parse.c:263 plugins/sudoers/parse.c:282 -#: plugins/sudoers/parse.c:299 plugins/sudoers/parse.c:322 -#: plugins/sudoers/parse.c:333 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 #: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 #: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 #: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 #: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 #: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 #: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 -#: plugins/sudoers/parse_ldif.c:597 plugins/sudoers/parse_ldif.c:627 -#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 -#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 -#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:606 -#: plugins/sudoers/policy.c:998 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 #: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 #: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 #: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 -#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:913 -#: plugins/sudoers/pwutil.c:957 plugins/sudoers/pwutil.c:1014 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 #: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 #: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 #: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 #: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:111 plugins/sudoers/stubs.c:119 -#: plugins/sudoers/sudoers.c:349 plugins/sudoers/sudoers.c:375 -#: plugins/sudoers/sudoers.c:443 plugins/sudoers/sudoers.c:452 -#: plugins/sudoers/sudoers.c:493 plugins/sudoers/sudoers.c:858 -#: plugins/sudoers/sudoers.c:996 plugins/sudoers/sudoers.c:1055 -#: plugins/sudoers/sudoers.c:1320 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 -#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:581 -#: plugins/sudoers/timestamp.c:424 plugins/sudoers/timestamp.c:468 -#: plugins/sudoers/timestamp.c:980 plugins/sudoers/timestamp.c:1118 +#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 +#: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 +#: plugins/sudoers/timestamp.c:1017 plugins/sudoers/timestamp.c:1146 #: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 -#: plugins/sudoers/visudo.c:148 plugins/sudoers/visudo.c:380 -#: plugins/sudoers/visudo.c:386 plugins/sudoers/visudo.c:492 -#: plugins/sudoers/visudo.c:1048 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "nije moguće dodijeliti memoriju" -#: gram.y:622 +#: gram.y:623 msgid "a digest requires a path name" msgstr "kontrolni zbroj zahtijeva ime staze" -#: gram.y:644 +#: gram.y:645 msgid "values for \"CWD\" must start with a '/', '~', or '*'" msgstr "vrijednosti za „CWD“ moraju započeti s „/“, „~“, ili „*“" -#: gram.y:650 +#: gram.y:651 msgid "\"CWD\" path too long" -msgstr "„CWD“ staza je predugačka" +msgstr "„CWD“ staza je preduga" -#: gram.y:660 +#: gram.y:661 msgid "values for \"CHROOT\" must start with a '/', '~', or '*'" msgstr "vrijednosti za „CHROOT“ moraju započeti s „/“, „~“, ili „*“" -#: gram.y:666 +#: gram.y:667 msgid "\"CHROOT\" path too long" -msgstr "„CHROOT“ staza je predugačka" +msgstr "„CHROOT“ staza je preduga" -#: gram.y:801 +#: gram.y:802 #, c-format msgid "syntax error, reserved word %s used as an alias name" -msgstr "sintaktička greška -- rezervirana riječ %s korištena kao alias" +msgstr "sintaktična greška -- rezervirana riječ %s korištena kao alias" -#: gram.y:824 +#: gram.y:825 msgid "invalid notbefore value" msgstr "nevaljana ‘notbefore’ vrijednost" -#: gram.y:833 +#: gram.y:834 msgid "invalid notafter value" msgstr "nevaljana ‘notafter’ vrijednost" -#: gram.y:843 plugins/sudoers/policy.c:376 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "vrijednost za tajmaut je prevelika" -#: gram.y:845 plugins/sudoers/policy.c:378 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "nevaljana vrijednost za tajmaut" -#: gram.y:966 plugins/sudoers/sudoers.c:1014 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" -msgstr "naredba je predugačka" +msgstr "naredba je preduga" -#: gram.y:1220 plugins/sudoers/check_aliases.c:96 -#: plugins/sudoers/defaults.c:1275 +#: gram.y:1224 plugins/sudoers/check_aliases.c:96 +#: plugins/sudoers/defaults.c:1276 #, c-format msgid "%s:%d:%d: %s\n" msgstr "%s:%d:%d: %s\n" -#: gram.y:1270 +#: gram.y:1278 #, c-format msgid "Alias \"%s\" already defined" msgstr "Alias „%s“ je već ranije definiran" -#: gram.y:1769 gram.y:1816 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:84 logsrvd/iolog_writer.c:89 -#: logsrvd/iolog_writer.c:123 logsrvd/iolog_writer.c:162 -#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:189 -#: logsrvd/iolog_writer.c:211 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:251 logsrvd/iolog_writer.c:260 -#: logsrvd/iolog_writer.c:276 logsrvd/iolog_writer.c:285 -#: logsrvd/iolog_writer.c:300 logsrvd/iolog_writer.c:313 -#: logsrvd/iolog_writer.c:326 logsrvd/iolog_writer.c:339 -#: logsrvd/iolog_writer.c:354 logsrvd/iolog_writer.c:393 -#: logsrvd/iolog_writer.c:399 logsrvd/iolog_writer.c:406 -#: logsrvd/iolog_writer.c:412 logsrvd/iolog_writer.c:596 -#: logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 logsrvd/logsrvd.c:305 -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:593 -#: logsrvd/logsrvd.c:1086 logsrvd/logsrvd.c:1403 logsrvd/logsrvd.c:1410 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:114 logsrvd/logsrvd_journal.c:203 -#: logsrvd/logsrvd_journal.c:233 logsrvd/logsrvd_journal.c:237 -#: logsrvd/logsrvd_journal.c:245 logsrvd/logsrvd_journal.c:268 -#: logsrvd/logsrvd_journal.c:272 logsrvd/logsrvd_journal.c:420 -#: logsrvd/logsrvd_local.c:174 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:431 -#: logsrvd/logsrvd_local.c:450 logsrvd/logsrvd_queue.c:153 -#: logsrvd/logsrvd_queue.c:184 logsrvd/logsrvd_queue.c:261 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 logsrvd/sendlog.c:1526 logsrvd/sendlog.c:1533 -#: logsrvd/sendlog.c:1756 logsrvd/tls_init.c:299 logsrvd/tls_init.c:323 -#: logsrvd/tls_init.c:334 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -310,150 +338,131 @@ msgstr "Alias „%s“ je već ranije definiran" #: plugins/sudoers/cvtsudoers_merge.c:633 #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 -#: plugins/sudoers/defaults.c:657 plugins/sudoers/defaults.c:1018 -#: plugins/sudoers/defaults.c:1186 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:132 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:687 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:223 plugins/sudoers/log_client.c:245 -#: plugins/sudoers/log_client.c:259 plugins/sudoers/log_client.c:397 -#: plugins/sudoers/log_client.c:710 plugins/sudoers/log_client.c:731 -#: plugins/sudoers/log_client.c:1451 plugins/sudoers/log_client.c:1672 -#: plugins/sudoers/log_client.c:2003 plugins/sudoers/log_client.c:2059 -#: plugins/sudoers/logging.c:112 plugins/sudoers/logging.c:192 -#: plugins/sudoers/logging.c:193 plugins/sudoers/logging.c:461 -#: plugins/sudoers/logging.c:675 plugins/sudoers/logging.c:812 -#: plugins/sudoers/logging.c:882 plugins/sudoers/logging.c:894 -#: plugins/sudoers/match_command.c:332 plugins/sudoers/match_command.c:593 -#: plugins/sudoers/match_command.c:644 plugins/sudoers/match_command.c:719 -#: plugins/sudoers/match_command.c:766 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:226 plugins/sudoers/parse.c:243 -#: plugins/sudoers/parse.c:262 plugins/sudoers/parse.c:281 -#: plugins/sudoers/parse.c:298 plugins/sudoers/parse.c:321 -#: plugins/sudoers/parse.c:332 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 #: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 #: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 #: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 #: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 #: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 #: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 -#: plugins/sudoers/parse_ldif.c:597 plugins/sudoers/parse_ldif.c:626 -#: plugins/sudoers/parse_ldif.c:651 plugins/sudoers/parse_ldif.c:709 -#: plugins/sudoers/parse_ldif.c:726 plugins/sudoers/parse_ldif.c:754 -#: plugins/sudoers/parse_ldif.c:761 plugins/sudoers/policy.c:152 -#: plugins/sudoers/policy.c:161 plugins/sudoers/policy.c:170 -#: plugins/sudoers/policy.c:198 plugins/sudoers/policy.c:361 -#: plugins/sudoers/policy.c:376 plugins/sudoers/policy.c:378 -#: plugins/sudoers/policy.c:414 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:471 plugins/sudoers/policy.c:481 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:606 plugins/sudoers/policy.c:998 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:111 plugins/sudoers/stubs.c:119 -#: plugins/sudoers/sudoers.c:349 plugins/sudoers/sudoers.c:375 -#: plugins/sudoers/sudoers.c:443 plugins/sudoers/sudoers.c:452 -#: plugins/sudoers/sudoers.c:493 plugins/sudoers/sudoers.c:858 -#: plugins/sudoers/sudoers.c:996 plugins/sudoers/sudoers.c:1055 -#: plugins/sudoers/sudoers.c:1320 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 -#: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 -#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:581 -#: plugins/sudoers/timestamp.c:424 plugins/sudoers/timestamp.c:468 -#: plugins/sudoers/timestamp.c:980 plugins/sudoers/timestamp.c:1118 -#: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 -#: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:160 -#: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 -#: plugins/sudoers/visudo.c:148 plugins/sudoers/visudo.c:380 -#: plugins/sudoers/visudo.c:386 plugins/sudoers/visudo.c:492 -#: plugins/sudoers/visudo.c:1048 toke.l:1023 toke.l:1155 toke.l:1218 -#: toke.l:1226 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 +#: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 +#: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 +#: plugins/sudoers/timestamp.c:1146 plugins/sudoers/toke_util.c:78 +#: plugins/sudoers/toke_util.c:106 plugins/sudoers/toke_util.c:131 +#: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 +#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 +#: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:326 -#: plugins/sudoers/env.c:333 plugins/sudoers/env.c:444 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:312 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:465 -#: plugins/sudoers/logging.c:820 plugins/sudoers/logging.c:830 -#: plugins/sudoers/policy.c:776 plugins/sudoers/policy.c:787 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "**interna greška**, %s prelijevanje" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "nije moguće duplicirati stdin: %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "nije moguće izvršiti %s: %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "nije moguće stvoriti novi proces (greška u fork())" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "nije moguće stvoriti novi proces (greška u fork()): %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "nije moguće otvoriti cijev: %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (naredba se nastavlja) %s" -#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1241 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "nevaljani regularni izraz: „%s“: %s" @@ -471,64 +480,64 @@ msgstr "JSON_ARRAY je prevelik" msgid "missing double quote in name" msgstr "imenu nedostaje navodnik (\")" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "nedostaje JSON_OBJECT" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "očekivan je JSON_OBJECT, dobiven je %d" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "json stog je potrošen (max %u okvira)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "objekti se moraju sastojati od parova ime:vrijednost" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "nedostaje separator između vrijednosti" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "nesparena zatvorena vitičasta zagrada }" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "neočekivano polje" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "nesparena zatvorena uglata zagrada ]" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "neočekivani string" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "nedostaje dvotočka iza imena" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "neočekivana logička operacija (boolean)" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "neočekivana nula" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "neočekivani broj" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "greška u raščlambi" @@ -567,14 +576,14 @@ msgstr "%s: nedostaje polje za runas-grupe" msgid "%s exists but is not a directory (0%o)" msgstr "%s postoji ali nije direktorij (0%o)" -#: lib/iolog/iolog_mkdirs.c:119 lib/iolog/iolog_mkdtemp.c:77 -#: logsrvd/iolog_writer.c:810 plugins/sudoers/timestamp.c:205 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 +#: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "nije moguće napraviti direktorij %s" -#: lib/iolog/iolog_mkdtemp.c:81 plugins/sudoers/visudo.c:747 -#: plugins/sudoers/visudo.c:781 plugins/sudoers/visudo.c:787 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "nije moguće promijeniti mȏd od %s na 0%o" @@ -589,785 +598,816 @@ msgstr "greška pri čitanju tajming datoteke: %s" msgid "invalid timing file line: %s" msgstr "nevaljani redak u tajming datoteci: %s" -#: logsrvd/iolog_writer.c:130 plugins/sudoers/logging.c:982 -#: plugins/sudoers/policy.c:573 -msgid "unable to generate UUID" -msgstr "nije moguće generirati UUID" +#: logsrvd/iolog_writer.c:65 +#, c-format +msgid "%s: protocol error: NULL key" +msgstr "%s: greška u protokolu : NULL ključ" -#: logsrvd/iolog_writer.c:158 logsrvd/iolog_writer.c:176 -#: logsrvd/iolog_writer.c:185 logsrvd/iolog_writer.c:203 -#: logsrvd/iolog_writer.c:216 logsrvd/iolog_writer.c:229 -#: logsrvd/iolog_writer.c:240 logsrvd/iolog_writer.c:247 -#: logsrvd/iolog_writer.c:265 logsrvd/iolog_writer.c:272 -#: logsrvd/iolog_writer.c:290 logsrvd/iolog_writer.c:305 -#: logsrvd/iolog_writer.c:318 logsrvd/iolog_writer.c:331 -#: logsrvd/iolog_writer.c:344 logsrvd/iolog_writer.c:359 +#: logsrvd/iolog_writer.c:69 #, c-format msgid "%s: protocol error: wrong type for %s" -msgstr "%s: greška u protokolu : kriva vrsta za %s" +msgstr "%s: greška u protokolu : krivi tip za %s" -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:375 -#: logsrvd/iolog_writer.c:380 logsrvd/iolog_writer.c:385 +#: logsrvd/iolog_writer.c:74 logsrvd/logsrvd_local.c:109 +#: logsrvd/logsrvd_local.c:123 logsrvd/logsrvd_local.c:131 +#: logsrvd/logsrvd_local.c:149 +#, c-format +msgid "%s: protocol error: NULL value found in %s" +msgstr "%s: greška u protokolu : u %s je pronađena NULL vrijednost" + +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 +msgid "unable to generate UUID" +msgstr "nije moguće generirati UUID" + +#: logsrvd/iolog_writer.c:341 logsrvd/iolog_writer.c:346 +#: logsrvd/iolog_writer.c:351 logsrvd/iolog_writer.c:356 #, c-format msgid "%s: protocol error: %s missing from AcceptMessage" msgstr "%s: greška u protokolu : %s nedostaje u AcceptMessage" -#: logsrvd/iolog_writer.c:446 +#: logsrvd/iolog_writer.c:417 #, c-format msgid "%s: unable to format session id" msgstr "%s: nije moguće oblikovati id sesije" -#: logsrvd/iolog_writer.c:460 logsrvd/iolog_writer.c:474 -#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:503 -#: logsrvd/iolog_writer.c:517 logsrvd/iolog_writer.c:531 +#: logsrvd/iolog_writer.c:431 logsrvd/iolog_writer.c:445 +#: logsrvd/iolog_writer.c:459 logsrvd/iolog_writer.c:474 +#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:502 #, c-format msgid "%s: %s is not set" msgstr "%s: %s nije postavljen" -#: logsrvd/iolog_writer.c:567 logsrvd/iolog_writer.c:574 +#: logsrvd/iolog_writer.c:538 logsrvd/iolog_writer.c:545 #, c-format msgid "unable to expand iolog path %s" msgstr "nije moguće proširiti stazu iolog (I/O FD) %s" -#: logsrvd/iolog_writer.c:592 +#: logsrvd/iolog_writer.c:563 #, c-format msgid "unable to create iolog path %s" msgstr "nije moguće stvoriti stazu iolog (I/O FD) %s" -#: logsrvd/iolog_writer.c:622 +#: logsrvd/iolog_writer.c:593 #, c-format msgid "invalid iofd %d" msgstr "nevaljani iofd (I/O FD) %d" -#: logsrvd/iolog_writer.c:642 +#: logsrvd/iolog_writer.c:613 #, c-format msgid "error closing iofd %d: %s" msgstr "greška pri zatvaranju iofd (I/O FD) %d: %s" -#: logsrvd/iolog_writer.c:662 +#: logsrvd/iolog_writer.c:633 #, c-format msgid "error flushing iofd %d: %s" msgstr "greška pri brisanju deskriptora datoteke %d: %s" -#: logsrvd/iolog_writer.c:780 +#: logsrvd/iolog_writer.c:751 #, c-format msgid "invalid I/O log %s: %s referenced but not present" msgstr "nevaljani U/I zapis %s: %s ima referenciju ali ne postoji" -#: logsrvd/iolog_writer.c:792 logsrvd/logsrvd_journal.c:372 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s: nije moguće naći točku [%lld, %ld] od koje treba nastaviti" -#: logsrvd/iolog_writer.c:814 logsrvd/logsrvd_journal.c:415 -#: logsrvd/logsrvd_queue.c:110 logsrvd/tls_init.c:250 -#: plugins/sudoers/check.c:282 plugins/sudoers/cvtsudoers.c:730 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 +#: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 +#: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 -#: plugins/sudoers/cvtsudoers_csv.c:692 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1106 -#: plugins/sudoers/sudoreplay.c:1469 plugins/sudoers/timestamp.c:433 -#: plugins/sudoers/tsdump.c:128 plugins/sudoers/visudo.c:965 +#: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 +#: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "nije moguće otvoriti %s" -#: logsrvd/iolog_writer.c:826 logsrvd/logsrv_util.c:100 -#: logsrvd/logsrv_util.c:107 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "nije moguće otvoriti %s/%s" -#: logsrvd/iolog_writer.c:839 +#: logsrvd/iolog_writer.c:810 #, c-format msgid "unable to copy %s/%s to %s/%s: %s" msgstr "nije moguće kopirati %s/%s u %s/%s: %s" -#: logsrvd/iolog_writer.c:868 logsrvd/logsrvd_journal.c:185 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "nije moguće preimenovati %s u %s" -#: logsrvd/logsrv_util.c:142 logsrvd/logsrv_util.c:171 +#: logsrvd/logsrv_util.c:147 logsrvd/logsrv_util.c:176 #, c-format msgid "%s/%s: unable to find resume point [%lld, %ld]" msgstr "%s/%s: nije moguće naći točku [%lld, %ld] od koje treba nastaviti" -#: logsrvd/logsrv_util.c:154 +#: logsrvd/logsrv_util.c:159 #, c-format msgid "missing I/O log file %s/%s" msgstr "nema dnevničke datoteke U/I %s/%s" -#: logsrvd/logsrv_util.c:161 +#: logsrvd/logsrv_util.c:166 #, c-format msgid "%s/%s: unable to seek forward %zu" msgstr "%s/%s: nije moguće skočiti naprijed na %zu" -#: logsrvd/logsrvd.c:266 logsrvd/logsrvd_queue.c:130 +#: logsrvd/logsrvd.c:271 logsrvd/logsrvd_queue.c:135 msgid "unable to connect to relay" msgstr "nije moguće spojiti se na relej" -#: logsrvd/logsrvd.c:325 logsrvd/logsrvd_relay.c:837 +#: logsrvd/logsrvd.c:330 logsrvd/logsrvd_relay.c:842 #, c-format msgid "server message too large: %zu" msgstr "poruka servera je prevelika: %zu" -#: logsrvd/logsrvd.c:417 logsrvd/logsrvd.c:534 logsrvd/logsrvd.c:613 -#: logsrvd/logsrvd.c:837 logsrvd/logsrvd.c:851 logsrvd/logsrvd.c:1011 -#: logsrvd/logsrvd.c:1136 logsrvd/logsrvd.c:1309 logsrvd/logsrvd.c:1327 -#: logsrvd/logsrvd.c:1428 logsrvd/logsrvd.c:1551 logsrvd/logsrvd.c:1735 -#: logsrvd/logsrvd_journal.c:484 logsrvd/logsrvd_local.c:197 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_relay.c:167 -#: logsrvd/logsrvd_relay.c:244 logsrvd/logsrvd_relay.c:248 -#: logsrvd/logsrvd_relay.c:384 logsrvd/logsrvd_relay.c:576 -#: logsrvd/logsrvd_relay.c:737 logsrvd/logsrvd_relay.c:1124 -#: logsrvd/sendlog.c:1316 logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 -#: logsrvd/tls_client.c:211 plugins/sudoers/audit.c:276 +#: logsrvd/logsrvd.c:422 logsrvd/logsrvd.c:545 logsrvd/logsrvd.c:631 +#: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 +#: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 +#: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 +#: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 +#: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 +#: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 +#: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 +#: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 #: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 -#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:116 -#: plugins/sudoers/log_client.c:338 plugins/sudoers/log_client.c:354 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:606 -#: plugins/sudoers/log_client.c:613 plugins/sudoers/log_client.c:1138 -#: plugins/sudoers/log_client.c:1420 plugins/sudoers/log_client.c:1461 -#: plugins/sudoers/log_client.c:1469 plugins/sudoers/log_client.c:1628 -#: plugins/sudoers/log_client.c:1746 plugins/sudoers/log_client.c:2067 -#: plugins/sudoers/log_client.c:2075 plugins/sudoers/logging.c:150 -#: plugins/sudoers/logging.c:209 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 +#: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 +#: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "nije moguće dodati događaj u red čekanja" -#: logsrvd/logsrvd.c:441 logsrvd/logsrvd.c:478 logsrvd/logsrvd.c:510 -#: logsrvd/logsrvd.c:558 logsrvd/logsrvd.c:630 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:720 logsrvd/logsrvd_relay.c:505 -#: logsrvd/logsrvd_relay.c:538 +#: logsrvd/logsrvd.c:446 logsrvd/logsrvd.c:483 logsrvd/logsrvd.c:515 +#: logsrvd/logsrvd.c:569 logsrvd/logsrvd.c:648 logsrvd/logsrvd.c:684 +#: logsrvd/logsrvd.c:720 logsrvd/logsrvd.c:756 logsrvd/logsrvd_relay.c:510 +#: logsrvd/logsrvd_relay.c:543 #, c-format msgid "unexpected state %d for %s" msgstr "neočekivano stanje %d za %s" -#: logsrvd/logsrvd.c:442 logsrvd/logsrvd.c:479 logsrvd/logsrvd.c:511 -#: logsrvd/logsrvd.c:559 logsrvd/logsrvd.c:631 logsrvd/logsrvd.c:661 -#: logsrvd/logsrvd.c:691 logsrvd/logsrvd.c:721 logsrvd/logsrvd_relay.c:507 -#: logsrvd/logsrvd_relay.c:540 +#: logsrvd/logsrvd.c:447 logsrvd/logsrvd.c:484 logsrvd/logsrvd.c:516 +#: logsrvd/logsrvd.c:570 logsrvd/logsrvd.c:649 logsrvd/logsrvd.c:685 +#: logsrvd/logsrvd.c:721 logsrvd/logsrvd.c:757 logsrvd/logsrvd_relay.c:512 +#: logsrvd/logsrvd_relay.c:545 msgid "state machine error" msgstr "greška automata (state machine)" -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:449 +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:454 msgid "invalid AcceptMessage" -msgstr "nevaljana AcceptMessage" +msgstr "nevaljani AcceptMessage" -#: logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:486 +#: logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:491 msgid "invalid RejectMessage" msgstr "nevaljani RejectMessage" -#: logsrvd/logsrvd.c:593 logsrvd/logsrvd.c:594 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:523 +msgid "invalid ExitMessage" +msgstr "nevaljani ExitMessage" + +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:577 +msgid "invalid RestartMessage" +msgstr "nevaljani RestartMessage" + +#: logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:612 msgid "invalid AlertMessage" -msgstr "nevaljana AlertMessage" +msgstr "nevaljani AlertMessage" -#: logsrvd/logsrvd.c:635 logsrvd/logsrvd.c:665 logsrvd/logsrvd.c:695 +#: logsrvd/logsrvd.c:653 logsrvd/logsrvd.c:689 logsrvd/logsrvd.c:725 #, c-format msgid "%s: unexpected IoBuffer" msgstr "%s: neočekivani IoBuffer" -#: logsrvd/logsrvd.c:636 logsrvd/logsrvd.c:666 logsrvd/logsrvd.c:696 +#: logsrvd/logsrvd.c:654 logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:726 msgid "protocol error" msgstr "greška protokola" -#: logsrvd/logsrvd.c:746 logsrvd/logsrvd_journal.c:283 -#: logsrvd/logsrvd_relay.c:647 logsrvd/sendlog.c:1217 -#: plugins/sudoers/log_client.c:1618 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:661 +msgid "invalid IoBuffer" +msgstr "nevaljani IoBuffer" + +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:697 +msgid "invalid ChangeWindowSize" +msgstr "nevaljani ChangeWindowSize" + +#: logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:733 +msgid "invalid CommandSuspend" +msgstr "nevaljani CommandSuspend" + +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 +#: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "nije moguće raspakirati %s veličinu %zu" -#: logsrvd/logsrvd.c:791 logsrvd/logsrvd_journal.c:357 -#: logsrvd/logsrvd_local.c:125 logsrvd/logsrvd_relay.c:671 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 +#: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "neočekivana type_case vrijednost %d u %s iz %s" -#: logsrvd/logsrvd.c:793 +#: logsrvd/logsrvd.c:829 msgid "unrecognized ClientMessage type" -msgstr "neprepoznata vrsta ClientMessage-a" +msgstr "neprepoznati tip ClientMessage-a" -#: logsrvd/logsrvd.c:883 +#: logsrvd/logsrvd.c:919 #, c-format msgid "timed out writing to client %s" msgstr "vrijeme za pisanje klijentu %s je isteklo" -#: logsrvd/logsrvd.c:888 logsrvd/logsrvd_relay.c:909 logsrvd/sendlog.c:1420 +#: logsrvd/logsrvd.c:924 logsrvd/logsrvd_relay.c:914 logsrvd/sendlog.c:1395 #, c-format msgid "missing write buffer for client %s" msgstr "nema međuspremnika za pisanje za %s klijenta" -#: logsrvd/logsrvd.c:982 +#: logsrvd/logsrvd.c:1020 #, c-format msgid "timed out reading from client %s" msgstr "isteklo je vrijeme za čitanje od %s klijenta" -#: logsrvd/logsrvd.c:1023 logsrvd/logsrvd_relay.c:772 +#: logsrvd/logsrvd.c:1061 logsrvd/logsrvd_relay.c:777 #, c-format msgid "EOF from %s without proper TLS shutdown" msgstr "EOF od %s nije propisno zatvaranje TLS-a" -#: logsrvd/logsrvd.c:1067 logsrvd/logsrvd_relay.c:200 logsrvd/sendlog.c:317 -#: plugins/sudoers/log_client.c:716 +#: logsrvd/logsrvd.c:1105 logsrvd/logsrvd_relay.c:205 logsrvd/sendlog.c:322 +#: plugins/sudoers/log_client.c:721 #, c-format msgid "client message too large: %zu" msgstr "poruka klijenta je prevelika: %zu" -#: logsrvd/logsrvd.c:1068 logsrvd/logsrvd_journal.c:246 -#: logsrvd/logsrvd_journal.c:247 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "poruka klijenta je prevelika" -#: logsrvd/logsrvd.c:1086 logsrvd/logsrvd.c:1087 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1125 msgid "invalid ClientMessage" msgstr "nevaljana ClientMessage" -#: logsrvd/logsrvd.c:1389 +#: logsrvd/logsrvd.c:1425 msgid "unable to get remote IP addr" msgstr "nije moguće dobiti udaljenu IP adresu" -#: logsrvd/logsrvd.c:1420 logsrvd/tls_client.c:198 -#: plugins/sudoers/log_client.c:276 +#: logsrvd/logsrvd.c:1456 logsrvd/tls_client.c:203 +#: plugins/sudoers/log_client.c:281 #, c-format msgid "Unable to attach user data to the ssl object: %s" msgstr "Nije moguće prikvačiti podatke korisnika na SSL objekt: %s" -#: logsrvd/logsrvd.c:1601 logsrvd/logsrvd.c:1953 +#: logsrvd/logsrvd.c:1639 logsrvd/logsrvd.c:1992 msgid "unable to setup listen socket" msgstr "nije moguće postaviti priključak za slušanje (listen socket)" -#: logsrvd/logsrvd.c:1718 +#: logsrvd/logsrvd.c:1756 #, c-format msgid "unexpected signal %d" msgstr "neočekivani signal %d" -#: logsrvd/logsrvd.c:1855 +#: logsrvd/logsrvd.c:1894 msgid "sudo log server" msgstr "server sudo dnevnika" -#: logsrvd/logsrvd.c:1857 logsrvd/sendlog.c:116 +#: logsrvd/logsrvd.c:1896 logsrvd/sendlog.c:121 msgid "Options:" msgstr "Opcije:" -#: logsrvd/logsrvd.c:1859 +#: logsrvd/logsrvd.c:1898 msgid "path to configuration file" msgstr "staza do datoteke s postavkama" -#: logsrvd/logsrvd.c:1861 logsrvd/sendlog.c:118 +#: logsrvd/logsrvd.c:1900 logsrvd/sendlog.c:123 msgid "display help message and exit" -msgstr "prikaže pomoć i iziđe" +msgstr "pokaže poruku s pomoći i iziđe" -#: logsrvd/logsrvd.c:1863 +#: logsrvd/logsrvd.c:1902 msgid "do not fork, run in the foreground" msgstr "ne stvara novi proces, radi u prednjem planu" -#: logsrvd/logsrvd.c:1865 +#: logsrvd/logsrvd.c:1904 msgid "percent chance connections will drop" msgstr "postotak šanse da će se veza prekinuti" -#: logsrvd/logsrvd.c:1867 logsrvd/sendlog.c:148 +#: logsrvd/logsrvd.c:1906 logsrvd/sendlog.c:153 msgid "display version information and exit" msgstr "prikaže podatke o inačici i iziđe" -#: logsrvd/logsrvd.c:1917 logsrvd/sendlog.c:1725 +#: logsrvd/logsrvd.c:1956 logsrvd/sendlog.c:1702 msgid "Protobuf-C version 1.3 or higher required" -msgstr "Potrebna je Protobuf-C inačica 1.3 ili novija." +msgstr "Potrebna je Protobuf-C inačica 1.3 ili novija" -#: logsrvd/logsrvd.c:1933 +#: logsrvd/logsrvd.c:1972 #, c-format msgid "invalid random drop value: %s" msgstr "nevaljana ‘random drop’ vrijednost: %s" -#: logsrvd/logsrvd.c:1936 logsrvd/sendlog.c:1779 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 -#: plugins/sudoers/visudo.c:180 +#: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 +#: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s inačica %s\n" -#: logsrvd/logsrvd_conf.c:417 plugins/sudoers/check.c:347 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1234 plugins/sudoers/sudoers.c:500 -#: plugins/sudoers/sudoers.c:1362 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "nepoznati korisnik %s" -#: logsrvd/logsrvd_conf.c:434 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:1396 +#: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" msgstr "nepoznata grupa %s" -#: logsrvd/logsrvd_conf.c:452 +#: logsrvd/logsrvd_conf.c:457 #, c-format msgid "unable to parse iolog mode %s" msgstr "nije moguće razabrati način %s iolog-a" -#: logsrvd/logsrvd_conf.c:469 logsrvd/logsrvd_conf.c:1238 +#: logsrvd/logsrvd_conf.c:474 logsrvd/logsrvd_conf.c:1243 #, c-format msgid "invalid value for %s: %s" msgstr "nevaljana vrijednost za %s: %s" -#: logsrvd/logsrvd_conf.c:522 +#: logsrvd/logsrvd_conf.c:527 msgid "TLS not supported" msgstr "TLS nije podržan" -#: logsrvd/logsrvd_conf.c:544 +#: logsrvd/logsrvd_conf.c:549 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: logsrvd/logsrvd_conf.c:617 logsrvd/logsrvd_conf.c:1027 +#: logsrvd/logsrvd_conf.c:622 logsrvd/logsrvd_conf.c:1032 #, c-format msgid "%s: not a fully qualified path" msgstr "%s: to nije potpuno kvalificirana staza" -#: logsrvd/logsrvd_conf.c:945 logsrvd/logsrvd_conf.c:961 -#: logsrvd/logsrvd_conf.c:1671 +#: logsrvd/logsrvd_conf.c:951 logsrvd/logsrvd_conf.c:967 +#: logsrvd/logsrvd_conf.c:1676 #, c-format msgid "unknown syslog facility %s" msgstr "nepoznati ustroj za syslog (Protokol dnevničarenja sustava): %s" -#: logsrvd/logsrvd_conf.c:977 logsrvd/logsrvd_conf.c:993 -#: logsrvd/logsrvd_conf.c:1009 logsrvd/logsrvd_conf.c:1675 -#: logsrvd/logsrvd_conf.c:1679 logsrvd/logsrvd_conf.c:1683 +#: logsrvd/logsrvd_conf.c:983 logsrvd/logsrvd_conf.c:999 +#: logsrvd/logsrvd_conf.c:1015 logsrvd/logsrvd_conf.c:1680 +#: logsrvd/logsrvd_conf.c:1684 logsrvd/logsrvd_conf.c:1688 #, c-format msgid "unknown syslog priority %s" msgstr "nepoznati prioritet %s za protokol dnevnika sustava (syslog)" -#: logsrvd/logsrvd_conf.c:1192 +#: logsrvd/logsrvd_conf.c:1197 #, c-format msgid "%s:%d unmatched '[': %s" msgstr "%s:%d ne podudara '[': %s" -#: logsrvd/logsrvd_conf.c:1198 +#: logsrvd/logsrvd_conf.c:1203 #, c-format msgid "%s:%d garbage after ']': %s" msgstr "%s:%d smeće iza ']': %s" -#: logsrvd/logsrvd_conf.c:1210 +#: logsrvd/logsrvd_conf.c:1215 #, c-format msgid "%s:%d invalid config section: %s" msgstr "%s:%d nevaljana sekcija u konfiguraciji: %s" -#: logsrvd/logsrvd_conf.c:1218 +#: logsrvd/logsrvd_conf.c:1223 #, c-format msgid "%s:%d invalid configuration line: %s" msgstr "%s:%d nevaljani redak u konfiguraciji: %s" -#: logsrvd/logsrvd_conf.c:1224 +#: logsrvd/logsrvd_conf.c:1229 #, c-format msgid "%s:%d expected section name: %s" msgstr "%s:%d očekivano ime sekcije: %s" -#: logsrvd/logsrvd_conf.c:1246 +#: logsrvd/logsrvd_conf.c:1251 #, c-format msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] nelegalni ključ : %s" -#: logsrvd/logsrvd_conf.c:1276 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1035 +#: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "nije moguće otvoriti dnevničku datoteku %s" -#: logsrvd/logsrvd_conf.c:1757 +#: logsrvd/logsrvd_conf.c:1763 msgid "unable to initialize server TLS context" msgstr "nije moguće inicijalizirati server TLS konteksta" -#: logsrvd/logsrvd_conf.c:1777 +#: logsrvd/logsrvd_conf.c:1783 msgid "unable to initialize relay TLS context" msgstr "nije moguće inicijalizirati relej SSL konteksta" -#: logsrvd/logsrvd_journal.c:136 logsrvd/logsrvd_journal.c:411 -#: logsrvd/logsrvd_journal.c:416 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "nije moguće stvoriti dnevničku datoteku" -#: logsrvd/logsrvd_journal.c:140 logsrvd/logsrvd_queue.c:104 -#: plugins/sudoers/visudo.c:1020 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "nije moguće zaključati %s" -#: logsrvd/logsrvd_journal.c:143 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "nije moguće zaključati dnevničku datoteku" -#: logsrvd/logsrvd_journal.c:151 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "nije moguće otvoriti dnevničku datoteku" -#: logsrvd/logsrvd_journal.c:172 logsrvd/logsrvd_journal.c:447 -#: logsrvd/logsrvd_journal.c:452 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "nije moguće pisati u dnevničku datoteku" -#: logsrvd/logsrvd_journal.c:180 logsrvd/logsrvd_journal.c:187 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "nije moguće preimenovati dnevničku datoteku" -#: logsrvd/logsrvd_journal.c:234 logsrvd/logsrvd_journal.c:235 -#: logsrvd/logsrvd_journal.c:269 logsrvd/logsrvd_journal.c:270 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "neočekivani EOF pri čitanju dnevnika" -#: logsrvd/logsrvd_journal.c:238 logsrvd/logsrvd_journal.c:239 -#: logsrvd/logsrvd_journal.c:273 logsrvd/logsrvd_journal.c:274 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "greška pri čitanju dnevnika" -#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:371 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "nevaljana datoteka dnevnika, ponovno pokretanje nije uspjelo" -#: logsrvd/logsrvd_journal.c:430 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "nije moguće skočiti na točku [%lld, %ld] u dnevniku %s" -#: logsrvd/logsrvd_local.c:153 +#: logsrvd/logsrvd_local.c:166 +#, c-format +msgid "unexpected value_case %d in %s from %s" +msgstr "neočekivana value_case %d u %s iz %s" + +#: logsrvd/logsrvd_local.c:194 msgid "error parsing AcceptMessage" msgstr "greška pri raščlanivanju AcceptMessage" -#: logsrvd/logsrvd_local.c:164 +#: logsrvd/logsrvd_local.c:205 msgid "error creating I/O log" msgstr "greška pri stvaranju U/I dnevnika" -#: logsrvd/logsrvd_local.c:187 +#: logsrvd/logsrvd_local.c:228 msgid "error logging accept event" msgstr "greška pri upisivanju u dnevnik ‘accept’ događaja" -#: logsrvd/logsrvd_local.c:226 +#: logsrvd/logsrvd_local.c:267 msgid "error parsing RejectMessage" msgstr "greška pri raščlanivanju RejectMessage-a" -#: logsrvd/logsrvd_local.c:250 +#: logsrvd/logsrvd_local.c:291 msgid "error logging reject event" msgstr "greška pri upisivanju u dnevnik ‘reject’ događaja" -#: logsrvd/logsrvd_local.c:386 logsrvd/logsrvd_local.c:394 +#: logsrvd/logsrvd_local.c:427 logsrvd/logsrvd_local.c:435 msgid "error logging exit event" msgstr "greška pri upisivanju u dnevnik exit događaja" -#: logsrvd/logsrvd_local.c:451 logsrvd/logsrvd_local.c:452 +#: logsrvd/logsrvd_local.c:492 logsrvd/logsrvd_local.c:493 msgid "log is already complete, cannot be restarted" msgstr "dnevnik je već kompletiran -- ne može se ponovno pokrenuti" -#: logsrvd/logsrvd_local.c:482 +#: logsrvd/logsrvd_local.c:523 msgid "unable to restart log" msgstr "nije moguće ponovno pokrenuti dnevničarenje (logging)" -#: logsrvd/logsrvd_local.c:498 +#: logsrvd/logsrvd_local.c:539 msgid "error parsing AlertMessage" msgstr "greška pri raščlanivanju AlertMessage" -#: logsrvd/logsrvd_local.c:508 +#: logsrvd/logsrvd_local.c:549 msgid "error logging alert event" msgstr "greška pri upisivanju u dnevnik ‘alert’ događaja" -#: logsrvd/logsrvd_local.c:544 logsrvd/logsrvd_local.c:607 -#: logsrvd/logsrvd_local.c:642 +#: logsrvd/logsrvd_local.c:585 logsrvd/logsrvd_local.c:648 +#: logsrvd/logsrvd_local.c:683 #, c-format msgid "unable to format timing buffer, length %d" msgstr "nije moguće oblikovati vremenski spremnik, dužine %d" -#: logsrvd/logsrvd_local.c:558 logsrvd/logsrvd_local.c:566 -#: logsrvd/logsrvd_local.c:614 logsrvd/logsrvd_local.c:649 -#: plugins/sudoers/sudoreplay.c:351 +#: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 +#: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" -#: logsrvd/logsrvd_local.c:577 +#: logsrvd/logsrvd_local.c:618 msgid "randomly dropping connection" msgstr "nasumični prekidi spajanja" -#: logsrvd/logsrvd_local.c:589 +#: logsrvd/logsrvd_local.c:630 msgid "error writing IoBuffer" msgstr "greška pri pisanju IoBuffer-a" -#: logsrvd/logsrvd_local.c:624 +#: logsrvd/logsrvd_local.c:665 msgid "error writing ChangeWindowSize" msgstr "greška pri pisanju ChangeWindowSize-a" -#: logsrvd/logsrvd_local.c:659 +#: logsrvd/logsrvd_local.c:700 msgid "error writing CommandSuspend" msgstr "greška pri pisanju CommandSuspend-a" -#: logsrvd/logsrvd_relay.c:430 +#: logsrvd/logsrvd_relay.c:435 msgid "TLS handshake with relay host failed" msgstr "TLS rukovanje s hostom releja nije uspjelo" -#: logsrvd/logsrvd_relay.c:458 +#: logsrvd/logsrvd_relay.c:463 msgid "unable to connect to relay host" msgstr "nije moguće spojiti se na host releja" -#: logsrvd/logsrvd_relay.c:513 +#: logsrvd/logsrvd_relay.c:518 #, c-format msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: nevaljani ServerHello, nedostaje server_id" -#: logsrvd/logsrvd_relay.c:515 logsrvd/sendlog.c:1121 -#: plugins/sudoers/log_client.c:1504 +#: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "nevaljani ServerHello" -#: logsrvd/logsrvd_relay.c:674 +#: logsrvd/logsrvd_relay.c:679 msgid "unrecognized ServerMessage type" -msgstr "neprepoznata vrsta ServerMessage" +msgstr "neprepoznati tip ServerMessage-a" -#: logsrvd/logsrvd_relay.c:703 +#: logsrvd/logsrvd_relay.c:708 #, c-format msgid "timed out reading from relay %s (%s)" msgstr "isteklo je vrijeme za čitanje iz releja %s (%s)" -#: logsrvd/logsrvd_relay.c:705 +#: logsrvd/logsrvd_relay.c:710 msgid "timeout reading from relay" msgstr "isteklo je vrijeme za čitanje iz releja" -#: logsrvd/logsrvd_relay.c:757 +#: logsrvd/logsrvd_relay.c:762 msgid "relay host name does not match certificate" -msgstr "ime hosta releja se ne slaže s certifikatom" +msgstr "ime hosta releja ne slaže se s certifikatom" -#: logsrvd/logsrvd_relay.c:763 logsrvd/logsrvd_relay.c:777 -#: logsrvd/logsrvd_relay.c:784 +#: logsrvd/logsrvd_relay.c:768 logsrvd/logsrvd_relay.c:782 +#: logsrvd/logsrvd_relay.c:789 msgid "error reading from relay" msgstr "greška čitanja iz releja" -#: logsrvd/logsrvd_relay.c:805 +#: logsrvd/logsrvd_relay.c:810 msgid "unable to read from relay" msgstr "nije moguće čitati iz releja" -#: logsrvd/logsrvd_relay.c:820 logsrvd/logsrvd_relay.c:938 +#: logsrvd/logsrvd_relay.c:825 logsrvd/logsrvd_relay.c:943 msgid "relay server closed connection" msgstr "server releja je prekinuo vezu" -#: logsrvd/logsrvd_relay.c:838 +#: logsrvd/logsrvd_relay.c:843 msgid "server message too large" msgstr "poruka servera je prevelika" -#: logsrvd/logsrvd_relay.c:902 +#: logsrvd/logsrvd_relay.c:907 #, c-format msgid "timed out writing to relay %s (%s)" msgstr "vrijeme za pisanje na relej %s (%s) je isteklo" -#: logsrvd/logsrvd_relay.c:904 +#: logsrvd/logsrvd_relay.c:909 msgid "timeout writing to relay" msgstr "vrijeme za pisanje na relej je isteklo" -#: logsrvd/logsrvd_relay.c:957 logsrvd/logsrvd_relay.c:964 -#: logsrvd/logsrvd_relay.c:974 +#: logsrvd/logsrvd_relay.c:962 logsrvd/logsrvd_relay.c:969 +#: logsrvd/logsrvd_relay.c:981 msgid "error writing to relay" msgstr "greška pri pisanju na relej" -#: logsrvd/sendlog.c:114 +#: logsrvd/sendlog.c:119 msgid "send sudo I/O log to remote server" msgstr "pošalje sudo U/I dnevnik na udaljeni poslužitelj" -#: logsrvd/sendlog.c:120 +#: logsrvd/sendlog.c:125 msgid "only send an accept event (no I/O)" msgstr "pošalje samo prihvaćene događaje (ne i U/I)" -#: logsrvd/sendlog.c:123 +#: logsrvd/sendlog.c:128 msgid "certificate bundle file to verify server's cert against" msgstr "datoteka snopa certifikata radi provjere certifikata servera" -#: logsrvd/sendlog.c:125 +#: logsrvd/sendlog.c:130 msgid "certificate file for TLS handshake" msgstr "datoteka certifikata za TLS rukovanje" -#: logsrvd/sendlog.c:128 +#: logsrvd/sendlog.c:133 msgid "host to send logs to" msgstr "host kojem se šalje dnevnik" -#: logsrvd/sendlog.c:130 +#: logsrvd/sendlog.c:135 msgid "remote ID of I/O log to be resumed" msgstr "udaljeni ID U/I dnevnika koji treba nastaviti" -#: logsrvd/sendlog.c:133 +#: logsrvd/sendlog.c:138 msgid "private key file" msgstr "datoteka privatnog ključa" -#: logsrvd/sendlog.c:135 +#: logsrvd/sendlog.c:140 msgid "do not verify server certificate" msgstr "ne provjerava certifikat servera" -#: logsrvd/sendlog.c:138 +#: logsrvd/sendlog.c:143 msgid "port to use when connecting to host" msgstr "koristi taj port za spajanje na hosta" -#: logsrvd/sendlog.c:140 +#: logsrvd/sendlog.c:145 msgid "restart previous I/O log transfer" msgstr "ponovno pokrene prethodni prijenos U/I dnevnika" -#: logsrvd/sendlog.c:142 +#: logsrvd/sendlog.c:147 msgid "reject the command with the given reason" msgstr "odbije naredbu s navedenim razlogom" -#: logsrvd/sendlog.c:144 +#: logsrvd/sendlog.c:149 msgid "stop transfer after reaching this time" msgstr "zaustavi prijenos nakon tog vremena" -#: logsrvd/sendlog.c:146 +#: logsrvd/sendlog.c:151 msgid "test audit server by sending selected I/O log n times in parallel" msgstr "testira revizijski server slanjem odabranih zapisa U/I dnevnika paralelno n puta" -#: logsrvd/sendlog.c:171 plugins/sudoers/log_client.c:448 +#: logsrvd/sendlog.c:176 plugins/sudoers/log_client.c:453 #, c-format msgid "unable to look up %s:%s: %s" msgstr "nije moguće potražiti %s:%s: %s" -#: logsrvd/sendlog.c:209 +#: logsrvd/sendlog.c:214 msgid "unable to get server IP addr" msgstr "nije moguće dobiti IP adresu servera" -#: logsrvd/sendlog.c:295 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "nije moguće učitati %s/%s: %s" -#: logsrvd/sendlog.c:1045 plugins/sudoers/iolog.c:949 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 #: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "neočekivani U/I događaj %d" -#: logsrvd/sendlog.c:1098 logsrvd/sendlog.c:1115 logsrvd/sendlog.c:1149 -#: plugins/sudoers/log_client.c:1153 plugins/sudoers/log_client.c:1430 -#: plugins/sudoers/log_client.c:1498 plugins/sudoers/log_client.c:1537 +#: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: neočekivano stanje %d" -#: logsrvd/sendlog.c:1185 plugins/sudoers/log_client.c:1586 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "primljena je poruka o greškama od servera: %s" -#: logsrvd/sendlog.c:1198 plugins/sudoers/log_client.c:1599 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "primljena je poruka za prekid (abort) od servera: %s" -#: logsrvd/sendlog.c:1257 plugins/sudoers/log_client.c:1649 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: neočekivana ‘type_case’ vrijednost za %d" -#: logsrvd/sendlog.c:1286 +#: logsrvd/sendlog.c:1261 msgid "timeout reading from server" msgstr "isteklo je vrijeme za čitanje iz servera" -#: logsrvd/sendlog.c:1335 plugins/sudoers/log_client.c:1765 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" -msgstr "ime hosta releja se ne slaže s certifikatom" +msgstr "ime hosta ne slaže se s certifikatom" -#: logsrvd/sendlog.c:1368 +#: logsrvd/sendlog.c:1343 msgid "premature EOF" msgstr "preuranjeni EOF (kraj datoteke)" -#: logsrvd/sendlog.c:1381 plugins/sudoers/log_client.c:1812 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "poruka servera je prevelika: %u" -#: logsrvd/sendlog.c:1437 +#: logsrvd/sendlog.c:1412 msgid "timeout writing to server" msgstr "isteklo je vrijeme za pisanje na server" -#: logsrvd/sendlog.c:1802 +#: logsrvd/sendlog.c:1779 msgid "both restart point and iolog ID must be specified" msgstr "i točka za ponovno pokretanje i iolog ID moraju biti specificirani" -#: logsrvd/sendlog.c:1806 +#: logsrvd/sendlog.c:1783 msgid "a restart point may not be set when no I/O is sent" msgstr "ako se ne pošalje U/I (I/O), ponovno uspostavljanje možda neće uspjeti" -#: logsrvd/sendlog.c:1882 +#: logsrvd/sendlog.c:1859 #, c-format msgid "exited prematurely with state %d" msgstr "preuranjeni završetak (izlaz) sa stanjem %d" -#: logsrvd/sendlog.c:1883 +#: logsrvd/sendlog.c:1860 #, c-format msgid "elapsed time sent to server [%lld, %ld]" msgstr "proteklo vrijeme poslano je na server [%lld, %ld]" -#: logsrvd/sendlog.c:1885 +#: logsrvd/sendlog.c:1862 #, c-format msgid "commit point received from server [%lld, %ld]" msgstr "potvrđena točka primljena je od servera [%lld, %ld]" -#: logsrvd/tls_client.c:106 plugins/sudoers/log_client.c:310 +#: logsrvd/tls_client.c:111 plugins/sudoers/log_client.c:315 msgid "TLS handshake timeout occurred" -msgstr "Vrijeme za TLS rukovanje je isteklo." +msgstr "Vrijeme za TLS rukovanje je isteklo" -#: logsrvd/tls_client.c:126 logsrvd/tls_client.c:142 -#: plugins/sudoers/log_client.c:332 plugins/sudoers/log_client.c:348 +#: logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 +#: plugins/sudoers/log_client.c:337 plugins/sudoers/log_client.c:353 msgid "unable to set event" msgstr "nije moguće uspostaviti događaj" -#: logsrvd/tls_client.c:152 logsrvd/tls_client.c:156 +#: logsrvd/tls_client.c:157 logsrvd/tls_client.c:161 #, c-format msgid "TLS connection failed: %s" msgstr "TLS spajanje nije uspjelo: %s" -#: logsrvd/tls_client.c:191 +#: logsrvd/tls_client.c:196 #, c-format msgid "unable to allocate ssl object: %s" msgstr "nije uspjelo dodijeliti memoriju za SSL objekt: %s" -#: logsrvd/tls_client.c:205 +#: logsrvd/tls_client.c:210 #, c-format msgid "Unable to attach socket to the ssl object: %s" msgstr "Nije uspjelo prikvačiti utičnicu na SSL objekt: %s" -#: logsrvd/tls_client.c:233 +#: logsrvd/tls_client.c:238 msgid "unable to initialize TLS context" msgstr "nije moguće inicijalizirati TLS konteks" -#: logsrvd/tls_init.c:132 logsrvd/tls_init.c:140 +#: logsrvd/tls_init.c:138 logsrvd/tls_init.c:146 #, c-format msgid "unable to set TLS 1.2 ciphersuite to %s: %s" msgstr "nije moguće postaviti ciphersuite na %s: %s" -#: logsrvd/tls_init.c:160 logsrvd/tls_init.c:168 +#: logsrvd/tls_init.c:166 logsrvd/tls_init.c:174 #, c-format msgid "unable to set TLS 1.3 ciphersuite to %s: %s" msgstr "nije moguće postaviti TLS 1.3 ciphersuite to %s: %s" -#: logsrvd/tls_init.c:200 logsrvd/tls_init.c:221 +#: logsrvd/tls_init.c:206 logsrvd/tls_init.c:227 #, c-format msgid "unable to set diffie-hellman parameters: %s" msgstr "nije moguće postaviti diffie-hellman parametre: %s" -#: logsrvd/tls_init.c:277 +#: logsrvd/tls_init.c:283 #, c-format msgid "unable to create TLS context: %s" msgstr "nije moguće stvoriti TLS kontekst: %s" -#: logsrvd/tls_init.c:284 +#: logsrvd/tls_init.c:290 #, c-format msgid "unable to set minimum protocol version to TLS 1.2: %s" msgstr "nije mouguće uspostaviti minimalni protokol na TLS 1.2: %s" -#: plugins/sudoers/audit.c:267 plugins/sudoers/audit.c:419 -#: plugins/sudoers/log_client.c:986 plugins/sudoers/log_client.c:1035 -#: plugins/sudoers/log_client.c:1084 plugins/sudoers/log_client.c:1210 -#: plugins/sudoers/logging.c:599 plugins/sudoers/logging.c:696 -#: plugins/sudoers/logging.c:800 plugins/sudoers/logging.c:989 -#: plugins/sudoers/policy.c:123 +#: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 +#: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "nije moguće dobiti doba dana (trenutno vrijeme)" @@ -1387,7 +1427,7 @@ msgstr "nije moguće početi s BSD autentifikacijom" #: plugins/sudoers/auth/bsdauth.c:87 msgid "invalid authentication type" -msgstr "nevaljana vrsta autentifikacije" +msgstr "nevaljani tip autentifikacije" #: plugins/sudoers/auth/bsdauth.c:96 msgid "unable to initialize BSD authentication" @@ -1493,18 +1533,18 @@ msgstr "nije moguće promijeniti zastarjelu lozinku: %s" #: plugins/sudoers/auth/pam.c:384 msgid "Password expired, contact your system administrator" -msgstr "Lozinka je istekla, javite se vašem administratoru sustava." +msgstr "Lozinka je istekla, javite se vašem administratoru sustava" #: plugins/sudoers/auth/pam.c:389 msgid "Account expired or PAM config lacks an \"account\" section for sudo, contact your system administrator" -msgstr "Račun je istekao ili PAM konfiguracija nema sekciju ‘account’ za sudo, javite se vašem administratoru sustava." +msgstr "Račun je istekao ili PAM konfiguracija nema sekciju ‘account’ za sudo, javite se vašem administratoru sustava" #: plugins/sudoers/auth/pam.c:397 plugins/sudoers/auth/pam.c:402 #, c-format msgid "PAM account management error: %s" msgstr "Pogreška u upravljanju PAM računom: %s" -#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:266 +#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:271 #, c-format msgid "you do not exist in the %s database" msgstr "vas nema u %s bazi podataka" @@ -1519,13 +1559,13 @@ msgstr "nije moguće uspostaviti vezu sa serverom za SecurID" #: plugins/sudoers/auth/securid5.c:115 msgid "User ID locked for SecurID Authentication" -msgstr "Korisnikov ID je zaključan za SecurID provjeru autentičnosti." +msgstr "Korisnikov ID je zaključan za SecurID provjeru autentičnosti" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "nevaljana duljina imena korisnika za SecurID" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "nevaljani autentifikacijski token za SecurID" @@ -1533,11 +1573,11 @@ msgstr "nevaljani autentifikacijski token za SecurID" msgid "SecurID communication failed" msgstr "SecurID komunikacija nije uspjela" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "nepoznata SecurID greška" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "nevaljana duljina lozinke za SecurID" @@ -1571,23 +1611,23 @@ msgstr "Metode autentifikacije:" #: plugins/sudoers/bsm_audit.c:123 plugins/sudoers/bsm_audit.c:214 msgid "Could not determine audit condition" -msgstr "Nije bilo moguće odrediti uvjete za reviziju." +msgstr "Nije bilo moguće odrediti uvjete za reviziju" #: plugins/sudoers/bsm_audit.c:188 plugins/sudoers/bsm_audit.c:277 msgid "unable to commit audit record" msgstr "revizijski izvještaj nije bilo moguće zapisati na disk" -#: plugins/sudoers/check.c:275 +#: plugins/sudoers/check.c:285 #, c-format msgid "error reading lecture file %s" msgstr "greška pri čitanju datoteke s prodikom: %s" -#: plugins/sudoers/check.c:278 +#: plugins/sudoers/check.c:288 #, c-format msgid "ignoring lecture file %s: not a regular file" msgstr "zanemari datoteku s prodikom %s: nije regularna datoteka" -#: plugins/sudoers/check.c:291 +#: plugins/sudoers/check.c:301 msgid "" "\n" "We trust you have received the usual lecture from the local System\n" @@ -1607,14 +1647,22 @@ msgstr "" " #3) S velikim moćima dolazi velika odgovornost.\n" "\n" -#: plugins/sudoers/check.c:342 plugins/sudoers/check.c:352 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:901 -#: plugins/sudoers/sudoers.c:922 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"Radi sigurnosti utipkana lozinka bit će nevidljiva.\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "nepoznati UID %u" -#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1278 +#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1279 #, c-format msgid "%s: %s\n" msgstr "%s: %s\n" @@ -1644,7 +1692,7 @@ msgstr "početni redoslijed (order): %s: %s" msgid "order padding: %s: %s" msgstr "ispuna redoslijeda (order): %s: %s" -#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:182 +#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:184 #, c-format msgid "%s grammar version %d\n" msgstr "%s inačica gramatike %d\n" @@ -1664,14 +1712,13 @@ msgstr "nepodržani izlazni format %s" msgid "%s: input and output files must be different" msgstr "%s: ulazna i izlazna datoteka moraju biti različite datoteke" -#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:165 -#: plugins/sudoers/sudoers.c:217 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:275 plugins/sudoers/visudo.c:644 -#: plugins/sudoers/visudo.c:969 +#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 +#: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "nije moguće inicijalizirati zadane vrijednosti sudoers" -#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:433 +#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:434 #, c-format msgid "%s: %s: %s: %s" msgstr "%s: %s: %s: %s" @@ -1684,30 +1731,30 @@ msgstr "%s: nepoznata ključna riječ %s" #: plugins/sudoers/cvtsudoers.c:630 #, c-format msgid "invalid defaults type: %s" -msgstr "nevaljane zadane vrste: %s" +msgstr "nevaljani zadani tip: %s" #: plugins/sudoers/cvtsudoers.c:653 #, c-format msgid "invalid suppression type: %s" -msgstr "nevaljana vrsta za izostavljanje: %s" +msgstr "nevaljani tip za suzbijanje: %s" #: plugins/sudoers/cvtsudoers.c:694 plugins/sudoers/cvtsudoers.c:710 #, c-format msgid "invalid filter: %s" msgstr "nevaljani filtar: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:974 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "nije uspjelo raščlaniti %s datoteku, nepoznata greška" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 -#: plugins/sudoers/timestamp.c:317 plugins/sudoers/timestamp.c:320 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 +#: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" msgstr "nije moguće pisati u %s" -#: plugins/sudoers/cvtsudoers.c:1501 +#: plugins/sudoers/cvtsudoers.c:1506 #, c-format msgid "" "%s - convert between sudoers file formats\n" @@ -1716,7 +1763,7 @@ msgstr "" "%s - pretvara formate sudoers datoteka\n" "\n" -#: plugins/sudoers/cvtsudoers.c:1503 +#: plugins/sudoers/cvtsudoers.c:1508 msgid "" "\n" "Options:\n" @@ -1746,7 +1793,7 @@ msgstr "" " -f, --output-format=format izlazni format je jedan od: JSON, LDIF ili sudoers\n" " -i, --input-format=format ulazni format jedan od: LDIF ili sudoers\n" " -I, --increment=num inkrement za num svaki sudoOrder\n" -" -h, --help pokaže ovu pomoć i završi\n" +" -h, --help pokaže poruku s pomoći i završi\n" " -m, --match=filter pretvori samo stavke koje podudaraju filter\n" " -M, --match-local filter rabi passwd i group baze podataka\n" " -o, --output=output_file pretvoreni sudoers zapiše u output_file\n" @@ -1756,17 +1803,36 @@ msgstr "" " -s, --suppress=sections izostavi izlaz od sections sekcija\n" " -V, --version informira o inačici ovog programa i završi" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "**interna greška**, %s prelijevanje" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "nije moguće dobiti GMT vrijeme" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "nije moguće oblikovati vremensku oznaku" @@ -1853,43 +1919,43 @@ msgstr "Pri neuspješnoj autentifikaciji korisnika rabi se syslog prioritet: %s" #: plugins/sudoers/def_data.c:68 msgid "Put OTP prompt on its own line" -msgstr "Postavite OTP (One-Time-Password) prompt u zasebni, vlastiti redak." +msgstr "Postavite OTP (One-Time-Password) prompt u zasebni, vlastiti redak" #: plugins/sudoers/def_data.c:72 msgid "Ignore '.' in $PATH" -msgstr "Zanemari ‘.’ u $PATH." +msgstr "Zanemari ‘.’ u $PATH" #: plugins/sudoers/def_data.c:76 msgid "Always send mail when sudo is run" -msgstr "Poštu poslati kad god se pokrene sudo." +msgstr "Poštu poslati kad god se pokrene sudo" #: plugins/sudoers/def_data.c:80 msgid "Send mail if user authentication fails" -msgstr "Poštu poslati ako autentifikacija korisnika nije uspjela." +msgstr "Poštu poslati ako autentifikacija korisnika nije uspjela" #: plugins/sudoers/def_data.c:84 msgid "Send mail if the user is not in sudoers" -msgstr "Poštu poslati ako korisnik nije u sudoers." +msgstr "Poštu poslati ako korisnik nije u sudoers" #: plugins/sudoers/def_data.c:88 msgid "Send mail if the user is not in sudoers for this host" -msgstr "Poštu poslati ako korisnik nije u sudoers na ovom računalu." +msgstr "Poštu poslati ako korisnik nije u sudoers na ovom računalu" #: plugins/sudoers/def_data.c:92 msgid "Send mail if the user is not allowed to run a command" -msgstr "Poštu poslati ako korisnik nema dopuštenje za pokretanje naredbe." +msgstr "Poštu poslati ako korisnik nema dopuštenje za pokretanje naredbe" #: plugins/sudoers/def_data.c:96 msgid "Send mail if the user tries to run a command" -msgstr "Poštu poslati ako korisnik pokušava unositi naredbe." +msgstr "Poštu poslati ako korisnik pokušava unositi naredbe" #: plugins/sudoers/def_data.c:100 msgid "Use a separate timestamp for each user/tty combo" -msgstr "Za svaku kombinaciju korisnik/terminal koristi se zasebna vremenska oznaka." +msgstr "Za svaku kombinaciju korisnik/terminal koristi se zasebna vremenska oznaka" #: plugins/sudoers/def_data.c:104 msgid "Lecture user the first time they run sudo" -msgstr "Korisnika podučiti prilikom prvog pokretanja sudo." +msgstr "Korisnika podučiti prilikom prvog pokretanja sudo" #: plugins/sudoers/def_data.c:108 #, c-format @@ -1898,79 +1964,79 @@ msgstr "Datoteka koja sadrži sudo poduku: %s" #: plugins/sudoers/def_data.c:112 msgid "Require users to authenticate by default" -msgstr "Zadano (by default),zahtijeva se autentifikacija korisnika." +msgstr "Zadano (by default),zahtijeva se autentifikacija korisnika" #: plugins/sudoers/def_data.c:116 msgid "Root may run sudo" -msgstr "Root smije pokrenuti sudo." +msgstr "Root smije pokrenuti sudo" #: plugins/sudoers/def_data.c:120 msgid "Log the hostname in the (non-syslog) log file" -msgstr "Ime računala zapiše se u (ne-syslog) dnevničku datoteku." +msgstr "Ime računala zapiše se u (ne-syslog) dnevničku datoteku" #: plugins/sudoers/def_data.c:124 msgid "Log the year in the (non-syslog) log file" -msgstr "Godina se zapiše u (ne-syslog) dnevničku datoteku." +msgstr "Godina se zapiše u (ne-syslog) dnevničku datoteku" #: plugins/sudoers/def_data.c:128 msgid "If sudo is invoked with no arguments, start a shell" -msgstr "Ako se sudo pozove bez argumenata, pokrene se ljuska." +msgstr "Ako se sudo pozove bez argumenata, pokrene se ljuska" #: plugins/sudoers/def_data.c:132 msgid "Set $HOME to the target user when starting a shell with -s" -msgstr "Postavlja $HOME na ciljanog korisnika pri pokretanju ljuske s opcijom -s." +msgstr "Postavlja $HOME na ciljanog korisnika pri pokretanju ljuske s opcijom -s" #: plugins/sudoers/def_data.c:136 msgid "Always set $HOME to the target user's home directory" -msgstr "Uvijek postavlja $HOME na osobni direktorij ciljanog korisnika." +msgstr "Uvijek postavlja $HOME na osobni direktorij ciljanog korisnika" #: plugins/sudoers/def_data.c:140 msgid "Allow some information gathering to give useful error messages" -msgstr "Dopušteno je prikupljanje informacija za ispis korisnih poruka o greškama." +msgstr "Dopušteno je prikupljanje informacija za ispis korisnih poruka o greškama" #: plugins/sudoers/def_data.c:144 msgid "Require fully-qualified hostnames in the sudoers file" -msgstr "Datoteka sudoers zahtjeva potpuno kvalificirana (fully-qualified) imena računala." +msgstr "Datoteka sudoers zahtjeva potpuno kvalificirana (fully-qualified) imena računala" #: plugins/sudoers/def_data.c:148 msgid "Insult the user when they enter an incorrect password" -msgstr "Korisnika izgrditi ako upiše netočnu lozinku." +msgstr "Korisnika izgrditi ako upiše netočnu lozinku" #: plugins/sudoers/def_data.c:152 msgid "Only allow the user to run sudo if they have a tty" -msgstr "Korisniku dopustiti pokretanje sudo samo ako ima tty." +msgstr "Korisniku dopustiti pokretanje sudo samo ako ima tty" #: plugins/sudoers/def_data.c:156 msgid "Visudo will honor the EDITOR environment variable" -msgstr "Visudo poštuje varijablu okoline EDITOR." +msgstr "Visudo poštuje varijablu okoline EDITOR" #: plugins/sudoers/def_data.c:160 msgid "Prompt for root's password, not the users's" -msgstr "Zatražiti root lozinku umjesto lozinke korisnika." +msgstr "Zatražiti root lozinku umjesto lozinke korisnika" #: plugins/sudoers/def_data.c:164 msgid "Prompt for the runas_default user's password, not the users's" -msgstr "Zatražiti lozinku runas_default korisnika a ne lozinku trenutnog korisnika." +msgstr "Zatražiti lozinku runas_default korisnika a ne lozinku trenutnog korisnika" #: plugins/sudoers/def_data.c:168 msgid "Prompt for the target user's password, not the users's" -msgstr "Zatražiti lozinku ciljanog korisnika a ne lozinku trenutnog korisnika." +msgstr "Zatražiti lozinku ciljanog korisnika a ne lozinku trenutnog korisnika" #: plugins/sudoers/def_data.c:172 msgid "Apply defaults in the target user's login class if there is one" -msgstr "Ako postoje, primijeniti zadane vrijednosti iz login klase ciljanog korisnika." +msgstr "Ako postoje, primijeniti zadane vrijednosti iz login klase ciljanog korisnika" #: plugins/sudoers/def_data.c:176 msgid "Set the LOGNAME and USER environment variables" -msgstr "Postavlja varijable okoline LOGNAME i USER." +msgstr "Postavlja varijable okoline LOGNAME i USER" #: plugins/sudoers/def_data.c:180 msgid "Only set the effective uid to the target user, not the real uid" -msgstr "Postavlja samo efektivni UID na onaj ciljanog korisnika umjesto stvarnog UID." +msgstr "Postavlja samo efektivni UID na onaj ciljanog korisnika umjesto stvarnog UID" #: plugins/sudoers/def_data.c:184 msgid "Don't initialize the group vector to that of the target user" -msgstr "Ne inicijalizirati grupni vektor na onaj od ciljanog korisnika." +msgstr "Ne inicijalizirati grupni vektor na onaj od ciljanog korisnika" #: plugins/sudoers/def_data.c:188 #, c-format @@ -1980,12 +2046,12 @@ msgstr "Pozicija na kojoj se prelamaju redci dnevničke datoteke (0, bez prelama #: plugins/sudoers/def_data.c:192 #, c-format msgid "Authentication timestamp timeout: %.1f minutes" -msgstr "Tajmaut vremenske oznake autentifikacije: %.1f minuta." +msgstr "Tajmaut vremenske oznake autentifikacije: %.1f minuta" #: plugins/sudoers/def_data.c:196 #, c-format msgid "Password prompt timeout: %.1f minutes" -msgstr "Tajmaut za unos lozinke: %.1f minuta." +msgstr "Tajmaut za unos lozinke: %.1f minuta" #: plugins/sudoers/def_data.c:200 #, c-format @@ -2092,24 +2158,24 @@ msgstr "Unaprijed učitajte biblioteku sudo_noexec koja zamjenjuje exec funkcije #: plugins/sudoers/def_data.c:284 msgid "If LDAP directory is up, do we ignore local sudoers file" -msgstr "Ako je dostupni LDAP direktorij, zanemaruje li se lokalna sudoers datoteka." +msgstr "Ako je dostupni LDAP direktorij, zanemaruje li se lokalna sudoers datoteka" #: plugins/sudoers/def_data.c:288 #, c-format msgid "File descriptors >= %d will be closed before executing a command" -msgstr "Deskriptori datoteka >= %d biti će zatvoreni prije izvršavanja naredbe." +msgstr "Deskriptori datoteka >= %d biti će zatvoreni prije izvršavanja naredbe" #: plugins/sudoers/def_data.c:292 msgid "If set, users may override the value of \"closefrom\" with the -C option" -msgstr "Ako je postavljena, korisnici mogu s opcijom -C promijeniti vrijednost od „closefrom“." +msgstr "Ako je postavljena, korisnici mogu s opcijom -C promijeniti vrijednost od „closefrom“" #: plugins/sudoers/def_data.c:296 msgid "Allow users to set arbitrary environment variables" -msgstr "Korisnici mogu postaviti bilo koje varijable okoline." +msgstr "Korisnici mogu postaviti bilo koje varijable okoline" #: plugins/sudoers/def_data.c:300 msgid "Reset the environment to a default set of variables" -msgstr "Okolinu vratiti u zadani skup varijabli okoline." +msgstr "Okolinu vratiti u zadani skup varijabli okoline" #: plugins/sudoers/def_data.c:304 msgid "Environment variables to check for safety:" @@ -2131,7 +2197,7 @@ msgstr "SELinux uloga za korištenje u novom sigurnosnom kontekstu: %s" #: plugins/sudoers/def_data.c:320 #, c-format msgid "SELinux type to use in the new security context: %s" -msgstr "SELinux vrsta za korištenje u novom sigurnosnom kontekstu: %s" +msgstr "SELinux tip za korištenje u novom sigurnosnom kontekstu: %s" #: plugins/sudoers/def_data.c:324 #, c-format @@ -2150,378 +2216,402 @@ msgstr "Locale za korištenje pri obradi sudoers: %s" #: plugins/sudoers/def_data.c:336 msgid "Allow sudo to prompt for a password even if it would be visible" -msgstr "Dopustiti da sudo zatraži lozinku čak i ako će biti vidljiva." +msgstr "Dopustiti da sudo zatraži lozinku čak i ako će biti vidljiva" #: plugins/sudoers/def_data.c:340 msgid "Provide visual feedback at the password prompt when there is user input" -msgstr "Vizualno pokazati rezultat nakon unosa lozinke korisnikom." +msgstr "Vizualno pokazati rezultat nakon unosa lozinke korisnikom" #: plugins/sudoers/def_data.c:344 msgid "Use faster globbing that is less accurate but does not access the filesystem" -msgstr "Rabi se brže i manje precizno podudaranje ali nema dostupa datotečnom sustavu." +msgstr "Rabi se brže i manje precizno podudaranje ali nema dostupa datotečnom sustavu" #: plugins/sudoers/def_data.c:348 msgid "The umask specified in sudoers will override the user's, even if it is more permissive" -msgstr "U sudoers specificirani umask zamijeniti će korisnički čak i ako je tolerantniji." +msgstr "U sudoers specificirani umask zamijeniti će korisnički čak i ako je tolerantniji" #: plugins/sudoers/def_data.c:352 msgid "Log user's input for the command being run" -msgstr "Urudžbirati korisnikom pokrenute naredbe." +msgstr "Urudžbira unos korisnika za trenutno pokrenutu naredbu" #: plugins/sudoers/def_data.c:356 -msgid "Log the output of the command being run" -msgstr "Urudžbirati izlaz pokrenute naredbe." +msgid "Log the command's standard input if not connected to a terminal" +msgstr "Urudžbíra izvor standardnog unosa naredbe ako naredba nije spojena na terminal" #: plugins/sudoers/def_data.c:360 -msgid "Compress I/O logs using zlib" -msgstr "U/I urudžbirane dnevnike komprimirati s programom zlib." +msgid "Log the user's terminal input for the command being run" +msgstr "Urudžbira korisnikov unos u terminal za trenutno pokrenutu naredbu" #: plugins/sudoers/def_data.c:364 -msgid "Always run commands in a pseudo-tty" -msgstr "Naredbe uvijek pokrenuti u pseudo-TTY." +msgid "Log the output of the command being run" +msgstr "Urudžbirati izlaz pokrenute naredbe" #: plugins/sudoers/def_data.c:368 +msgid "Log the command's standard output if not connected to a terminal" +msgstr "Urudžbira standardni izlaz naredbe ako nije naredba nije spojena na terminal" + +#: plugins/sudoers/def_data.c:372 +msgid "Log the command's standard error if not connected to a terminal" +msgstr "Urudžbira standardne greške naredbe ako nareba nije spojena na terminal" + +#: plugins/sudoers/def_data.c:376 +msgid "Log the terminal output of the command being run" +msgstr "Urudžbira izlaz koje trenutna naredba ispisuje na terminal" + +#: plugins/sudoers/def_data.c:380 +msgid "Compress I/O logs using zlib" +msgstr "U/I urudžbirane dnevnike komprimirati s programom zlib" + +#: plugins/sudoers/def_data.c:384 +msgid "Always run commands in a pseudo-tty" +msgstr "Naredbe uvijek pokrenuti u pseudo-TTY" + +#: plugins/sudoers/def_data.c:388 #, c-format msgid "Plugin for non-Unix group support: %s" msgstr "Plugin za podršku za ne-Unix grupe: %s" -#: plugins/sudoers/def_data.c:372 +#: plugins/sudoers/def_data.c:392 #, c-format msgid "Directory in which to store input/output logs: %s" msgstr "Direktorij u kojem se spremaju ulazno/izlazni dnevnici: %s" -#: plugins/sudoers/def_data.c:376 +#: plugins/sudoers/def_data.c:396 #, c-format msgid "File in which to store the input/output log: %s" msgstr "Datoteka u koju se sprema ulazno/izlazni dnevnik: %s" -#: plugins/sudoers/def_data.c:380 +#: plugins/sudoers/def_data.c:400 msgid "Add an entry to the utmp/utmpx file when allocating a pty" -msgstr "Dodati stavku u utmp/utmpx datoteku pri dodijeli pseudoterminala." +msgstr "Dodati stavku u utmp/utmpx datoteku pri dodijeli pseudoterminala" -#: plugins/sudoers/def_data.c:384 +#: plugins/sudoers/def_data.c:404 msgid "Set the user in utmp to the runas user, not the invoking user" -msgstr "Postaviti korisnika u utmp na runas-korisnika umjesto na pozivatelja." +msgstr "Postaviti korisnika u utmp na runas-korisnika umjesto na pozivatelja" -#: plugins/sudoers/def_data.c:388 +#: plugins/sudoers/def_data.c:408 #, c-format msgid "Set of permitted privileges: %s" msgstr "Skup dopuštenih privilegija: %s" -#: plugins/sudoers/def_data.c:392 +#: plugins/sudoers/def_data.c:412 #, c-format msgid "Set of limit privileges: %s" msgstr "Skup limitiranih privilegija: %s" -#: plugins/sudoers/def_data.c:396 +#: plugins/sudoers/def_data.c:416 msgid "Run commands on a pty in the background" -msgstr "Pokrenuti naredbe na pseudo terminalu u pozadini." +msgstr "Pokrenuti naredbe na pseudo terminalu u pozadini" -#: plugins/sudoers/def_data.c:400 +#: plugins/sudoers/def_data.c:420 #, c-format msgid "PAM service name to use: %s" msgstr "Naziv PAM usluge za upotrebu: %s" -#: plugins/sudoers/def_data.c:404 +#: plugins/sudoers/def_data.c:424 #, c-format msgid "PAM service name to use for login shells: %s" msgstr "Naziv PAM usluge za upotrebu za prijavnu ljusku: %s" -#: plugins/sudoers/def_data.c:408 +#: plugins/sudoers/def_data.c:428 #, c-format msgid "PAM service name to use when sudo is run with the -A option: %s" msgstr "Naziv PAM usluge koja se koristi kad je sudo pozvan s opcijom -A: %s" -#: plugins/sudoers/def_data.c:412 +#: plugins/sudoers/def_data.c:432 msgid "Attempt to establish PAM credentials for the target user" -msgstr "Pokušaj da se uspostavi PAM verifikacija za ciljanog korisnika." +msgstr "Pokušaj da se uspostavi PAM verifikacija za ciljanog korisnika" -#: plugins/sudoers/def_data.c:416 +#: plugins/sudoers/def_data.c:436 msgid "Create a new PAM session for the command to run in" -msgstr "Kreira novu PAM sesiju za izvršavanje naredbe." +msgstr "Kreira novu PAM sesiju za izvršavanje naredbe" -#: plugins/sudoers/def_data.c:420 +#: plugins/sudoers/def_data.c:440 msgid "Perform PAM account validation management" -msgstr "Provjeri upravljanje s PAM računom." +msgstr "Provjeri upravljanje s PAM računom" -#: plugins/sudoers/def_data.c:424 +#: plugins/sudoers/def_data.c:444 #, c-format msgid "Maximum I/O log sequence number: %s" msgstr "Najveći broj redoslijeda dnevnika U/I: %s" -#: plugins/sudoers/def_data.c:428 +#: plugins/sudoers/def_data.c:448 msgid "Enable sudoers netgroup support" -msgstr "Omogućite podršku mrežnih grupa (netgroup) u sudoers." +msgstr "Omogućite podršku mrežnih grupa (netgroup) u sudoers" -#: plugins/sudoers/def_data.c:432 +#: plugins/sudoers/def_data.c:452 msgid "Check parent directories for writability when editing files with sudoedit" -msgstr "Provjerite mogućnost pisanja u naddirektorijima kad se koristi sudoedit za uređivanje." +msgstr "Provjerite mogućnost pisanja u naddirektorijima kad se koristi sudoedit za uređivanje" -#: plugins/sudoers/def_data.c:436 +#: plugins/sudoers/def_data.c:456 msgid "Follow symbolic links when editing files with sudoedit" -msgstr "Slijedi simboličke veze kad se koristi sudoedit za uređivanje datoteka." +msgstr "Slijedi simboličke veze kad se koristi sudoedit za uređivanje datoteka" -#: plugins/sudoers/def_data.c:440 +#: plugins/sudoers/def_data.c:460 msgid "Query the group plugin for unknown system groups" -msgstr "Ispituje plugin grupe za nepoznate sustavske grupe." +msgstr "Ispituje plugin grupe za nepoznate sustavske grupe" -#: plugins/sudoers/def_data.c:444 +#: plugins/sudoers/def_data.c:464 msgid "Match netgroups based on the entire tuple: user, host and domain" -msgstr "Podudaranje mrežnih grupa bazira se na kompletnoj n-torki: korisnik, računalo, domena." +msgstr "Podudaranje mrežnih grupa bazira se na kompletnoj n-torki: korisnik, računalo, domena" -#: plugins/sudoers/def_data.c:448 +#: plugins/sudoers/def_data.c:468 msgid "Allow commands to be run even if sudo cannot write to the audit log" -msgstr "Naredbe je dopušteno izvršiti iako ih sudo ne može upisati u revizijski dnevnik." +msgstr "Naredbe je dopušteno izvršiti iako ih sudo ne može upisati u revizijski dnevnik" -#: plugins/sudoers/def_data.c:452 +#: plugins/sudoers/def_data.c:472 msgid "Allow commands to be run even if sudo cannot write to the I/O log" -msgstr "Naredbe je dopušteno izvršiti iako ih sudo ne može upisati u U/I dnevnik." +msgstr "Naredbe je dopušteno izvršiti iako ih sudo ne može upisati u U/I dnevnik" -#: plugins/sudoers/def_data.c:456 +#: plugins/sudoers/def_data.c:476 msgid "Allow commands to be run even if sudo cannot write to the log file" -msgstr "Naredbe je dopušteno izvršiti iako ih sudo ne može upisati u dnevnik." +msgstr "Naredbe je dopušteno izvršiti iako ih sudo ne može upisati u dnevnik" -#: plugins/sudoers/def_data.c:460 +#: plugins/sudoers/def_data.c:480 msgid "Resolve groups in sudoers and match on the group ID, not the name" -msgstr "Razriješi grupe u sudoers i podudari ih po ID grupe umjesto po imenu grupe." +msgstr "Razriješi grupe u sudoers i podudari ih po ID grupe umjesto po imenu grupe" -#: plugins/sudoers/def_data.c:464 +#: plugins/sudoers/def_data.c:484 #, c-format msgid "Log entries larger than this value will be split into multiple syslog messages: %u" msgstr "Dnevničke stavke veće od ove vrijednosti podijeliti će se u više syslog poruka: %u" -#: plugins/sudoers/def_data.c:468 +#: plugins/sudoers/def_data.c:488 #, c-format msgid "User that will own the I/O log files: %s" msgstr "Korisnik koji će biti vlasnik U/I dnevnika: %s" -#: plugins/sudoers/def_data.c:472 +#: plugins/sudoers/def_data.c:492 #, c-format msgid "Group that will own the I/O log files: %s" msgstr "Grupa koja će biti vlasnik U/I dnevnika: %s" -#: plugins/sudoers/def_data.c:476 +#: plugins/sudoers/def_data.c:496 #, c-format msgid "File mode to use for the I/O log files: 0%o" msgstr "Prava pristupa za uporabu za U/I dnevnike: 0%o" -#: plugins/sudoers/def_data.c:480 +#: plugins/sudoers/def_data.c:500 #, c-format msgid "Execute commands by file descriptor instead of by path: %s" msgstr "Izvrši naredbe pomoću deskriptora datoteke umjesto staze: %s" -#: plugins/sudoers/def_data.c:484 +#: plugins/sudoers/def_data.c:504 msgid "Ignore unknown Defaults entries in sudoers instead of producing a warning" -msgstr "Nepoznati zadani podaci za sudoers se ignoriraju umjesto ispisa upozorenja." +msgstr "Nepoznati zadani podaci za sudoers se ignoriraju umjesto ispisa upozorenja" -#: plugins/sudoers/def_data.c:488 +#: plugins/sudoers/def_data.c:508 #, c-format msgid "Time in seconds after which the command will be terminated: %u" msgstr "Vrijeme u sekundama nakon kojeg se naredba prekida: %u" -#: plugins/sudoers/def_data.c:492 +#: plugins/sudoers/def_data.c:512 msgid "Allow the user to specify a timeout on the command line" -msgstr "Dopustite korisniku da specificira tajmaut na komandnom retku." +msgstr "Dopustite korisniku da specificira tajmaut na komandnom retku" -#: plugins/sudoers/def_data.c:496 +#: plugins/sudoers/def_data.c:516 msgid "Flush I/O log data to disk immediately instead of buffering it" -msgstr "U/I dnevnik ispisivati direktno na disk umjesto preko međuspremnika." +msgstr "U/I dnevnik ispisivati direktno na disk umjesto preko međuspremnika" -#: plugins/sudoers/def_data.c:500 +#: plugins/sudoers/def_data.c:520 msgid "Include the process ID when logging via syslog" -msgstr "U syslog dnevnik upisivati i ID procesa." +msgstr "U syslog dnevnik upisivati i ID procesa" -#: plugins/sudoers/def_data.c:504 +#: plugins/sudoers/def_data.c:524 #, c-format msgid "Type of authentication timestamp record: %s" -msgstr "Vrsta zapisa autentifikacijskih vremenskih oznaka: %s" +msgstr "Tip zapisa autentifikacijskih vremenskih oznaka: %s" -#: plugins/sudoers/def_data.c:508 +#: plugins/sudoers/def_data.c:528 #, c-format msgid "Authentication failure message: %s" msgstr "Greška u provjeri autentičnosti: %s" -#: plugins/sudoers/def_data.c:512 +#: plugins/sudoers/def_data.c:532 msgid "Ignore case when matching user names" -msgstr "Zanemari veličinu slova kad se uspoređuju imena korisnika." +msgstr "Zanemari veličinu slova kad se uspoređuju imena korisnika" -#: plugins/sudoers/def_data.c:516 +#: plugins/sudoers/def_data.c:536 msgid "Ignore case when matching group names" -msgstr "Zanemari velika/mala slova pri usporedbi imena grupa." +msgstr "Zanemari velika/mala slova pri usporedbi imena grupa" -#: plugins/sudoers/def_data.c:520 +#: plugins/sudoers/def_data.c:540 msgid "Log when a command is allowed by sudoers" -msgstr "Dnevniči (upiše u dnevnik) onda kad sudoers dopusti naredbu." +msgstr "Dnevniči (upiše u dnevnik) onda kad sudoers dopusti naredbu" -#: plugins/sudoers/def_data.c:524 +#: plugins/sudoers/def_data.c:544 msgid "Log when a command is denied by sudoers" -msgstr "Dnevniči (upiše u dnevnik) onda kad sudoers ne dopusti naredbu." +msgstr "Dnevniči (upiše u dnevnik) onda kad sudoers ne dopusti naredbu" -#: plugins/sudoers/def_data.c:528 +#: plugins/sudoers/def_data.c:548 msgid "Sudo log server(s) to connect to with optional port" -msgstr "Server(i) sudo dnevnika za spajanje na opcionalni port." +msgstr "Server(i) sudo dnevnika za spajanje na opcionalni port" -#: plugins/sudoers/def_data.c:532 +#: plugins/sudoers/def_data.c:552 #, c-format msgid "Sudo log server timeout in seconds: %u" msgstr "Tajmaut servera sudo dnevnika u sekundama: %u" -#: plugins/sudoers/def_data.c:536 +#: plugins/sudoers/def_data.c:556 msgid "Enable SO_KEEPALIVE socket option on the socket connected to the logserver" -msgstr "Omogućite opciju utičnice SO_KEEPALIVE na utičnici spojenoj na server dnevnika." +msgstr "Omogućite opciju utičnice SO_KEEPALIVE na utičnici spojenoj na server dnevnika" -#: plugins/sudoers/def_data.c:540 +#: plugins/sudoers/def_data.c:560 #, c-format msgid "Path to the audit server's CA bundle file: %s" msgstr "Staza do datoteke s paketom certifikata (CA) revizijskog servera: %s" -#: plugins/sudoers/def_data.c:544 +#: plugins/sudoers/def_data.c:564 #, c-format msgid "Path to the sudoers certificate file: %s" msgstr "Staza do datoteke sa sudoers certifikatima: %s" -#: plugins/sudoers/def_data.c:548 +#: plugins/sudoers/def_data.c:568 #, c-format msgid "Path to the sudoers private key file: %s" msgstr "Staza do datoteke sa sudoers privatnim (tajnim) ključem: %s" -#: plugins/sudoers/def_data.c:552 +#: plugins/sudoers/def_data.c:572 msgid "Verify that the log server's certificate is valid" -msgstr "Provjerite je li certifikat dnevničkog servera valjan." +msgstr "Provjerite je li certifikat dnevničkog servera valjan" -#: plugins/sudoers/def_data.c:556 +#: plugins/sudoers/def_data.c:576 msgid "Allow the use of unknown runas user and/or group ID" -msgstr "Dopustite nepoznate vrijednosti za korisničko ime i/ili ID grupe za ‘runas’." +msgstr "Dopustite nepoznate vrijednosti za korisničko ime i/ili ID grupe za ‘runas’" -#: plugins/sudoers/def_data.c:560 +#: plugins/sudoers/def_data.c:580 msgid "Only permit running commands as a user with a valid shell" -msgstr "Dopustite izvršavanje naredbi samo korisniku s valjanom ljuskom." +msgstr "Dopustite izvršavanje naredbi samo korisniku s valjanom ljuskom" -#: plugins/sudoers/def_data.c:564 +#: plugins/sudoers/def_data.c:584 msgid "Set the pam remote user to the user running sudo" -msgstr "Postavite udaljenog korisnika PAM-a na korisnika koji izvršava sudo." +msgstr "Postavite udaljenog korisnika PAM-a na korisnika koji izvršava sudo" -#: plugins/sudoers/def_data.c:568 +#: plugins/sudoers/def_data.c:588 msgid "Set the pam remote host to the local host name" -msgstr "Postavite PAM udaljenog hosta pam na ime lokalnog hosta (računala)." +msgstr "Postavite PAM udaljenog hosta pam na ime lokalnog hosta (računala)" -#: plugins/sudoers/def_data.c:572 +#: plugins/sudoers/def_data.c:592 #, c-format msgid "Working directory to change to before executing the command: %s" msgstr "Radni direktorij u koji treba otići prije izvršavanja naredbe: %s" -#: plugins/sudoers/def_data.c:576 +#: plugins/sudoers/def_data.c:596 #, c-format msgid "Root directory to change to before executing the command: %s" msgstr "Root direktorij u koji treba otići prije izvršavanja naredbe: %s" -#: plugins/sudoers/def_data.c:580 +#: plugins/sudoers/def_data.c:600 #, c-format msgid "The format of logs to produce: %s" msgstr "Format dnevnika: %s" -#: plugins/sudoers/def_data.c:584 +#: plugins/sudoers/def_data.c:604 msgid "Enable SELinux RBAC support" msgstr "Omogući podršku za SELinux RBAC" -#: plugins/sudoers/def_data.c:588 +#: plugins/sudoers/def_data.c:608 #, c-format msgid "Path to the file that is created the first time sudo is run: %s" msgstr "Staza do datoteke koja se kreira prilikom prvog sudo pokretanja: %s" -#: plugins/sudoers/def_data.c:592 +#: plugins/sudoers/def_data.c:612 msgid "Intercept further commands and apply sudoers restrictions to them" -msgstr "Presretne daljnje naredbe i primijeni ograničenja sudoers-a na njih." +msgstr "Presretne daljnje naredbe i primijeni ograničenja sudoers-a na njih" -#: plugins/sudoers/def_data.c:596 +#: plugins/sudoers/def_data.c:616 msgid "Log sub-commands run by the original command" msgstr "Urudžbira podnaredbe koje izvodi naredba" -#: plugins/sudoers/def_data.c:600 +#: plugins/sudoers/def_data.c:620 msgid "Log the exit status of commands" -msgstr "Urudžbira izlazno stanje pokrenute naredbe." +msgstr "Urudžbira izlazno stanje pokrenute naredbe" -#: plugins/sudoers/def_data.c:604 +#: plugins/sudoers/def_data.c:624 msgid "Subsequent commands in an intercepted session must be authenticated" -msgstr "Naredne naredbe u presretoj sesiji moraju biti ovjerene." +msgstr "Naredne naredbe u presretoj sesiji moraju biti ovjerene" -#: plugins/sudoers/def_data.c:608 +#: plugins/sudoers/def_data.c:628 msgid "Allow an intercepted command to run set setuid or setgid programs" -msgstr "Dopusti presretnutu naredbu da pokrene program za postavljnje setuid ili setgid." +msgstr "Dopusti presretnutu naredbu da pokrene program za postavljnje setuid ili setgid" -#: plugins/sudoers/def_data.c:612 +#: plugins/sudoers/def_data.c:632 #, c-format msgid "The maximum size to which the process's address space may grow (in bytes): %s" msgstr "Maksimalna veličina do koje adresni prostor procesa može narasti (u bajtovima): %s" -#: plugins/sudoers/def_data.c:616 +#: plugins/sudoers/def_data.c:636 #, c-format msgid "The largest size core dump file that may be created (in bytes): %s" msgstr "Najveća veličina datoteke s damp memorijom koja se može stvoriti (u bajtovima): %s" -#: plugins/sudoers/def_data.c:620 +#: plugins/sudoers/def_data.c:640 #, c-format msgid "The maximum amount of CPU time that the process may use (in seconds): %s" msgstr "Maksimalna količina CPU vremena koje proces može koristiti (u sekundama): %s" -#: plugins/sudoers/def_data.c:624 +#: plugins/sudoers/def_data.c:644 #, c-format msgid "The maximum size of the data segment for the process (in bytes): %s" msgstr "Maksimalna veličina podatkovnog segmenta za proces (u bajtovima): %s" -#: plugins/sudoers/def_data.c:628 +#: plugins/sudoers/def_data.c:648 #, c-format msgid "The largest size file that the process may create (in bytes): %s" msgstr "Najveća veličina datoteke koju proces može stvoriti (u bajtovima): %s" -#: plugins/sudoers/def_data.c:632 +#: plugins/sudoers/def_data.c:652 #, c-format msgid "The maximum number of locks that the process may establish: %s" msgstr "Maksimalni broj zaključavanja koje proces može uspostaviti: %s" -#: plugins/sudoers/def_data.c:636 +#: plugins/sudoers/def_data.c:656 #, c-format msgid "The maximum size that the process may lock in memory (in bytes): %s" msgstr "Maksimalna veličina koju proces može zaključati u memoriji (u bajtovima): %s" -#: plugins/sudoers/def_data.c:640 +#: plugins/sudoers/def_data.c:660 #, c-format msgid "The maximum number of files that the process may have open: %s" msgstr "Maksimalan broj datoteka koje proces može otvoriti: %s" -#: plugins/sudoers/def_data.c:644 +#: plugins/sudoers/def_data.c:664 #, c-format msgid "The maximum number of processes that the user may run simultaneously: %s" msgstr "Maksimalan broj procesa koje korisnik može istovremeno pokrenuti: %s" -#: plugins/sudoers/def_data.c:648 +#: plugins/sudoers/def_data.c:668 #, c-format msgid "The maximum size to which the process's resident set size may grow (in bytes): %s" msgstr "Maksimalna veličina do koje može narasti rezidentna postavljena veličina procesa (u bajtovima): %s" -#: plugins/sudoers/def_data.c:652 +#: plugins/sudoers/def_data.c:672 #, c-format msgid "The maximum size to which the process's stack may grow (in bytes): %s" msgstr "Maksimalna veličina do koje može narasti stȏg procesa (u bajtovima): %s" -#: plugins/sudoers/def_data.c:656 +#: plugins/sudoers/def_data.c:676 msgid "Attempt authentication even when in non-interactive mode" msgstr "Pokušaj provjere autentičnosti iako se radi u neinteraktivnom načinu" -#: plugins/sudoers/def_data.c:660 +#: plugins/sudoers/def_data.c:680 msgid "Store plaintext passwords in I/O log input" msgstr "Sprema lozinke u čistom tekstu u U/I zapisniku ulaza" -#: plugins/sudoers/def_data.c:664 +#: plugins/sudoers/def_data.c:684 msgid "List of regular expressions to use when matching a password prompt" msgstr "Popis regularnih izraza koji se koriste za podudaranje s lozinkama" -#: plugins/sudoers/def_data.c:668 +#: plugins/sudoers/def_data.c:688 #, c-format msgid "The mechanism used by the intercept and log_subcmds options: %s" msgstr "Mehanizam koji koriste opcije presretanja i log_subcmds: %s" -#: plugins/sudoers/def_data.c:672 +#: plugins/sudoers/def_data.c:692 +msgid "Attempt to verify the command and arguments after execution" +msgstr "Pokušaj provjere naredbe i argumente nakon izvršenja" + +#: plugins/sudoers/def_data.c:696 #, c-format msgid "AppArmor profile to use in the new security context: %s" msgstr "AppArmor profil za upotrebu u novom sigurnosnom kontekstu: %s" @@ -2549,38 +2639,47 @@ msgstr "opcija „%s“ ne prihvaća vrijednost" #: plugins/sudoers/defaults.c:299 #, c-format msgid "invalid Defaults type 0x%x for option \"%s\"" -msgstr "nevaljana Defaults vrsta 0x%x za opciju „%s“" +msgstr "nevaljani Defaults tip 0x%x za opciju „%s“" #: plugins/sudoers/defaults.c:306 #, c-format msgid "value \"%s\" is invalid for option \"%s\"" msgstr "vrijednost „%s“ nije ispravna za opciju „%s“" -#: plugins/sudoers/defaults.c:1127 plugins/sudoers/policy.c:207 -#: plugins/sudoers/policy.c:216 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" -msgstr "ime staze za „%s“ je predugačko" +msgstr "ime staze za „%s“ je predugo" -#: plugins/sudoers/defaults.c:1133 +#: plugins/sudoers/defaults.c:1134 #, c-format msgid "values for \"%s\" must start with a '/', '~', or '*'" msgstr "vrijednost za „%s“ mora započeti s „/“, „~“, ili „*“" -#: plugins/sudoers/defaults.c:1140 +#: plugins/sudoers/defaults.c:1141 #, c-format msgid "values for \"%s\" must start with a '/'" msgstr "vrijednost za „%s“ mora početi s „/“" -#: plugins/sudoers/env.c:412 +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "ignoriramo editor: %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "argumenti editora ne smiju sadržavati „--“" + +#: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: oštećen envp, duljina ne odgovara" -#: plugins/sudoers/env.c:1095 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "nije moguće obnoviti okolinu" -#: plugins/sudoers/env.c:1169 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "nemate dopuštenje za postavljanje sljedećih varijabli okoline: %s" @@ -2588,34 +2687,24 @@ msgstr "nemate dopuštenje za postavljanje sljedećih varijabli okoline: %s" #: plugins/sudoers/filedigest.c:49 #, c-format msgid "unsupported digest type %d for %s" -msgstr "nepodržana vrsta kontrolnog zbroja %d za %s" +msgstr "nepodržani tip kontrolnog zbroja %d za %s" #: plugins/sudoers/filedigest.c:78 #, c-format msgid "%s: read error" msgstr "%s: greška pri čitanju" -#: plugins/sudoers/group_plugin.c:83 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "vlasnik %s mora biti UID %d" - -#: plugins/sudoers/group_plugin.c:87 -#, c-format -msgid "%s must only be writable by owner" -msgstr "%s mora biti dostupan za pisanje samo vlasniku" - -#: plugins/sudoers/group_plugin.c:96 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "nije moguće učitati %s: %s" -#: plugins/sudoers/group_plugin.c:102 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "nije moguće pronaći simbol „group_plugin“ u %s" -#: plugins/sudoers/group_plugin.c:107 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: nekompatibilna glavna inačica plugin grupe %d, očekivano je %d" @@ -2657,19 +2746,19 @@ msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: interna greška, U/I dnevnička datoteka za događaj %d nije otvorena" #: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 -#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:849 -#: plugins/sudoers/timestamp.c:941 plugins/sudoers/visudo.c:546 -#: plugins/sudoers/visudo.c:552 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "nije moguće pročitati vrijeme (clock)" -#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1228 -#: plugins/sudoers/log_client.c:1238 plugins/sudoers/log_client.c:1242 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: interna greška, nevaljani signal %d" -#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:291 +#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:292 msgid "starttls not supported when using ldaps" msgstr "starttls nije podržan kad se koristi ldaps" @@ -2683,16 +2772,16 @@ msgstr "nije moguće inicijalizirati SSL certifikat i bazu podataka ključeva: % msgid "you must set TLS_CERT in %s to use SSL" msgstr "morate postaviti TLS_CERT u %s da koristite SSL" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "nije moguće inicijalizirati LDAP: %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls je specificirani, ali LDAP biblioteke ne podržavaju ldap_start_tls_s() ili ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:747 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "nevaljani sudoOrder atribut: %s" @@ -2702,12 +2791,12 @@ msgstr "nevaljani sudoOrder atribut: %s" msgid "%s: port too large" msgstr "%s: preveliki port" -#: plugins/sudoers/ldap_conf.c:260 +#: plugins/sudoers/ldap_conf.c:261 #, c-format msgid "unsupported LDAP uri type: %s" -msgstr "nepodržana vrsta adrese LDAP: %s" +msgstr "nepodržani tip adrese LDAP: %s" -#: plugins/sudoers/ldap_conf.c:287 +#: plugins/sudoers/ldap_conf.c:288 msgid "unable to mix ldap and ldaps URIs" msgstr "ne možete zajedno koristiti ldap i ldaps adrese" @@ -2732,114 +2821,114 @@ msgstr "nije moguće otvoriti revizijski sustav" msgid "unable to send audit message" msgstr "nije moguće poslati revizijsku poruku" -#: plugins/sudoers/log_client.c:120 plugins/sudoers/log_client.c:407 -#: plugins/sudoers/log_client.c:1475 plugins/sudoers/log_client.c:2083 +#: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "greška u petlji događaja" -#: plugins/sudoers/log_client.c:200 +#: plugins/sudoers/log_client.c:205 #, c-format msgid "Creation of new SSL_CTX object failed: %s" msgstr "Nije uspjelo stvoriti novi ‘SSL_CTX’ objekt: %s" -#: plugins/sudoers/log_client.c:225 +#: plugins/sudoers/log_client.c:230 #, c-format msgid "unable to load certificate authority bundle %s" msgstr "nije moguće učitati datoteku s certifikatatima (CA bundle) %s" -#: plugins/sudoers/log_client.c:247 +#: plugins/sudoers/log_client.c:252 #, c-format msgid "unable to load certificate %s" msgstr "nije moguće učitati certifikate %s" -#: plugins/sudoers/log_client.c:261 +#: plugins/sudoers/log_client.c:266 #, c-format msgid "unable to load private key %s" msgstr "nije moguće učitati privatni ključ %s" -#: plugins/sudoers/log_client.c:270 +#: plugins/sudoers/log_client.c:275 #, c-format msgid "Unable to allocate ssl object: %s" msgstr "Nije uspjelo dodijeliti memoriju za SSL objekt: %s" -#: plugins/sudoers/log_client.c:359 plugins/sudoers/log_client.c:364 +#: plugins/sudoers/log_client.c:364 plugins/sudoers/log_client.c:369 #, c-format msgid "TLS connection to %s:%s failed: %s" msgstr "TLS veza sa %s:%s nije uspjela: %s" -#: plugins/sudoers/log_client.c:538 +#: plugins/sudoers/log_client.c:543 msgid "TLS initialization was unsuccessful" msgstr "TLS inicijalizacija nije bila uspješna" -#: plugins/sudoers/log_client.c:548 +#: plugins/sudoers/log_client.c:553 msgid "TLS handshake was unsuccessful" msgstr "TLS rukovanje (handshake) nije bila uspješno" -#: plugins/sudoers/log_client.c:1246 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: **interna greška** -- nevaljani izlazni status %d" -#: plugins/sudoers/log_client.c:1775 plugins/sudoers/log_client.c:1799 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "veza sa serverom za autentifikaciju je prekinuta (izgubljena je)" -#: plugins/sudoers/log_client.c:1876 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "nema međuspremnika za pisanje" -#: plugins/sudoers/log_client.c:2024 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "nije moguće spojiti se na dnevnički server" -#: plugins/sudoers/logging.c:298 +#: plugins/sudoers/logging.c:290 msgid "user NOT in sudoers" msgstr "korisnik NIJE u sudoers" # Authentication is about who somebody is. # Authorisation is about what they're allowed to do. # https://en.wikipedia.org/wiki/AAA_(computer_security)#Authorization -#: plugins/sudoers/logging.c:300 +#: plugins/sudoers/logging.c:292 msgid "user NOT authorized on host" msgstr "korisnik NEMA ovlasti na računalu (nije autoriziran)" -#: plugins/sudoers/logging.c:302 +#: plugins/sudoers/logging.c:294 msgid "command not allowed" msgstr "naredba nije dopuštena" -#: plugins/sudoers/logging.c:323 +#: plugins/sudoers/logging.c:315 #, c-format msgid "%s is not in the sudoers file.\n" msgstr "%s nije u sudoers datoteci\n" -#: plugins/sudoers/logging.c:326 +#: plugins/sudoers/logging.c:318 #, c-format msgid "%s is not allowed to run sudo on %s.\n" msgstr "%s nije dopušteno pokrenuti sudo na %s.\n" -#: plugins/sudoers/logging.c:329 +#: plugins/sudoers/logging.c:321 #, c-format msgid "Sorry, user %s may not run sudo on %s.\n" msgstr "Nažalost, korisnik %s ne smije pokrenuti sudo na %s.\n" -#: plugins/sudoers/logging.c:332 +#: plugins/sudoers/logging.c:324 #, c-format msgid "Sorry, user %s is not allowed to execute '%s%s%s' as %s%s%s on %s.\n" msgstr "Nažalost, korisniku %s nije dopušteno izvršiti „%s%s%s“ kao %s%s%s na %s.\n" -#: plugins/sudoers/logging.c:342 +#: plugins/sudoers/logging.c:334 msgid "This incident has been reported to the administrator.\n" msgstr "Ovaj incident bit će prijavljen administratoru.\n" -#: plugins/sudoers/logging.c:373 plugins/sudoers/sudoers.c:643 -#: plugins/sudoers/sudoers.c:645 plugins/sudoers/sudoers.c:647 -#: plugins/sudoers/sudoers.c:649 plugins/sudoers/sudoers.c:799 -#: plugins/sudoers/sudoers.c:801 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s: naredba nije pronađena" -#: plugins/sudoers/logging.c:375 plugins/sudoers/sudoers.c:639 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2848,7 +2937,7 @@ msgstr "" "zanemaruje se „%s“ pronađen u „.“\n" "Koristite „sudo ./%s“ ako je to „%s“ koji želite pokrenuti." -#: plugins/sudoers/logging.c:395 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" @@ -2856,24 +2945,24 @@ msgstr[0] "%u netočni pokušaj unosa lozinke" msgstr[1] "%u netočna pokušaja unosa lozinke" msgstr[2] "%u netočnih pokušaja unosa lozinke" -#: plugins/sudoers/logging.c:485 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "neuspješna autentifikacija" -#: plugins/sudoers/logging.c:524 plugins/sudoers/logging.c:543 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "nužna je lozinka" -#: plugins/sudoers/logging.c:806 plugins/sudoers/logging.c:818 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "problem sa sudoers raščlanivanjem" -#: plugins/sudoers/logging.c:879 plugins/sudoers/logging.c:891 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1068 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "nije moguće pisati u dnevničku datoteku: %s" @@ -2888,7 +2977,7 @@ msgstr "kontrolni zbroj za %s (%s) ima lošu dužinu %zu, očekivana je %zu" msgid "digest for %s (%s) is not in %s form" msgstr "kontrolni zbroj za %s (%s) nije u %s obliku" -#: plugins/sudoers/parse.c:585 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2897,7 +2986,7 @@ msgstr "" "\n" "LDAP uloga: %s\n" -#: plugins/sudoers/parse.c:588 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2905,110 +2994,110 @@ msgstr "" "\n" "Sudoers stavka:\n" -#: plugins/sudoers/parse.c:590 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " RunAsUsers: " -#: plugins/sudoers/parse.c:605 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " RunAsGroups: " -#: plugins/sudoers/parse.c:615 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " Opcije: " -#: plugins/sudoers/parse.c:679 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " Naredbe:\n" -#: plugins/sudoers/parse.c:870 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "Odgovarajući Defaults unosi za %s na %s:\n" -#: plugins/sudoers/parse.c:888 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "Runas i Command-specifične zadane vrijednosti za %s:\n" -#: plugins/sudoers/parse.c:906 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "Korisnik %s može pokrenuti sljedeće naredbe na %s:\n" -#: plugins/sudoers/parse.c:921 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Korisniku %s nije dopušteno pokrenuti sudo na %s.\n" -#: plugins/sudoers/parse_ldif.c:617 +#: plugins/sudoers/parse_ldif.c:618 #, c-format msgid "ignoring incomplete sudoRole: cn: %s" msgstr "zanemareni nekompletni sudoRole: cn: %s" -#: plugins/sudoers/parse_ldif.c:677 +#: plugins/sudoers/parse_ldif.c:678 #, c-format msgid "invalid LDIF attribute: %s" msgstr "nevaljani LDIF atribut: %s" -#: plugins/sudoers/policy.c:80 plugins/sudoers/policy.c:111 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "nevaljana opcija %.*s postavljena kroz sudo front-end" -#: plugins/sudoers/policy.c:351 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "nije moguće pročitati popis mrežnih adresa (nemoguće ih je raščlaniti)" -#: plugins/sudoers/policy.c:508 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "ime korisnika nije postavio front-end sudo-a" -#: plugins/sudoers/policy.c:512 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "korisnički ID (user-ID) nije postavio front-end sudo-a" -#: plugins/sudoers/policy.c:516 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "groupni ID (group-ID) nije postavio front-end sudo-a" -#: plugins/sudoers/policy.c:520 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "ime računala (host name) nije postavio front-end sudo-a" -#: plugins/sudoers/policy.c:706 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "nevaljani radni direktorij: %s" -#: plugins/sudoers/policy.c:886 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "nevaljani chroot direktorij: %s" -#: plugins/sudoers/policy.c:1071 plugins/sudoers/visudo.c:254 -#: plugins/sudoers/visudo.c:896 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "nije moguće izvršiti %s" -#: plugins/sudoers/policy.c:1141 plugins/sudoers/policy.c:1178 -#: plugins/sudoers/policy.c:1200 plugins/sudoers/policy.c:1226 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: nevaljane zastavice načina rada iz sudo front end: 0x%x" -#: plugins/sudoers/policy.c:1262 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Inačica sudoers plugina s pravilima %s\n" -#: plugins/sudoers/policy.c:1264 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Inačica sudoers datotečne gramatike %d\n" -#: plugins/sudoers/policy.c:1268 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3017,32 +3106,32 @@ msgstr "" "\n" "Staza do sudoers: %s\n" -#: plugins/sudoers/policy.c:1271 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "nsswitch staza: %s\n" -#: plugins/sudoers/policy.c:1273 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "ldap.conf staza: %s\n" -#: plugins/sudoers/policy.c:1274 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "ldap.secret staza: %s\n" # hook: A location in a routine or program in which the programmer can connect or insert other routines for the purpose of debugging or enhancing functionality. -#: plugins/sudoers/policy.c:1307 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" -msgstr "nije moguće registrirati rutinu (hook) vrste %d (inačica %d.%d)" +msgstr "nije moguće registrirati rutinu (hook) tipa %d (inačica %d.%d)" # hook: A location in a routine or program in which the programmer can connect or insert other routines for the purpose of debugging or enhancing functionality. -#: plugins/sudoers/policy.c:1325 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" -msgstr "nije moguće poništiti registraciju vrste (hook) %d (inačica %d.%d)" +msgstr "nije moguće poništiti registraciju tipa (hook) %d (inačica %d.%d)" #: plugins/sudoers/pwutil.c:222 plugins/sudoers/pwutil.c:240 #, c-format @@ -3086,24 +3175,24 @@ msgstr "nije moguće zapamtiti (cache) grupu %s" msgid "unable to cache group %s, already exists" msgstr "nije moguće predmemorirati grupu %s jer već postoji" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "nije moguće predmemorirati popis grupa za %s jer već postoji" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "nije moguće zapamtiti (cache) popis grupa za %s" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "nije moguće pročitati grupe za %s" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "nije moguće razabrati GID-ove za %s" @@ -3178,256 +3267,254 @@ msgstr "nije moguće inicijalizirati SSS izvor. Je li SSSD instaliran na vašem msgid "unable to find symbol \"%s\" in %s" msgstr "nije moguće pronaći simbol „%s“ u %s" -#: plugins/sudoers/sudoers.c:258 +#: plugins/sudoers/sudoers.c:263 #, c-format msgid "unable to get defaults from %s" msgstr "nije moguće dobiti zadane vrijednosti (defaults) od %s" -#: plugins/sudoers/sudoers.c:265 +#: plugins/sudoers/sudoers.c:270 msgid "no valid sudoers sources found, quitting" msgstr "nisu pronađeni valjani sudoers izvori, kraj rada" -#: plugins/sudoers/sudoers.c:341 +#: plugins/sudoers/sudoers.c:346 #, c-format msgid "user not allowed to change root directory to %s" msgstr "korisniku nije dopušteno promijeniti radni direktorij na %s" -#: plugins/sudoers/sudoers.c:343 +#: plugins/sudoers/sudoers.c:348 #, c-format msgid "you are not permitted to use the -R option with %s" msgstr "vama nije dopušteno koristi opciju -R s/sa %s" -#: plugins/sudoers/sudoers.c:368 +#: plugins/sudoers/sudoers.c:373 #, c-format msgid "user not allowed to change directory to %s" msgstr "korisniku nije dopušteno promijeniti direktorij na %s" -#: plugins/sudoers/sudoers.c:369 +#: plugins/sudoers/sudoers.c:374 #, c-format msgid "you are not permitted to use the -D option with %s" msgstr "vama nije dopušteno koristi opciju -D s/sa %s" -#: plugins/sudoers/sudoers.c:396 +#: plugins/sudoers/sudoers.c:401 msgid "no command specified" msgstr "nijedna naredba nije specificirana" -#: plugins/sudoers/sudoers.c:421 +#: plugins/sudoers/sudoers.c:426 msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers specificira da root ne može koristiti sudo" -#: plugins/sudoers/sudoers.c:471 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "korisniku nije dopušteno promijeniti ograničenje od ‘closefrom’" -#: plugins/sudoers/sudoers.c:472 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "vama nije dopušteno koristi opciju -C" -#: plugins/sudoers/sudoers.c:532 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "vlasnik vremenske oznake (%s): Nema takvog korisnika" -#: plugins/sudoers/sudoers.c:547 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "nema TTY" -#: plugins/sudoers/sudoers.c:548 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "nažalost, da pokrenete sudo morate imati TTY" -#: plugins/sudoers/sudoers.c:555 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "nevaljana ljuska za korisnika %s: %s" -#: plugins/sudoers/sudoers.c:638 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "naredba u trenutnom direktoriju" -#: plugins/sudoers/sudoers.c:653 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "„cd“ naredba je ugrađena u ljusku, ne može se izravno pokrenuti." -#: plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "opcija -s može se koristiti za pokretanje privilegirane ljuske." -#: plugins/sudoers/sudoers.c:657 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "opcija -D može se koristiti za pokretanje naredbe u određenom direktoriju." -#: plugins/sudoers/sudoers.c:666 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "korisniku nije dopušteno postavljanje tajmaut naredbe" -#: plugins/sudoers/sudoers.c:668 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "nažalost, vama nije dopušteno postavljanje tajmaut za naredbu" -#: plugins/sudoers/sudoers.c:676 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "korisniku nije dopušteno sačuvati okolinu" -#: plugins/sudoers/sudoers.c:678 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "vama nije dopušteno zadržati okolinu" -#: plugins/sudoers/sudoers.c:1053 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "pogreška pri postavljanju korisnikom specificiranih varijabli okruženja" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit se ne mora pokrenuti sa sudo" -#: plugins/sudoers/sudoers.c:1110 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "nije moguće pročitati %s" -#: plugins/sudoers/sudoers.c:1135 plugins/sudoers/visudo.c:485 -#: plugins/sudoers/visudo.c:764 -#, c-format -msgid "unable to stat %s" -msgstr "nije moguće dobiti status od %s" - -#: plugins/sudoers/sudoers.c:1139 plugins/sudoers/visudo.c:1058 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s nije obična datoteka" -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/timestamp.c:252 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "vlasnik %s je UID %u, a treba biti %u" -#: plugins/sudoers/sudoers.c:1147 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "%s smije svatko mijenjati/pisati" -#: plugins/sudoers/sudoers.c:1151 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "vlasnik %s je GID %u, a treba biti %u" -#: plugins/sudoers/sudoers.c:1184 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "samo root može koristiti „-c %s“" -#: plugins/sudoers/sudoers.c:1203 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "nepoznata klasa prijave %s" -#: plugins/sudoers/sudoers.c:1290 plugins/sudoers/sudoers.c:1305 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "nije moguće pronaći računalo %s" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "nevaljana opcija filtra: %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "nevaljano maksimalno vrijeme čekanja: %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "nevaljani faktor brzine: %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "nevaljani vremenski odmak %s" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/tajming: %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "Reproduciranje sudo sesije: %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "nije moguće postaviti TTY u direktni mȏd (da ne interpretira posebne znakove)" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "Upozorenje: vaš terminal je premaleni da pravilno reproducira dnevnik.\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "Veličina dnevnika je %d x %d, a veličina vašeg terminala %d x %d." -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "Reprodukcija je završena -- obnovite terminal pritiskom na bilo koju tipku." -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" -msgstr "višeznačni izraz „%s“" +msgstr "dvosmisleni izraz „%s“" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "nesparena „)“ u izrazu" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "nepoznati pojam za pretragu „%s“" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s zahtijeva argument" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "nije moguće raščlaniti datum „%s“" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "nesparena „(“ u izrazu" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" -msgstr "nedopušteni zaostali „or“" +msgstr "nelegalni zaostali „or“" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" -msgstr "nedopušteni zaostali „!“" +msgstr "nelegalni zaostali „!“" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" -msgstr "nepoznata vrsta za pretragu %d" +msgstr "nepoznati tip za pretragu %d" -#: plugins/sudoers/sudoreplay.c:1651 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "uporaba: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" -#: plugins/sudoers/sudoreplay.c:1654 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "uporaba: %s [-h] [-d direktorij] -l [izraz za pretragu]\n" -#: plugins/sudoers/sudoreplay.c:1663 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3436,7 +3523,7 @@ msgstr "" "%s - reproducira dnevnike sudo sesija\n" "\n" -#: plugins/sudoers/sudoreplay.c:1665 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3454,8 +3541,8 @@ msgstr "" "\n" "Options:\n" " -d, --directory=dir navedite direktorij dir za dnevnike sesija\n" -" -f, --filter=filter navedite (filter) vrstu/vrste U/I koje treba pokazati\n" -" -h, --help pokaže ovu pomoć i iziđe\n" +" -f, --filter=filter navedite (filter) tip/tipove U/I koje treba pokazati\n" +" -h, --help pokaže poruku s pomoći i iziđe\n" " -l, --list popis dostupnih ID-ova sjednica koji se podudaraju\n" " s neobveznim izrazom za pretragu\n" " -m, --max-wait=num čekati ne više od num sekundi između događaja\n" @@ -3483,7 +3570,7 @@ msgid "" "Command denied" msgstr "" "\n" -"Naredba nije dopuštena." +"Naredba nije dopuštena" #: plugins/sudoers/testsudoers.c:348 msgid "" @@ -3491,129 +3578,124 @@ msgid "" "Command unmatched" msgstr "" "\n" -"Naredba nije prepoznata." +"Naredba nije prepoznata" -#: plugins/sudoers/timestamp.c:260 -#, c-format -msgid "%s is group writable" -msgstr "%s članovi grupe mogu mijenjati/pisati" - -#: plugins/sudoers/timestamp.c:328 plugins/sudoers/timestamp.c:663 +#: plugins/sudoers/timestamp.c:354 plugins/sudoers/timestamp.c:693 #, c-format msgid "unable to truncate time stamp file to %lld bytes" msgstr "nije moguće skratiti datoteku s vremenskim podacima na %lld bajtova" -#: plugins/sudoers/timestamp.c:860 +#: plugins/sudoers/timestamp.c:890 msgid "ignoring time stamp from the future" msgstr "zanemarena vremenska oznaka iz budućnosti" -#: plugins/sudoers/timestamp.c:883 +#: plugins/sudoers/timestamp.c:913 #, c-format msgid "time stamp too far in the future: %20.20s" msgstr "vremenska oznaka je predaleko u budućnosti: %20.20s" -#: plugins/sudoers/timestamp.c:1005 +#: plugins/sudoers/timestamp.c:1042 #, c-format msgid "unable to lock time stamp file %s" msgstr "nije moguće zaključati datoteku s vremenskim oznakama %s" -#: plugins/sudoers/timestamp.c:1049 plugins/sudoers/timestamp.c:1069 -#, c-format -msgid "lecture status path too long: %s/%s" -msgstr "staza do lekcije je predugačka: %s/%s" - #: plugins/sudoers/toke_util.c:156 msgid "sudoedit should not be specified with a path" msgstr "sudoedit se ne smije specificirati sa stazom" -#: plugins/sudoers/visudo.c:249 +#: plugins/sudoers/visudo.c:254 msgid "the -x option will be removed in a future release" msgstr "opcija -x biti će uklonjena iz buduće inačice" -#: plugins/sudoers/visudo.c:251 +#: plugins/sudoers/visudo.c:256 msgid "please consider using the cvtsudoers utility instead" msgstr "molimo da umjesto toga pokušate rabiti cvtsudoers uslužni program" -#: plugins/sudoers/visudo.c:306 plugins/sudoers/visudo.c:692 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "pritisnite return/enter za redigirati %s: " -#: plugins/sudoers/visudo.c:321 +#: plugins/sudoers/visudo.c:326 #, c-format msgid "contents of edit session left in %s" msgstr "sadržaj sesije uređivanja je ostavljen u %s" -#: plugins/sudoers/visudo.c:397 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "navedeni uređivač (%s) ne postoji" -#: plugins/sudoers/visudo.c:399 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "nijedan uređivač nije pronađen (editor path = %s)" -#: plugins/sudoers/visudo.c:505 plugins/sudoers/visudo.c:513 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 +#, c-format +msgid "unable to stat %s" +msgstr "nije moguće dobiti status od %s" + +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "greška pri pisanju" -#: plugins/sudoers/visudo.c:559 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "nije moguće dobiti status privremene datoteke (%s), %s nije promijenjena" -#: plugins/sudoers/visudo.c:566 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "privremena datoteka duljine nula (%s), %s nije promijenjena" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "greška uređivač (%s), %s nije promijenjena" -#: plugins/sudoers/visudo.c:594 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s nije promijenjeno" -#: plugins/sudoers/visudo.c:639 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "nije moguće ponovo otvoriti privremenu datoteku (%s), %s nije promijenjena." -#: plugins/sudoers/visudo.c:652 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "nije moguće razabrati privremenu datoteku (%s) -- nepoznata greška" -#: plugins/sudoers/visudo.c:738 plugins/sudoers/visudo.c:768 -#: plugins/sudoers/visudo.c:775 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "nije moguće postaviti (UID, GID) od %s na (%u, %u)" -#: plugins/sudoers/visudo.c:803 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s i %s nisu na istom datotečnom sustavu, koristi se mv za preimenovanje" -#: plugins/sudoers/visudo.c:814 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "naredba nije uspjela: „%s %s %s“, %s nije promijenjena" -#: plugins/sudoers/visudo.c:821 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "greška u preimenovanju %s, %s nije promijenjena" -#: plugins/sudoers/visudo.c:841 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "Što sada? " -#: plugins/sudoers/visudo.c:855 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3625,41 +3707,41 @@ msgstr "" " (x) završiti bez spremanja promjena u datoteku sudoers)\n" " (Q) prekinuti i spremiti promjene u datoteku sudoers (OPASNO!)\n" -#: plugins/sudoers/visudo.c:901 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "nije moguće pokrenuti %s" -#: plugins/sudoers/visudo.c:932 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: krivi vlasnik (UID, GID) a treba biti (%u, %u)\n" -#: plugins/sudoers/visudo.c:943 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: loša prava pristupa, trebala bi biti 0%o\n" -#: plugins/sudoers/visudo.c:991 plugins/sudoers/visudo.c:998 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s: raščlamba je uspjela\n" -#: plugins/sudoers/visudo.c:1017 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s je zauzeti, pokušajte ponovo kasnije" -#: plugins/sudoers/visudo.c:1021 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "Ipak redigirati? [y/N]" -#: plugins/sudoers/visudo.c:1117 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "Upozorenje: %s:%d:%d nekorišteni %s „%s“" -#: plugins/sudoers/visudo.c:1229 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3668,24 +3750,26 @@ msgstr "" "%s - sigurno redigira sudoers datoteku\n" "\n" -#: plugins/sudoers/visudo.c:1231 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" " -c, --check check-only mode\n" " -f, --file=sudoers specify sudoers file location\n" " -h, --help display help message and exit\n" +" -I, --no-includes do not edit include files\n" " -q, --quiet less verbose (quiet) syntax error messages\n" " -s, --strict strict syntax checking\n" " -V, --version display version information and exit\n" msgstr "" "\n" "Opcije:\n" -" -c, --check samo testira sudoers datoteku\n" -" -f, --file=sudoers navedite alternativnu lokaciju sudoers datoteke\n" -" -h, --help pokaže ovu pomoć i iziđe\n" +" -c, --check koristi samo testni način\n" +" -f, --file=sudoers specificira lokaciju sudoers datoteke\n" +" -h, --help pokaže poruku s pomoći i iziđe\n" +" -I, --no-includes uključene datoteke (include files) ne redigirati\n" " -q, --quite manje opširne (tihe) poruke grešaka u sintaksi\n" -" -s, --strick striktna testira sintaksu sudoers datoteke\n" +" -s, --strick striktni test sintakse sudoers datoteke\n" " -V, --version informira o inačici ovog programa i iziđe\n" #: toke.l:189 @@ -3712,14 +3796,26 @@ msgstr "nevaljani nastavak retka" msgid "invalid IPv6 address" msgstr "nevaljana IPv6 adresa" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "neočekivani prelom retka" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "previše razina uključivanja" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "vlasnik %s mora biti UID %d" + +#~ msgid "%s must only be writable by owner" +#~ msgstr "%s mora biti dostupan za pisanje samo vlasniku" + +#~ msgid "%s is group writable" +#~ msgstr "%s članovi grupe mogu mijenjati/pisati" + +#~ msgid "lecture status path too long: %s/%s" +#~ msgstr "staza do lekcije je predugačka: %s/%s" + #~ msgid "Error: %s:%d:%d: cycle in %s \"%s\"" #~ msgstr "Greška: %s:%d:%d: ciklus u %s „%s“" diff --git a/plugins/sudoers/po/ja.mo b/plugins/sudoers/po/ja.mo index 8d864ec042..d8e878b13e 100644 Binary files a/plugins/sudoers/po/ja.mo and b/plugins/sudoers/po/ja.mo differ diff --git a/plugins/sudoers/po/ja.po b/plugins/sudoers/po/ja.po index a90a09d43f..3145777c02 100644 --- a/plugins/sudoers/po/ja.po +++ b/plugins/sudoers/po/ja.po @@ -1,13 +1,13 @@ # Japanese messages for sudoers # This file is put in the public domain. # Yasuaki Taniguchi , 2011. -# Takeshi Hamasaki , 2012, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022. +# Takeshi Hamasaki , 2012, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023. msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.12b2\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-10 09:13-0600\n" -"PO-Revision-Date: 2022-10-15 08:41+0900\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-02-05 11:43+0900\n" "Last-Translator: Takeshi Hamasaki \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -20,7 +20,7 @@ msgstr "" "X-Generator: Poedit 2.4.2\n" "X-Poedit-SearchPath-0: .\n" -#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "構文エラー" @@ -51,73 +51,72 @@ msgstr "残念、また試してください。" #: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 #: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 #: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 -#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 -#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 -#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 -#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 -#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 -#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 -#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 -#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 -#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 -#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 -#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 -#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 -#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 -#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 -#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 -#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 -#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 -#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 -#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 -#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 -#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 -#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 -#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 -#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 -#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 -#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 -#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 -#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 -#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 -#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 -#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 -#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 -#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 -#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 -#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 -#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 -#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 -#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 -#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 -#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 -#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 -#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 -#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 -#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 -#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:52 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 +#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 +#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 +#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 +#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 +#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 +#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 +#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 +#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 +#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 +#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 +#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 +#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -128,67 +127,67 @@ msgstr "残念、また試してください。" #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 -#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 -#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 -#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 -#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 -#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 -#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 -#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 -#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 -#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 -#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 -#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 -#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 -#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 -#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 -#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 #: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 #: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 @@ -197,8 +196,8 @@ msgstr "残念、また試してください。" #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 #: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 -#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 -#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "メモリ割り当てを行えませんでした" @@ -235,15 +234,15 @@ msgstr "notbefore の値が無効です" msgid "invalid notafter value" msgstr "notafter の値が無効です" -#: gram.y:844 plugins/sudoers/policy.c:383 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "制限時間の値が大き過ぎます" -#: gram.y:846 plugins/sudoers/policy.c:385 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "時間制限値が無効です" -#: gram.y:967 plugins/sudoers/sudoers.c:1033 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "コマンド名が長すぎます" @@ -258,76 +257,75 @@ msgstr "%s:%d:%d: %s\n" msgid "Alias \"%s\" already defined" msgstr "別名 \"%s\" はすでに定義されています" -#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 -#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 -#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 -#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 -#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 -#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 -#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 -#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 -#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 -#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 -#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 -#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 -#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 -#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 -#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 -#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 -#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 -#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 -#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 -#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 -#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 -#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 -#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 -#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 -#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 -#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 -#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 -#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 -#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 -#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 -#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 -#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -340,80 +338,80 @@ msgstr "別名 \"%s\" はすでに定義されています" #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 -#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 -#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 -#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 -#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 -#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 -#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 -#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 -#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 -#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 -#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 -#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 -#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 -#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 -#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 -#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 -#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 -#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 #: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 #: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 @@ -422,68 +420,48 @@ msgstr "別名 \"%s\" はすでに定義されています" #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 #: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 #: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 -#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 -#: toke.l:1155 toke.l:1218 toke.l:1226 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 -#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 -#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 -#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "内部エラー、%s がオーバーフローしました" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "標準入力を複製できません: %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "%s を実行できません: %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "fork できません" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "fork できません: %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "パイプを開けません: %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (コマンド継続中) %s" #: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "無効な正規表現です \"%s\": %s" @@ -501,64 +479,64 @@ msgstr "JSON_ARRAY が大きすぎます" msgid "missing double quote in name" msgstr "名前に二重引用符がありません" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "JSON_OBJECT がありません" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "JSON_OBJECT を予期していたら、 %d でした" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "JSON スタックを使い切りました(最大 %u フレーム)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "オブジェクトは 名前:値 のベアである必要があります" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "値の間の分離記号がありません" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "余分な閉じ中括弧があります" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "予期せぬところに配列" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "余分な閉じ角括弧があります" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "予期せぬところに文字列" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "名前の後にコロンがありません" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "予期せぬところに真偽値" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "予期せぬところにNULL" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "予期せぬところに数値" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "構文解析エラー" @@ -597,14 +575,14 @@ msgstr "%s: runasグループ名フィールドがありません" msgid "%s exists but is not a directory (0%o)" msgstr "%s が存在しますがディレクトリではありません (0%o)" -#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 #: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "ディレクトリ %s を作成できません" -#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 -#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "%s のアクセス権限のモードを 0%o に変更できません" @@ -636,8 +614,8 @@ msgstr "%s: プロトコルエラー: %s の型としては間違っています msgid "%s: protocol error: NULL value found in %s" msgstr "%s: プロトコルエラー: %s に NULL値が入っています" -#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 -#: plugins/sudoers/policy.c:591 +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 msgid "unable to generate UUID" msgstr "uuid を生成できません" @@ -689,27 +667,27 @@ msgstr "iofd %d をフラッシュする際にエラーが発生しました: %s msgid "invalid I/O log %s: %s referenced but not present" msgstr "無効な I/O ログ %s: %s が参照されていますが存在しません" -#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s: 復元ポイントが見つかりません [%lld, %ld]" -#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 #: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 #: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 #: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 #: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 -#: plugins/sudoers/visudo.c:971 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "%s を開けません" #: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 -#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "%s/%s を開けません" @@ -719,7 +697,7 @@ msgstr "%s/%s を開けません" msgid "unable to copy %s/%s to %s/%s: %s" msgstr "%s/%s から %s/%s にコピーできません: %s" -#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "%s から %s に名前を変更できません" @@ -752,28 +730,28 @@ msgstr "サーバーメッセージが大き過ぎます: %zu" #: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 #: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 #: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 -#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 #: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 #: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 #: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 #: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 #: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 #: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 -#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 -#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 #: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 #: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 #: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 -#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 -#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 -#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 -#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 -#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "イベントをキューに追加できません" @@ -833,14 +811,14 @@ msgstr "無効な ChangeWindowSize" msgid "invalid CommandSuspend" msgstr "無効な CommandSuspend" -#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 #: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 -#: plugins/sudoers/log_client.c:1583 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "%s を伸長できません (長さ %zu )" -#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 #: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" @@ -876,8 +854,8 @@ msgstr "%s からの EOF が適切な TLS 通信の終了なしに現れまし msgid "client message too large: %zu" msgstr "クライアントメッセージが大き過ぎます: %zu" -#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 -#: logsrvd/logsrvd_journal.c:257 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "クライアントメッセージが大き過ぎます" @@ -942,23 +920,23 @@ msgid "invalid random drop value: %s" msgstr "無効な乱数ドロップ値です: %s" #: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 #: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s バージョン %s\n" -#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 -#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "不明なユーザー %s" #: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" @@ -1032,7 +1010,7 @@ msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] 適合しないキー: %s" #: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1029 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "ログファイル %s を開けません" @@ -1045,49 +1023,49 @@ msgstr "サーバーTLSコンテキストを初期化できません" msgid "unable to initialize relay TLS context" msgstr "リレーTLSコンテキストを初期化できません" -#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 -#: logsrvd/logsrvd_journal.c:426 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "ジャーナルファイルを作成できません" -#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 -#: plugins/sudoers/visudo.c:1026 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "%s をロックできません" -#: logsrvd/logsrvd_journal.c:153 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "ジャーナルファイルをロックできません" -#: logsrvd/logsrvd_journal.c:161 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "ジャーナルファイルを開けません" -#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 -#: logsrvd/logsrvd_journal.c:462 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "ジャーナルファイルへ書き込むことができません" -#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "ジャーナルファイルの名前を変更できません" -#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 -#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "ジャーナルファイルの予期せぬところにEOF" -#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 -#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "ジャーナルファイルの読み込みエラー" -#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "無効なジャーナルファイル、再スタートできません" -#: logsrvd/logsrvd_journal.c:440 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "[%lld, %ld] が見つかりません、 ジャーナルファイル %s で探索中" @@ -1145,7 +1123,7 @@ msgstr "タイミングバッファーを書式整形できません、長さ %d #: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 #: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 -#: plugins/sudoers/sudoreplay.c:351 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" @@ -1180,7 +1158,7 @@ msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: 無効な ServerHello です、server_id がありません" #: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 -#: plugins/sudoers/log_client.c:1469 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "無効な ServerHello です" @@ -1293,35 +1271,35 @@ msgstr "警告: %s:%s を参照できません: %s" msgid "unable to get server IP addr" msgstr "サーバーのIPアドレスを取得できません" -#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "%s/%s から読み込むことができません: %s" -#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 -#: plugins/sudoers/iolog.c:1026 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "予期しない I/O イベント %d" #: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 -#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 -#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: 予期しない状態 %d" -#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "サーバからエラーメッセージを受け取りました: %s" -#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "サーバから中断メッセージを受け取りました: %s" -#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: 予期しない type_case の値 %d" @@ -1330,7 +1308,7 @@ msgstr "%s: 予期しない type_case の値 %d" msgid "timeout reading from server" msgstr "サーバーからの読み込みがタイムアウト" -#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "ホスト名が証明書と一致しません" @@ -1338,7 +1316,7 @@ msgstr "ホスト名が証明書と一致しません" msgid "premature EOF" msgstr "早すぎるファイル終端 (EOF)" -#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "サーバーメッセージが大き過ぎます: %u" @@ -1425,10 +1403,10 @@ msgstr "プロトコルの最小バージョンを TLS 1.2 に設定できませ #: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 #: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 -#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 -#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 -#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 -#: plugins/sudoers/policy.c:124 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "時刻を取得できません" @@ -1582,11 +1560,11 @@ msgstr "SecurID サーバーに接続できません" msgid "User ID locked for SecurID Authentication" msgstr "SecurID 認証のユーザーIDがロックされています" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "SecurID 用のユーザー名の長さが無効です" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "SecurID 用の認証ハンドルが無効です" @@ -1594,11 +1572,11 @@ msgstr "SecurID 用の認証ハンドルが無効です" msgid "SecurID communication failed" msgstr "SecurID 通信に失敗しました" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "不明な SecurID エラーです" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "SecurID 用のパスコード長が無効です" @@ -1668,9 +1646,15 @@ msgstr "" " #3) 大いなる力には大いなる責任が伴うこと。\n" "\n" -#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 -#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "セキュリティー上の理由で、あなたがタイプしたパスワードは表示しません。\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "不明な uid %u" @@ -1727,8 +1711,7 @@ msgstr "%s: 入力ファイルと出力ファイルは別である必要があ #: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 #: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 -#: plugins/sudoers/visudo.c:975 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "sudoers のデフォルト値を初期化できません" @@ -1757,12 +1740,12 @@ msgstr "無効な抑制の指定です: %s" msgid "invalid filter: %s" msgstr "無効なフィルターです: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "%s ファイルの構文解析に失敗しました。不明なエラーです" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 #: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" @@ -1817,17 +1800,36 @@ msgstr "" " -s, --suppress=sections いくつかのセクションの出力を抑制する\n" " -V, --version バージョン情報を表示して終了する" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "内部エラー、%s がオーバーフローしました" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "GMT 時刻を取得できません" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "タイムスタンプを書式整形できません" @@ -2642,8 +2644,8 @@ msgstr "0x%x はオプション \"%s\" のデフォルトタイプとして無 msgid "value \"%s\" is invalid for option \"%s\"" msgstr "\"%s\" はオプション \"%s\" の値としては無効です" -#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 -#: plugins/sudoers/policy.c:217 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "\"%s\" のパス名が長すぎます" @@ -2658,15 +2660,24 @@ msgstr "\"%s\" の値は '/', '~', または '*' で開始しなければいけ msgid "values for \"%s\" must start with a '/'" msgstr "\"%s\" の値は '/' で開始しなければいけません" +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "エディターを無視します: %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "エディターの引数には \"--\" を含むことができません" + #: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: envp が破損しています。長さが合いません" -#: plugins/sudoers/env.c:1109 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "環境を再構築できません" -#: plugins/sudoers/env.c:1183 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "残念ですが、あなたは次の環境変数を設定することを許可されていません: %s" @@ -2681,27 +2692,17 @@ msgstr "サポートされてない 認証方式 %d です: %s" msgid "%s: read error" msgstr "%s: 読み込みエラー" -#: plugins/sudoers/group_plugin.c:169 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s の所有者は uid %d でなければいけません" - -#: plugins/sudoers/group_plugin.c:173 -#, c-format -msgid "%s must only be writable by owner" -msgstr "%s は所有者のみ書き込み可能でなければいけません" - -#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "%s をロードできません: %su" -#: plugins/sudoers/group_plugin.c:197 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "%s 内にシンボル \"group_plugin\" がありません" -#: plugins/sudoers/group_plugin.c:202 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: 互換性のないグループプラグインメジャーバージョン %d です。予期されるのは %d です" @@ -2724,10 +2725,10 @@ msgstr "ローカル IP アドレスとネットマスクの組:\n" msgid "unable to update sequence file" msgstr "シーケンスファイルを更新できません" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 -#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 -#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 -#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "%s へ I/O ログを書き込むことができません" @@ -2737,20 +2738,20 @@ msgstr "%s へ I/O ログを書き込むことができません" msgid "unable to create %s/%s" msgstr "%s/%s を作成できません" -#: plugins/sudoers/iolog.c:957 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: 内部エラー、I/O イベント %d のログファイルを開けません" -#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 -#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 -#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "時刻を読み込むことができません" -#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 -#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: 内部エラー、無効なシグナル %d" @@ -2769,16 +2770,16 @@ msgstr "SSL 証明書と鍵データベースを初期化できません: %s" msgid "you must set TLS_CERT in %s to use SSL" msgstr "SSL を使用するためには %s の中の TLS_CERT を設定する必要があります" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "LDAP を初期化できません: %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls が指定されていますが、LDAP ライブラリが ldap_start_tls_s() または ldap_start_tls_s_np() をサポートしていません" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "無効な sudoOrder 属性です: %s" @@ -2819,7 +2820,7 @@ msgid "unable to send audit message" msgstr "監査メッセージを送ることができません" #: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 -#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "イベントループでエラーが発生しました" @@ -2861,20 +2862,20 @@ msgstr "TLS 初期化が成功しませんでした" msgid "TLS handshake was unsuccessful" msgstr "TLS ハンドシェイクが成功しませんでした" -#: plugins/sudoers/log_client.c:1211 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: 内部エラー、無効な終了コード %d" -#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "ログサーバーへの接続が失われました" -#: plugins/sudoers/log_client.c:1841 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "書き込みバッファが失われました" -#: plugins/sudoers/log_client.c:1995 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "ログサーバーに接続できません" @@ -2914,15 +2915,15 @@ msgstr "残念ですが、ユーザー %s は'%s%s%s' を %s%s%s として %s msgid "This incident has been reported to the administrator.\n" msgstr "この出来事は管理者宛てに報告されました。\n" -#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 -#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 -#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 -#: plugins/sudoers/sudoers.c:807 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s: コマンドが見つかりません" -#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2931,30 +2932,30 @@ msgstr "" "'.' 内で見つかった \"%1$s\" を無視します\n" "この \"%3$s\" を実行したい場合は \"sudo ./%2$s\" を使用してください。" -#: plugins/sudoers/logging.c:387 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" msgstr[0] "%u 回パスワード試行を間違えました" -#: plugins/sudoers/logging.c:477 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "認証失敗" -#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "パスワードが必要です" -#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "sudoers を構文解析する時に起きた問題" -#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1062 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "%s へログを書き込むことができません" @@ -2969,7 +2970,7 @@ msgstr "%s (%s) のハッシュの長さが %zu で、 予期される %zu で msgid "digest for %s (%s) is not in %s form" msgstr "%s (%s) のハッシュは %s 形式ではありません" -#: plugins/sudoers/parse.c:591 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2978,7 +2979,7 @@ msgstr "" "\n" "LDAP 役割: %s\n" -#: plugins/sudoers/parse.c:594 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2986,38 +2987,38 @@ msgstr "" "\n" "sudoers 項目:\n" -#: plugins/sudoers/parse.c:596 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " RunAsUsers: " -#: plugins/sudoers/parse.c:611 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " RunAsGroups: " -#: plugins/sudoers/parse.c:621 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " オプション: " -#: plugins/sudoers/parse.c:685 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " コマンド:\n" -#: plugins/sudoers/parse.c:876 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "既定値のエントリと照合中 (ユーザー名 %s) (ホスト名 %s):\n" -#: plugins/sudoers/parse.c:894 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "ユーザー %s 用の Runas およびコマンド特有のデフォルト:\n" -#: plugins/sudoers/parse.c:912 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "ユーザー %s は %s 上で コマンドを実行できます\n" -#: plugins/sudoers/parse.c:927 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "ユーザー %s は %s 上で sudo を実行することを許可されていません。\n" @@ -3032,64 +3033,64 @@ msgstr "不完全な sudoRole: cn: %s を無視します" msgid "invalid LDIF attribute: %s" msgstr "無効な LDIF 属性です: %s" -#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "無効な %.*s が sudo のフロントエンドで設定されています" -#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "ネットワークのアドレスリストを解析できません" -#: plugins/sudoers/policy.c:526 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "ユーザー名が sudo のフロントエンドで設定されていません" -#: plugins/sudoers/policy.c:530 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "ユーザーIDが sudo のフロントエンドで設定されていません" -#: plugins/sudoers/policy.c:534 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "グループIDが sudo のフロントエンドで設定されていません" -#: plugins/sudoers/policy.c:538 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "ホスト名が sudo のフロントエンドで設定されていません" -#: plugins/sudoers/policy.c:730 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "無効な作業ディレクトリ: %s" -#: plugins/sudoers/policy.c:914 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "無効な chroot ディレクトリ: %s" -#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 -#: plugins/sudoers/visudo.c:902 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "%s を実行できません" -#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 -#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: 無効なモードフラグが sudo のフロントエンドで指定されています: 0x%x" -#: plugins/sudoers/policy.c:1292 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "sudoers ポリシープラグイン バージョン %s\n" -#: plugins/sudoers/policy.c:1294 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "sudoers ファイル文法バージョン %d\n" -#: plugins/sudoers/policy.c:1298 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3098,27 +3099,27 @@ msgstr "" "\n" "sudoers のパス: %s\n" -#: plugins/sudoers/policy.c:1301 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "nsswitch のパス: %s\n" -#: plugins/sudoers/policy.c:1303 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "ldap.conf のパス: %s\n" -#: plugins/sudoers/policy.c:1304 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "ldap.secret のパス: %s\n" -#: plugins/sudoers/policy.c:1337 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "タイプ %d のフックを登録できません (バージョン %d.%d)" -#: plugins/sudoers/policy.c:1355 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "タイプ %d のフックを登録解除できません (バージョン %d.%d)" @@ -3165,24 +3166,24 @@ msgstr "グループ %s をキャッシュできません" msgid "unable to cache group %s, already exists" msgstr "グループ %s をキャッシュできません。すでに存在します" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "グループリスト %s をキャッシュできません。すでに存在します" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "グループリスト %s をキャッシュできません" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "%s のグループを解析できません" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "%s のグループIDを解析できません" @@ -3294,213 +3295,217 @@ msgstr "コマンドが指定されていません" msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers の指定により root が sudo を使用することは禁止されています" -#: plugins/sudoers/sudoers.c:476 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "ユーザーが closefrom 制限をオーバーライドすることは許されていません" -#: plugins/sudoers/sudoers.c:477 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "-C オプションを使用することは許可されていません" -#: plugins/sudoers/sudoers.c:537 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "タイムスタンプの所有者 (%s): そのようなユーザーはありません" -#: plugins/sudoers/sudoers.c:552 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "tty がありません" -#: plugins/sudoers/sudoers.c:553 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "残念ですが、sudo を実行するには tty が必要です" -#: plugins/sudoers/sudoers.c:560 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "ユーザー %s には無効な シェル: %s" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "コマンドがカレントディレクトリにあります" -#: plugins/sudoers/sudoers.c:658 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "\"cd\" はシェルの内蔵コマンドで、直接実行できません。" -#: plugins/sudoers/sudoers.c:660 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "権限を昇格したシェルを実行するために -s オプションが使われることがあります。" -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "コマンドを実行するディレクトリを指定するために -D オプションを使うことができます。" -#: plugins/sudoers/sudoers.c:671 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "ユーザーはコマンド実行の制限時間を設定することを許可されていません" -#: plugins/sudoers/sudoers.c:673 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "残念ですが、あなたはコマンド実行の制限時間を設定することを許可されていません" -#: plugins/sudoers/sudoers.c:681 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "ユーザーは環境変数を保存することを許可されていません" -#: plugins/sudoers/sudoers.c:683 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "残念ですが、あなたは環境変数を保存することを許可されていません" -#: plugins/sudoers/sudoers.c:1073 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "ユーザーが指定した環境変数の設定でエラーです" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit の実行に sudo を使用する必要はありません" -#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "%s を読み込めません" -#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s は通常ファイルではありません" -#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s はユーザーID %u によって所有されています。これは %u であるべきです" -#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "%s は誰でも書き込み可能です" -#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s のグループIDは %u になっています。これは %u であるべきです" -#: plugins/sudoers/sudoers.c:1194 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "root のみ \"-c %s\" を使用できます" -#: plugins/sudoers/sudoers.c:1213 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "不明なログインクラス %s" -#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "ホスト %s の名前解決ができません" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "無効なフィルターオプションです: %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "無効な最大待機時間です: %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "無効な speed_factor の値です: %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "無効な時間オフセット %s" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/タイミング: %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "再生する sudo セッション: %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "tty を raw モードに設定できません" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "警告: ログをきちんとリプレイするには端末が小さすぎます。\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "ログの大きさは %d x %d で、端末の大きさは %d x %d です。" -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "再生が終了しました、何かキーを押すと端末を回復します。" -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "曖昧な式 \"%s です\"" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "式内で ')' が不一致です" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "不明な検索語 \"%s\" です" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s は引数が必要です" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "日付 \"%s\" を構文解析できませんでした" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "式内で '(' が不一致です" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "末尾に \"or\" を配置できません" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "末尾に \"!\" を配置できません" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "未知の検索タイプ %d" -#: plugins/sudoers/sudoreplay.c:1650 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "使用法: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" -#: plugins/sudoers/sudoreplay.c:1652 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "使用法: %s [-h] [-d dir] -l [search expression]\n" -#: plugins/sudoers/sudoreplay.c:1666 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3509,7 +3514,7 @@ msgstr "" "%s - sudo セッションログをリプレイします\n" "\n" -#: plugins/sudoers/sudoreplay.c:1668 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3596,7 +3601,7 @@ msgstr "-x オプションは将来のリリースでは削除されます" msgid "please consider using the cvtsudoers utility instead" msgstr "cvtsudoers ユーティリティーを代わりに使用することを検討してください" -#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "%s を編集するためにリターンを押してください: " @@ -3606,81 +3611,81 @@ msgstr "%s を編集するためにリターンを押してください: " msgid "contents of edit session left in %s" msgstr "編集セッションの内容が %s 内に残っています" -#: plugins/sudoers/visudo.c:402 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "指定したエディター (%s) が存在しません" -#: plugins/sudoers/visudo.c:404 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "エディターが見つかりません (エディターのパス = %s)" -#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 #, c-format msgid "unable to stat %s" msgstr "%s の状態取得 (stat) ができません" -#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "書き込みエラーです" -#: plugins/sudoers/visudo.c:565 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "一時ファイル (%s) の状態取得 (stat) ができません。%s は変更されません" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "一時ファイル (%s) の大きさが 0 です。%s は変更されません" -#: plugins/sudoers/visudo.c:578 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "エディター (%s) が異常終了しました。%s は変更されません" -#: plugins/sudoers/visudo.c:600 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s は変更されません" -#: plugins/sudoers/visudo.c:645 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "一時ファイル (%s) を再度開くことができません。%s は変更されません。" -#: plugins/sudoers/visudo.c:658 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "一時ファイル (%s) の構文解析ができません。不明なエラーです" -#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "%s の (ユーザーID, グループID) を (%u, %u) に設定できません" -#: plugins/sudoers/visudo.c:809 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s と %s は同じファイルシステム上にありません。名前を変更するために mv を使用しています" -#: plugins/sudoers/visudo.c:820 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "コマンドの失敗です: '%s %s %s'。%s は変更されません" -#: plugins/sudoers/visudo.c:827 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "%s の名前変更に失敗しました。%s は変更されません" -#: plugins/sudoers/visudo.c:847 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "次は何でしょうか? " -#: plugins/sudoers/visudo.c:861 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3692,41 +3697,41 @@ msgstr "" " x -- sudoers ファイルへの変更を保存せずに終了します\n" " Q -- sudoers ファイルへの変更を保存して終了します (*危険です!*)\n" -#: plugins/sudoers/visudo.c:907 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "%s を実行できません" -#: plugins/sudoers/visudo.c:938 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: 所有権に誤りがあります。(ユーザーID, グループID) は (%u, %u) であるべきです\n" -#: plugins/sudoers/visudo.c:949 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: アクセス権限に誤りがあります。モードは 0%o であるべきです\n" -#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s: 正しく構文解析されました\n" -#: plugins/sudoers/visudo.c:1023 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s がビジー状態です。後で再試行してください" -#: plugins/sudoers/visudo.c:1027 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "それでも編集しますか? [y/N]" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "警告: %s:%d:%d: エイリアス %s \"%s\" は使用されていません" -#: plugins/sudoers/visudo.c:1240 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3735,7 +3740,7 @@ msgstr "" "%s - sudoers ファイルを安全に編集する\n" "\n" -#: plugins/sudoers/visudo.c:1242 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" @@ -3781,14 +3786,20 @@ msgstr "無効な行の継続" msgid "invalid IPv6 address" msgstr "無効な IPv6 アドレス" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "文字列の予期せぬところに改行" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "インクルードの階層が大きすぎます" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s の所有者は uid %d でなければいけません" + +#~ msgid "%s must only be writable by owner" +#~ msgstr "%s は所有者のみ書き込み可能でなければいけません" + #~ msgid "%s is group writable" #~ msgstr "%s はグループのメンバーによる書き込みが可能です" diff --git a/plugins/sudoers/po/ka.mo b/plugins/sudoers/po/ka.mo new file mode 100644 index 0000000000..e163be7b7a Binary files /dev/null and b/plugins/sudoers/po/ka.mo differ diff --git a/plugins/sudoers/po/ka.po b/plugins/sudoers/po/ka.po new file mode 100644 index 0000000000..cc3fa09c1a --- /dev/null +++ b/plugins/sudoers/po/ka.po @@ -0,0 +1,3715 @@ +# Portable object template file for the sudoers plugin +# This file is put in the public domain. +# Todd C. Miller , 2011-2018 +# +msgid "" +msgstr "" +"Project-Id-Version: sudoers 1.9.12b2\n" +"Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" +"POT-Creation-Date: 2022-10-10 09:13-0600\n" +"PO-Revision-Date: 2022-11-19 07:22+0100\n" +"Last-Translator: Temuri Doghonadze \n" +"Language-Team: Georgian <(nothing)>\n" +"Language: ka\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.2\n" + +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +msgid "syntax error" +msgstr "სინტაქსური შეცდომა" + +#: confstr.sh:2 +msgid "%p's password: " +msgstr "%p-ის პაროლი: " + +#: confstr.sh:3 +msgid "[sudo] password for %p: " +msgstr "[sudo] პაროლი %p-სთვის: " + +#: confstr.sh:4 +msgid "Password: " +msgstr "პაროლი: " + +#: confstr.sh:5 +msgid "*** SECURITY information for %h ***" +msgstr "*** უსაფრთხოების ინფორმაცია %h -სთვის***" + +#: confstr.sh:6 +msgid "Sorry, try again." +msgstr "თავიდან სცადეთ." + +#: gram.y:237 gram.y:304 gram.y:313 gram.y:322 gram.y:332 gram.y:342 +#: gram.y:366 gram.y:393 gram.y:402 gram.y:410 gram.y:419 gram.y:428 +#: gram.y:502 gram.y:512 gram.y:524 gram.y:572 gram.y:581 gram.y:590 +#: gram.y:599 gram.y:731 gram.y:739 gram.y:750 gram.y:762 gram.y:781 +#: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 +#: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 +#: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 +#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 +#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 +#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 +#: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 +#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 +#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 +#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 +#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 +#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 +#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 +#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 +#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 +#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 +#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 +#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 +#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 +#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 +#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 +#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 +#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 +#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 +#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 +#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 +#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 +#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 +#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 +#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 +#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 +#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 +#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 +#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 +#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 +#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 +#: plugins/sudoers/cvtsudoers_merge.c:52 +#: plugins/sudoers/cvtsudoers_merge.c:353 +#: plugins/sudoers/cvtsudoers_merge.c:399 +#: plugins/sudoers/cvtsudoers_merge.c:446 +#: plugins/sudoers/cvtsudoers_merge.c:467 +#: plugins/sudoers/cvtsudoers_merge.c:553 +#: plugins/sudoers/cvtsudoers_merge.c:564 +#: plugins/sudoers/cvtsudoers_merge.c:633 +#: plugins/sudoers/cvtsudoers_merge.c:1158 +#: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 +#: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 +#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 +#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 +#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 +#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 +#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 +#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 +#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 +#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 +#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 +#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 +#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 +#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 +#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 +#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 +#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 +#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 +#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 +#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 +#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 +#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 +#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 +#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 +#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 +#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 +#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 +#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 +#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 +#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 +#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 +#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 +#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 +#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 +#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 +#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 +#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 +#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 +#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 +#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 +#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 +#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 +#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 +#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 +#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 +#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 +#: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 +#: plugins/sudoers/timestamp.c:1017 plugins/sudoers/timestamp.c:1146 +#: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 +#: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 +#: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 +#: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 +#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +msgid "unable to allocate memory" +msgstr "მეხსიერების გამოყოფის შეცდომა" + +#: gram.y:623 +msgid "a digest requires a path name" +msgstr "დაიჯესტისთვის ბილიკის სახელი აუცილებელია" + +#: gram.y:645 +msgid "values for \"CWD\" must start with a '/', '~', or '*'" +msgstr "\"CWD\" -ის მნიშვნელობები '/'-ით, '~'-ით ან '*'-ით უნდა იწყებოდეს" + +#: gram.y:651 +msgid "\"CWD\" path too long" +msgstr "\"CWD\" -ის ბილიკი ძალიან გრძელია" + +#: gram.y:661 +msgid "values for \"CHROOT\" must start with a '/', '~', or '*'" +msgstr "" + +#: gram.y:667 +msgid "\"CHROOT\" path too long" +msgstr "\"CHROOT\" -ის ბილიკი მეტისმეტად გრძელია" + +#: gram.y:802 +#, c-format +msgid "syntax error, reserved word %s used as an alias name" +msgstr "სინტაქსის შეცდომა, დაჯავშნილი სიტყვა %s მეტსახელადაა გამოყენებული" + +#: gram.y:825 +msgid "invalid notbefore value" +msgstr "notbefore -ის არასწორი მნიშვნელობა" + +#: gram.y:834 +msgid "invalid notafter value" +msgstr "notafter -ის არასწორი მნიშვნელობა" + +#: gram.y:844 plugins/sudoers/policy.c:383 +msgid "timeout value too large" +msgstr "მოლოდინის დროის მნიშვნელობა ძალიან დიდია" + +#: gram.y:846 plugins/sudoers/policy.c:385 +msgid "invalid timeout value" +msgstr "მოლოდინის დროის არასწორი მნიშვნელობა" + +#: gram.y:967 plugins/sudoers/sudoers.c:1033 +msgid "command too long" +msgstr "ბრძანება ძალიან გრძელია" + +#: gram.y:1224 plugins/sudoers/check_aliases.c:96 +#: plugins/sudoers/defaults.c:1276 +#, c-format +msgid "%s:%d:%d: %s\n" +msgstr "%s:%d:%d: %s\n" + +#: gram.y:1278 +#, c-format +msgid "Alias \"%s\" already defined" +msgstr "მეტსახელი \"%s\" უკვე აღწერილია" + +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 +#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 +#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 +#: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 +#: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 +#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 +#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 +#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 +#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 +#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 +#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 +#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 +#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 +#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 +#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 +#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 +#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 +#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 +#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 +#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 +#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 +#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 +#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 +#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 +#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 +#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 +#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 +#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 +#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 +#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 +#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 +#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 +#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 +#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 +#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 +#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 +#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 +#: plugins/sudoers/cvtsudoers_merge.c:51 +#: plugins/sudoers/cvtsudoers_merge.c:353 +#: plugins/sudoers/cvtsudoers_merge.c:399 +#: plugins/sudoers/cvtsudoers_merge.c:445 +#: plugins/sudoers/cvtsudoers_merge.c:466 +#: plugins/sudoers/cvtsudoers_merge.c:553 +#: plugins/sudoers/cvtsudoers_merge.c:561 +#: plugins/sudoers/cvtsudoers_merge.c:564 +#: plugins/sudoers/cvtsudoers_merge.c:630 +#: plugins/sudoers/cvtsudoers_merge.c:633 +#: plugins/sudoers/cvtsudoers_merge.c:1157 +#: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 +#: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 +#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 +#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 +#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 +#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 +#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 +#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 +#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 +#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 +#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 +#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 +#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 +#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 +#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 +#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 +#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 +#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 +#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 +#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 +#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 +#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 +#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 +#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 +#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 +#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 +#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 +#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 +#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 +#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 +#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 +#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 +#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 +#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 +#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 +#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 +#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 +#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 +#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 +#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 +#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 +#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 +#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 +#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 +#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 +#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 +#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 +#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 +#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 +#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 +#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 +#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 +#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 +#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 +#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 +#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 +#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 +#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 +#: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 +#: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 +#: plugins/sudoers/timestamp.c:1146 plugins/sudoers/toke_util.c:78 +#: plugins/sudoers/toke_util.c:106 plugins/sudoers/toke_util.c:131 +#: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 +#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 +#: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 +#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 +#: toke.l:1155 toke.l:1218 toke.l:1226 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 +#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 +#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 +#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 +#: toke.l:987 toke.l:1189 +#, c-format +msgid "internal error, %s overflow" +msgstr "შიდა შეცდომა: %s-ის გადავსება" + +#: lib/eventlog/eventlog.c:373 +#, c-format +msgid "unable to dup stdin: %m" +msgstr "stdin-ის დუბლირების შეცდომა: %m" + +#: lib/eventlog/eventlog.c:415 +#, c-format +msgid "unable to execute %s: %m" +msgstr "%s-ის შესრულების შეცდომა: %m" + +#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +msgid "unable to fork" +msgstr "პროცესის განტოტვის შეცდომა" + +#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#, c-format +msgid "unable to fork: %m" +msgstr "განტოტვის შეცდომა: %m" + +#: lib/eventlog/eventlog.c:528 +#, c-format +msgid "unable to open pipe: %m" +msgstr "ფაიფის გახსნის შეცდომა: %m" + +#: lib/eventlog/eventlog.c:1030 +#, c-format +msgid "%8s : %s" +msgstr "%8s : %s" + +#: lib/eventlog/eventlog.c:1059 +#, c-format +msgid "%8s : (command continued) %s" +msgstr "%8s : (ბრძანება გაგრძელდა) %s" + +#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 +#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#, c-format +msgid "invalid regular expression \"%s\": %s" +msgstr "არასწორი რეგულარული გამოსახულება (%s): %s" + +#: lib/iolog/iolog_json.c:140 +#, c-format +msgid "expected JSON_STRING, got %d" +msgstr "მოველოდი JSON_STRING, მივიღე %d" + +#: lib/iolog/iolog_json.c:145 +msgid "JSON_ARRAY too large" +msgstr "JSON_ARRAY ძალიან დიდია" + +#: lib/iolog/iolog_json.c:404 +msgid "missing double quote in name" +msgstr "სახელში ორმაგი ბრჭყალი აკლია" + +#: lib/iolog/iolog_json.c:501 +msgid "missing JSON_OBJECT" +msgstr "\"JSON_OBJECT\" ვერ ვიპოვე" + +#: lib/iolog/iolog_json.c:505 +#, c-format +msgid "expected JSON_OBJECT, got %d" +msgstr "მოველოდი JSON_OBJECT, მივიღე %d" + +#: lib/iolog/iolog_json.c:661 +#, c-format +msgid "json stack exhausted (max %u frames)" +msgstr "json-ის სტეკი გახარჯულია (მაქს %u კადრი)" + +#: lib/iolog/iolog_json.c:735 +msgid "objects must consist of name:value pairs" +msgstr "ობიექტები სახელი:მნიშვნელობის წყვილებისგან უნდა შედგებოდეს" + +#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 +#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 +#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 +#: lib/iolog/iolog_json.c:903 +msgid "missing separator between values" +msgstr "მნიშვნელობებს შორის გამყოფი მითითებული არაა" + +#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +msgid "unmatched close brace" +msgstr "დამხურავ ფიგურულ ფრჩხილს შესაბამისი არ გააჩნია" + +#: lib/iolog/iolog_json.c:766 +msgid "unexpected array" +msgstr "მოულოდნელი მასივი" + +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +msgid "unmatched close bracket" +msgstr "დამხურავ ფრჩხილს შესაბამისი არ გააჩნია" + +#: lib/iolog/iolog_json.c:797 +msgid "unexpected string" +msgstr "მოულოდნელი სტრიქონი" + +#: lib/iolog/iolog_json.c:808 +msgid "missing colon after name" +msgstr "სახელის შემდეგ სვეტი აღმოჩენილი არაა" + +#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +msgid "unexpected boolean" +msgstr "მოულოდნელი ლოგიკური მნიშვნელობა" + +#: lib/iolog/iolog_json.c:873 +msgid "unexpected null" +msgstr "მოულოდნელი ნულოვანი მნიშვნელობა" + +#: lib/iolog/iolog_json.c:894 +msgid "unexpected number" +msgstr "მოულოდნელი რიცხვი" + +#: lib/iolog/iolog_json.c:941 +msgid "parse error" +msgstr "დამუშავების შეცდომა" + +#: lib/iolog/iolog_legacy.c:65 +#, c-format +msgid "%s: invalid log file" +msgstr "%s: არასწორი ჟურნალის ფაილი" + +#: lib/iolog/iolog_legacy.c:83 +#, c-format +msgid "%s: time stamp field is missing" +msgstr "%s: დროის შტამპის ველი აკლია" + +#: lib/iolog/iolog_legacy.c:89 +#, c-format +msgid "%s: time stamp %s: %s" +msgstr "%s: დროის შტამპი %s: %s" + +#: lib/iolog/iolog_legacy.c:96 +#, c-format +msgid "%s: user field is missing" +msgstr "%s: მომხმარებლის ველის გარეშე" + +#: lib/iolog/iolog_legacy.c:107 +#, c-format +msgid "%s: runas user field is missing" +msgstr "%s: runas მომხმარებლის ველის გარეშე" + +#: lib/iolog/iolog_legacy.c:118 +#, c-format +msgid "%s: runas group field is missing" +msgstr "%s: runas ჯგუფის ველის გარეშე" + +#: lib/iolog/iolog_mkdirs.c:89 +#, c-format +msgid "%s exists but is not a directory (0%o)" +msgstr "%s არსებობს, მაგრამ საქაღალდეს არ წარმოადგენს (0%o)" + +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 +#, c-format +msgid "unable to mkdir %s" +msgstr "mkdir %s-ის შეცდომა" + +#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 +#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#, c-format +msgid "unable to change mode of %s to 0%o" +msgstr "რეჟიმის %s-დან 0%o-ზე შეცვლა შეუძლებელია" + +#: lib/iolog/iolog_timing.c:261 +#, c-format +msgid "error reading timing file: %s" +msgstr "დროის ფაილის წაკითხვის შეცდომა: %s" + +#: lib/iolog/iolog_timing.c:268 +#, c-format +msgid "invalid timing file line: %s" +msgstr "დროის ფაილის არასწორი ხაზი: %s" + +#: logsrvd/iolog_writer.c:65 +#, c-format +msgid "%s: protocol error: NULL key" +msgstr "%s: პროტოკოლის შეცდომა: ნულოვანი გასაღები" + +#: logsrvd/iolog_writer.c:69 +#, c-format +msgid "%s: protocol error: wrong type for %s" +msgstr "%s: პროტოკოლის შეცდომა. არასწორი ტიპი %s -სთვის" + +#: logsrvd/iolog_writer.c:74 logsrvd/logsrvd_local.c:109 +#: logsrvd/logsrvd_local.c:123 logsrvd/logsrvd_local.c:131 +#: logsrvd/logsrvd_local.c:149 +#, c-format +msgid "%s: protocol error: NULL value found in %s" +msgstr "%s: პროტოკოლის შეცდომა: %s-ში ნაპოვნი მნიშვნელობა ნულოვანია" + +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 +#: plugins/sudoers/policy.c:591 +msgid "unable to generate UUID" +msgstr "uuid-ის გენერაციის შეცდომა" + +#: logsrvd/iolog_writer.c:341 logsrvd/iolog_writer.c:346 +#: logsrvd/iolog_writer.c:351 logsrvd/iolog_writer.c:356 +#, c-format +msgid "%s: protocol error: %s missing from AcceptMessage" +msgstr "%s: პროტოკოლის შეცდომა: AcceptMessage-ს %s -ი აკლია" + +#: logsrvd/iolog_writer.c:417 +#, c-format +msgid "%s: unable to format session id" +msgstr "%s: სესის id-ის დაფორმატების" + +#: logsrvd/iolog_writer.c:431 logsrvd/iolog_writer.c:445 +#: logsrvd/iolog_writer.c:459 logsrvd/iolog_writer.c:474 +#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:502 +#, c-format +msgid "%s: %s is not set" +msgstr "%s: %s დაყენებული არაა" + +#: logsrvd/iolog_writer.c:538 logsrvd/iolog_writer.c:545 +#, c-format +msgid "unable to expand iolog path %s" +msgstr "" + +#: logsrvd/iolog_writer.c:563 +#, c-format +msgid "unable to create iolog path %s" +msgstr "" + +#: logsrvd/iolog_writer.c:593 +#, c-format +msgid "invalid iofd %d" +msgstr "არასწორი iofd %d" + +#: logsrvd/iolog_writer.c:613 +#, c-format +msgid "error closing iofd %d: %s" +msgstr "შეცდომა iofd %d დახურვისას: %s" + +#: logsrvd/iolog_writer.c:633 +#, c-format +msgid "error flushing iofd %d: %s" +msgstr "iofd %d-ის ჩაწერის შეცდომა: %s" + +#: logsrvd/iolog_writer.c:751 +#, c-format +msgid "invalid I/O log %s: %s referenced but not present" +msgstr "" + +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#, c-format +msgid "%s: unable to find resume point [%lld, %ld]" +msgstr "" + +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 +#: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 +#: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 +#: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 +#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 +#: plugins/sudoers/visudo.c:971 +#, c-format +msgid "unable to open %s" +msgstr "%s-ის გახსნის შეცდომა" + +#: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 +#: plugins/sudoers/sudoreplay.c:368 +#, c-format +msgid "unable to open %s/%s" +msgstr "შეცდომა გახსნისას %s/%s" + +#: logsrvd/iolog_writer.c:810 +#, c-format +msgid "unable to copy %s/%s to %s/%s: %s" +msgstr "შეცდომა კოპირებისას: %s/%s -დან %s/%s: %s -მდე" + +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#, c-format +msgid "unable to rename %s to %s" +msgstr "%s-ის %s-ად გადარქმევის შეცდომა" + +#: logsrvd/logsrv_util.c:147 logsrvd/logsrv_util.c:176 +#, c-format +msgid "%s/%s: unable to find resume point [%lld, %ld]" +msgstr "" + +#: logsrvd/logsrv_util.c:159 +#, c-format +msgid "missing I/O log file %s/%s" +msgstr "" + +#: logsrvd/logsrv_util.c:166 +#, c-format +msgid "%s/%s: unable to seek forward %zu" +msgstr "" + +#: logsrvd/logsrvd.c:271 logsrvd/logsrvd_queue.c:135 +msgid "unable to connect to relay" +msgstr "" + +#: logsrvd/logsrvd.c:330 logsrvd/logsrvd_relay.c:842 +#, c-format +msgid "server message too large: %zu" +msgstr "სერვერის შეტყობინება ძალიან დიდია: %zu" + +#: logsrvd/logsrvd.c:422 logsrvd/logsrvd.c:545 logsrvd/logsrvd.c:631 +#: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 +#: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 +#: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 +#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 +#: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 +#: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 +#: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 +#: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 +#: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 +#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 +#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 +#: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 +#: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 +#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 +#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 +#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 +#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 +#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 +#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 +#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 +#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 +#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +msgid "unable to add event to queue" +msgstr "რიგში მოვლენის ჩამატების შეცდომა" + +#: logsrvd/logsrvd.c:446 logsrvd/logsrvd.c:483 logsrvd/logsrvd.c:515 +#: logsrvd/logsrvd.c:569 logsrvd/logsrvd.c:648 logsrvd/logsrvd.c:684 +#: logsrvd/logsrvd.c:720 logsrvd/logsrvd.c:756 logsrvd/logsrvd_relay.c:510 +#: logsrvd/logsrvd_relay.c:543 +#, c-format +msgid "unexpected state %d for %s" +msgstr "" + +#: logsrvd/logsrvd.c:447 logsrvd/logsrvd.c:484 logsrvd/logsrvd.c:516 +#: logsrvd/logsrvd.c:570 logsrvd/logsrvd.c:649 logsrvd/logsrvd.c:685 +#: logsrvd/logsrvd.c:721 logsrvd/logsrvd.c:757 logsrvd/logsrvd_relay.c:512 +#: logsrvd/logsrvd_relay.c:545 +msgid "state machine error" +msgstr "" + +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:454 +msgid "invalid AcceptMessage" +msgstr "არასწორი AcceptMessage" + +#: logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:491 +msgid "invalid RejectMessage" +msgstr "არასწორი RejectMessage" + +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:523 +msgid "invalid ExitMessage" +msgstr "არასწორი ExitMessage" + +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:577 +msgid "invalid RestartMessage" +msgstr "არასწორი RestartMessage" + +#: logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:612 +msgid "invalid AlertMessage" +msgstr "არასწორი AlertMessage" + +#: logsrvd/logsrvd.c:653 logsrvd/logsrvd.c:689 logsrvd/logsrvd.c:725 +#, c-format +msgid "%s: unexpected IoBuffer" +msgstr "" + +#: logsrvd/logsrvd.c:654 logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:726 +msgid "protocol error" +msgstr "პროტოკოლის შეცდომა" + +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:661 +msgid "invalid IoBuffer" +msgstr "არასწორი IoBuffer" + +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:697 +msgid "invalid ChangeWindowSize" +msgstr "არასწორი ChangeWindowSize" + +#: logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:733 +msgid "invalid CommandSuspend" +msgstr "არასწორი CommandSuspend" + +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 +#: plugins/sudoers/log_client.c:1583 +#, c-format +msgid "unable to unpack %s size %zu" +msgstr "შეცდომა %s -ის გაშლისას ზომა %zu" + +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd_relay.c:676 +#, c-format +msgid "unexpected type_case value %d in %s from %s" +msgstr "type_case-ის მოულოდნელი მნიშვნელობა %d %s-ში %s-დან" + +#: logsrvd/logsrvd.c:829 +msgid "unrecognized ClientMessage type" +msgstr "" + +#: logsrvd/logsrvd.c:919 +#, c-format +msgid "timed out writing to client %s" +msgstr "" + +#: logsrvd/logsrvd.c:924 logsrvd/logsrvd_relay.c:914 logsrvd/sendlog.c:1395 +#, c-format +msgid "missing write buffer for client %s" +msgstr "" + +#: logsrvd/logsrvd.c:1020 +#, c-format +msgid "timed out reading from client %s" +msgstr "" + +#: logsrvd/logsrvd.c:1061 logsrvd/logsrvd_relay.c:777 +#, c-format +msgid "EOF from %s without proper TLS shutdown" +msgstr "" + +#: logsrvd/logsrvd.c:1105 logsrvd/logsrvd_relay.c:205 logsrvd/sendlog.c:322 +#: plugins/sudoers/log_client.c:721 +#, c-format +msgid "client message too large: %zu" +msgstr "" + +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 +#: logsrvd/logsrvd_journal.c:257 +msgid "client message too large" +msgstr "" + +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1125 +msgid "invalid ClientMessage" +msgstr "არასწორი ClientMessage" + +#: logsrvd/logsrvd.c:1425 +msgid "unable to get remote IP addr" +msgstr "" + +#: logsrvd/logsrvd.c:1456 logsrvd/tls_client.c:203 +#: plugins/sudoers/log_client.c:281 +#, c-format +msgid "Unable to attach user data to the ssl object: %s" +msgstr "" + +#: logsrvd/logsrvd.c:1639 logsrvd/logsrvd.c:1992 +msgid "unable to setup listen socket" +msgstr "" + +#: logsrvd/logsrvd.c:1756 +#, c-format +msgid "unexpected signal %d" +msgstr "" + +#: logsrvd/logsrvd.c:1894 +msgid "sudo log server" +msgstr "" + +#: logsrvd/logsrvd.c:1896 logsrvd/sendlog.c:121 +msgid "Options:" +msgstr "პარამეტრები:" + +#: logsrvd/logsrvd.c:1898 +msgid "path to configuration file" +msgstr "ბილიკი კონფიგურაციის ფაილამდე" + +#: logsrvd/logsrvd.c:1900 logsrvd/sendlog.c:123 +msgid "display help message and exit" +msgstr "დახმარების გამოტანა და გამოსვლა" + +#: logsrvd/logsrvd.c:1902 +msgid "do not fork, run in the foreground" +msgstr "" + +#: logsrvd/logsrvd.c:1904 +msgid "percent chance connections will drop" +msgstr "" + +#: logsrvd/logsrvd.c:1906 logsrvd/sendlog.c:153 +msgid "display version information and exit" +msgstr "ვერსიის ჩვენება და გასვლა" + +#: logsrvd/logsrvd.c:1956 logsrvd/sendlog.c:1702 +msgid "Protobuf-C version 1.3 or higher required" +msgstr "" + +#: logsrvd/logsrvd.c:1972 +#, c-format +msgid "invalid random drop value: %s" +msgstr "" + +#: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/visudo.c:182 +#, c-format +msgid "%s version %s\n" +msgstr "%s ვერსია %s\n" + +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 +#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/testsudoers.c:382 +#, c-format +msgid "unknown user %s" +msgstr "უცნობი მომხმარებელი %s" + +#: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 +#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/testsudoers.c:406 +#, c-format +msgid "unknown group %s" +msgstr "უცნობი ჯგუფი %s" + +#: logsrvd/logsrvd_conf.c:457 +#, c-format +msgid "unable to parse iolog mode %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:474 logsrvd/logsrvd_conf.c:1243 +#, c-format +msgid "invalid value for %s: %s" +msgstr "%s-ის არასწორი მნიშვნელობა: %s" + +#: logsrvd/logsrvd_conf.c:527 +msgid "TLS not supported" +msgstr "TLS მხარდაუჭერელია" + +#: logsrvd/logsrvd_conf.c:549 +#, c-format +msgid "%s:%s" +msgstr "%s:%s" + +#: logsrvd/logsrvd_conf.c:622 logsrvd/logsrvd_conf.c:1032 +#, c-format +msgid "%s: not a fully qualified path" +msgstr "" + +#: logsrvd/logsrvd_conf.c:951 logsrvd/logsrvd_conf.c:967 +#: logsrvd/logsrvd_conf.c:1676 +#, c-format +msgid "unknown syslog facility %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:983 logsrvd/logsrvd_conf.c:999 +#: logsrvd/logsrvd_conf.c:1015 logsrvd/logsrvd_conf.c:1680 +#: logsrvd/logsrvd_conf.c:1684 logsrvd/logsrvd_conf.c:1688 +#, c-format +msgid "unknown syslog priority %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1197 +#, c-format +msgid "%s:%d unmatched '[': %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1203 +#, c-format +msgid "%s:%d garbage after ']': %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1215 +#, c-format +msgid "%s:%d invalid config section: %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1223 +#, c-format +msgid "%s:%d invalid configuration line: %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1229 +#, c-format +msgid "%s:%d expected section name: %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1251 +#, c-format +msgid "%s:%d [%s] illegal key: %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 +#: plugins/sudoers/logging.c:1029 +#, c-format +msgid "unable to open log file %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1763 +msgid "unable to initialize server TLS context" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1783 +msgid "unable to initialize relay TLS context" +msgstr "" + +#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 +#: logsrvd/logsrvd_journal.c:426 +msgid "unable to create journal file" +msgstr "" + +#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1026 +#, c-format +msgid "unable to lock %s" +msgstr "" + +#: logsrvd/logsrvd_journal.c:153 +msgid "unable to lock journal file" +msgstr "" + +#: logsrvd/logsrvd_journal.c:161 +msgid "unable to open journal file" +msgstr "" + +#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 +#: logsrvd/logsrvd_journal.c:462 +msgid "unable to write journal file" +msgstr "" + +#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +msgid "unable to rename journal file" +msgstr "" + +#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 +#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +msgid "unexpected EOF reading journal file" +msgstr "" + +#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 +#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +msgid "error reading journal file" +msgstr "" + +#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +msgid "invalid journal file, unable to restart" +msgstr "" + +#: logsrvd/logsrvd_journal.c:440 +#, c-format +msgid "unable to seek to [%lld, %ld] in journal file %s" +msgstr "" + +#: logsrvd/logsrvd_local.c:166 +#, c-format +msgid "unexpected value_case %d in %s from %s" +msgstr "" + +#: logsrvd/logsrvd_local.c:194 +msgid "error parsing AcceptMessage" +msgstr "" + +#: logsrvd/logsrvd_local.c:205 +msgid "error creating I/O log" +msgstr "" + +#: logsrvd/logsrvd_local.c:228 +msgid "error logging accept event" +msgstr "" + +#: logsrvd/logsrvd_local.c:267 +msgid "error parsing RejectMessage" +msgstr "" + +#: logsrvd/logsrvd_local.c:291 +msgid "error logging reject event" +msgstr "" + +#: logsrvd/logsrvd_local.c:427 logsrvd/logsrvd_local.c:435 +msgid "error logging exit event" +msgstr "" + +#: logsrvd/logsrvd_local.c:492 logsrvd/logsrvd_local.c:493 +msgid "log is already complete, cannot be restarted" +msgstr "" + +#: logsrvd/logsrvd_local.c:523 +msgid "unable to restart log" +msgstr "" + +#: logsrvd/logsrvd_local.c:539 +msgid "error parsing AlertMessage" +msgstr "" + +#: logsrvd/logsrvd_local.c:549 +msgid "error logging alert event" +msgstr "" + +#: logsrvd/logsrvd_local.c:585 logsrvd/logsrvd_local.c:648 +#: logsrvd/logsrvd_local.c:683 +#, c-format +msgid "unable to format timing buffer, length %d" +msgstr "" + +#: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 +#: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 +#: plugins/sudoers/sudoreplay.c:351 +#, c-format +msgid "%s/%s: %s" +msgstr "%s/%s: %s" + +#: logsrvd/logsrvd_local.c:618 +msgid "randomly dropping connection" +msgstr "" + +#: logsrvd/logsrvd_local.c:630 +msgid "error writing IoBuffer" +msgstr "" + +#: logsrvd/logsrvd_local.c:665 +msgid "error writing ChangeWindowSize" +msgstr "" + +#: logsrvd/logsrvd_local.c:700 +msgid "error writing CommandSuspend" +msgstr "" + +#: logsrvd/logsrvd_relay.c:435 +msgid "TLS handshake with relay host failed" +msgstr "" + +#: logsrvd/logsrvd_relay.c:463 +msgid "unable to connect to relay host" +msgstr "" + +#: logsrvd/logsrvd_relay.c:518 +#, c-format +msgid "%s: invalid ServerHello, missing server_id" +msgstr "" + +#: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 +#: plugins/sudoers/log_client.c:1469 +msgid "invalid ServerHello" +msgstr "" + +#: logsrvd/logsrvd_relay.c:679 +msgid "unrecognized ServerMessage type" +msgstr "" + +#: logsrvd/logsrvd_relay.c:708 +#, c-format +msgid "timed out reading from relay %s (%s)" +msgstr "" + +#: logsrvd/logsrvd_relay.c:710 +msgid "timeout reading from relay" +msgstr "" + +#: logsrvd/logsrvd_relay.c:762 +msgid "relay host name does not match certificate" +msgstr "" + +#: logsrvd/logsrvd_relay.c:768 logsrvd/logsrvd_relay.c:782 +#: logsrvd/logsrvd_relay.c:789 +msgid "error reading from relay" +msgstr "" + +#: logsrvd/logsrvd_relay.c:810 +msgid "unable to read from relay" +msgstr "" + +#: logsrvd/logsrvd_relay.c:825 logsrvd/logsrvd_relay.c:943 +msgid "relay server closed connection" +msgstr "" + +#: logsrvd/logsrvd_relay.c:843 +msgid "server message too large" +msgstr "" + +#: logsrvd/logsrvd_relay.c:907 +#, c-format +msgid "timed out writing to relay %s (%s)" +msgstr "" + +#: logsrvd/logsrvd_relay.c:909 +msgid "timeout writing to relay" +msgstr "" + +#: logsrvd/logsrvd_relay.c:962 logsrvd/logsrvd_relay.c:969 +#: logsrvd/logsrvd_relay.c:981 +msgid "error writing to relay" +msgstr "" + +#: logsrvd/sendlog.c:119 +msgid "send sudo I/O log to remote server" +msgstr "" + +#: logsrvd/sendlog.c:125 +msgid "only send an accept event (no I/O)" +msgstr "" + +#: logsrvd/sendlog.c:128 +msgid "certificate bundle file to verify server's cert against" +msgstr "" + +#: logsrvd/sendlog.c:130 +msgid "certificate file for TLS handshake" +msgstr "" + +#: logsrvd/sendlog.c:133 +msgid "host to send logs to" +msgstr "" + +#: logsrvd/sendlog.c:135 +msgid "remote ID of I/O log to be resumed" +msgstr "" + +#: logsrvd/sendlog.c:138 +msgid "private key file" +msgstr "" + +#: logsrvd/sendlog.c:140 +msgid "do not verify server certificate" +msgstr "" + +#: logsrvd/sendlog.c:143 +msgid "port to use when connecting to host" +msgstr "" + +#: logsrvd/sendlog.c:145 +msgid "restart previous I/O log transfer" +msgstr "" + +#: logsrvd/sendlog.c:147 +msgid "reject the command with the given reason" +msgstr "" + +#: logsrvd/sendlog.c:149 +msgid "stop transfer after reaching this time" +msgstr "" + +#: logsrvd/sendlog.c:151 +msgid "test audit server by sending selected I/O log n times in parallel" +msgstr "" + +#: logsrvd/sendlog.c:176 plugins/sudoers/log_client.c:453 +#, c-format +msgid "unable to look up %s:%s: %s" +msgstr "" + +#: logsrvd/sendlog.c:214 +msgid "unable to get server IP addr" +msgstr "" + +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#, c-format +msgid "unable to read %s/%s: %s" +msgstr "" + +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 +#: plugins/sudoers/iolog.c:1026 +#, c-format +msgid "unexpected I/O event %d" +msgstr "" + +#: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 +#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#, c-format +msgid "%s: unexpected state %d" +msgstr "" + +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#, c-format +msgid "error message received from server: %s" +msgstr "" + +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#, c-format +msgid "abort message received from server: %s" +msgstr "" + +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#, c-format +msgid "%s: unexpected type_case value %d" +msgstr "" + +#: logsrvd/sendlog.c:1261 +msgid "timeout reading from server" +msgstr "" + +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +msgid "host name does not match certificate" +msgstr "" + +#: logsrvd/sendlog.c:1343 +msgid "premature EOF" +msgstr "" + +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#, c-format +msgid "server message too large: %u" +msgstr "" + +#: logsrvd/sendlog.c:1412 +msgid "timeout writing to server" +msgstr "" + +#: logsrvd/sendlog.c:1779 +msgid "both restart point and iolog ID must be specified" +msgstr "" + +#: logsrvd/sendlog.c:1783 +msgid "a restart point may not be set when no I/O is sent" +msgstr "" + +#: logsrvd/sendlog.c:1859 +#, c-format +msgid "exited prematurely with state %d" +msgstr "" + +#: logsrvd/sendlog.c:1860 +#, c-format +msgid "elapsed time sent to server [%lld, %ld]" +msgstr "" + +#: logsrvd/sendlog.c:1862 +#, c-format +msgid "commit point received from server [%lld, %ld]" +msgstr "" + +#: logsrvd/tls_client.c:111 plugins/sudoers/log_client.c:315 +msgid "TLS handshake timeout occurred" +msgstr "" + +#: logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 +#: plugins/sudoers/log_client.c:337 plugins/sudoers/log_client.c:353 +msgid "unable to set event" +msgstr "" + +#: logsrvd/tls_client.c:157 logsrvd/tls_client.c:161 +#, c-format +msgid "TLS connection failed: %s" +msgstr "" + +#: logsrvd/tls_client.c:196 +#, c-format +msgid "unable to allocate ssl object: %s" +msgstr "" + +#: logsrvd/tls_client.c:210 +#, c-format +msgid "Unable to attach socket to the ssl object: %s" +msgstr "" + +#: logsrvd/tls_client.c:238 +msgid "unable to initialize TLS context" +msgstr "" + +#: logsrvd/tls_init.c:138 logsrvd/tls_init.c:146 +#, c-format +msgid "unable to set TLS 1.2 ciphersuite to %s: %s" +msgstr "" + +#: logsrvd/tls_init.c:166 logsrvd/tls_init.c:174 +#, c-format +msgid "unable to set TLS 1.3 ciphersuite to %s: %s" +msgstr "" + +#: logsrvd/tls_init.c:206 logsrvd/tls_init.c:227 +#, c-format +msgid "unable to set diffie-hellman parameters: %s" +msgstr "" + +#: logsrvd/tls_init.c:283 +#, c-format +msgid "unable to create TLS context: %s" +msgstr "" + +#: logsrvd/tls_init.c:290 +#, c-format +msgid "unable to set minimum protocol version to TLS 1.2: %s" +msgstr "" + +#: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 +#: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 +#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 +#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 +#: plugins/sudoers/policy.c:124 +msgid "unable to get time of day" +msgstr "" + +#: plugins/sudoers/auth/aix_auth.c:280 +#, c-format +msgid "unable to change password for %s" +msgstr "" + +#: plugins/sudoers/auth/bsdauth.c:74 +#, c-format +msgid "unable to get login class for user %s" +msgstr "" + +#: plugins/sudoers/auth/bsdauth.c:79 +msgid "unable to begin bsd authentication" +msgstr "" + +#: plugins/sudoers/auth/bsdauth.c:87 +msgid "invalid authentication type" +msgstr "" + +#: plugins/sudoers/auth/bsdauth.c:96 +msgid "unable to initialize BSD authentication" +msgstr "" + +#: plugins/sudoers/auth/bsdauth.c:186 +msgid "your account has expired" +msgstr "" + +#: plugins/sudoers/auth/bsdauth.c:188 +msgid "approval failed" +msgstr "" + +#: plugins/sudoers/auth/fwtk.c:61 +msgid "unable to read fwtk config" +msgstr "" + +#: plugins/sudoers/auth/fwtk.c:66 +msgid "unable to connect to authentication server" +msgstr "" + +#: plugins/sudoers/auth/fwtk.c:72 plugins/sudoers/auth/fwtk.c:97 +#: plugins/sudoers/auth/fwtk.c:129 +msgid "lost connection to authentication server" +msgstr "" + +#: plugins/sudoers/auth/fwtk.c:76 +#, c-format +msgid "" +"authentication server error:\n" +"%s" +msgstr "" + +#: plugins/sudoers/auth/kerb5.c:115 +#, c-format +msgid "%s: unable to convert principal to string ('%s'): %s" +msgstr "" + +#: plugins/sudoers/auth/kerb5.c:164 +#, c-format +msgid "%s: unable to parse '%s': %s" +msgstr "" + +#: plugins/sudoers/auth/kerb5.c:173 +#, c-format +msgid "%s: unable to resolve credential cache: %s" +msgstr "" + +#: plugins/sudoers/auth/kerb5.c:222 +#, c-format +msgid "%s: unable to allocate options: %s" +msgstr "" + +#: plugins/sudoers/auth/kerb5.c:237 +#, c-format +msgid "%s: unable to get credentials: %s" +msgstr "" + +#: plugins/sudoers/auth/kerb5.c:250 +#, c-format +msgid "%s: unable to initialize credential cache: %s" +msgstr "" + +#: plugins/sudoers/auth/kerb5.c:253 +#, c-format +msgid "%s: unable to store credential in cache: %s" +msgstr "" + +#: plugins/sudoers/auth/kerb5.c:317 +#, c-format +msgid "%s: unable to get host principal: %s" +msgstr "" + +#: plugins/sudoers/auth/kerb5.c:331 +#, c-format +msgid "%s: Cannot verify TGT! Possible attack!: %s" +msgstr "" + +#: plugins/sudoers/auth/pam.c:224 +#, c-format +msgid "unable to initialize PAM: %s" +msgstr "" + +#: plugins/sudoers/auth/pam.c:337 +#, c-format +msgid "PAM authentication error: %s" +msgstr "" + +#: plugins/sudoers/auth/pam.c:356 +msgid "account validation failure, is your account locked?" +msgstr "" + +#: plugins/sudoers/auth/pam.c:367 +msgid "Account or password is expired, reset your password and try again" +msgstr "" + +#: plugins/sudoers/auth/pam.c:373 +#, c-format +msgid "unable to change expired password: %s" +msgstr "" + +#: plugins/sudoers/auth/pam.c:384 +msgid "Password expired, contact your system administrator" +msgstr "" + +#: plugins/sudoers/auth/pam.c:389 +msgid "Account expired or PAM config lacks an \"account\" section for sudo, contact your system administrator" +msgstr "" + +#: plugins/sudoers/auth/pam.c:397 plugins/sudoers/auth/pam.c:402 +#, c-format +msgid "PAM account management error: %s" +msgstr "" + +#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:271 +#, c-format +msgid "you do not exist in the %s database" +msgstr "ბაზაში \"%s\" თქვენ არ არსებობთ" + +#: plugins/sudoers/auth/securid5.c:75 +msgid "failed to initialise the ACE API library" +msgstr "" + +#: plugins/sudoers/auth/securid5.c:106 +msgid "unable to contact the SecurID server" +msgstr "" + +#: plugins/sudoers/auth/securid5.c:115 +msgid "User ID locked for SecurID Authentication" +msgstr "" + +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +msgid "invalid username length for SecurID" +msgstr "" + +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +msgid "invalid Authentication Handle for SecurID" +msgstr "" + +#: plugins/sudoers/auth/securid5.c:127 +msgid "SecurID communication failed" +msgstr "" + +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +msgid "unknown SecurID error" +msgstr "" + +#: plugins/sudoers/auth/securid5.c:165 +msgid "invalid passcode length for SecurID" +msgstr "" + +#: plugins/sudoers/auth/sia.c:69 plugins/sudoers/auth/sia.c:126 +msgid "unable to initialize SIA session" +msgstr "" + +#: plugins/sudoers/auth/sudo_auth.c:135 +msgid "invalid authentication methods" +msgstr "" + +#: plugins/sudoers/auth/sudo_auth.c:137 +msgid "Invalid authentication methods compiled into sudo! You may not mix standalone and non-standalone authentication." +msgstr "" + +#: plugins/sudoers/auth/sudo_auth.c:258 plugins/sudoers/auth/sudo_auth.c:310 +msgid "no authentication methods" +msgstr "" + +#: plugins/sudoers/auth/sudo_auth.c:260 +msgid "There are no authentication methods compiled into sudo! If you want to turn off authentication, use the --disable-authentication configure option." +msgstr "" + +#: plugins/sudoers/auth/sudo_auth.c:312 +msgid "Unable to initialize authentication methods." +msgstr "" + +#: plugins/sudoers/auth/sudo_auth.c:486 +msgid "Authentication methods:" +msgstr "" + +#: plugins/sudoers/bsm_audit.c:123 plugins/sudoers/bsm_audit.c:214 +msgid "Could not determine audit condition" +msgstr "" + +#: plugins/sudoers/bsm_audit.c:188 plugins/sudoers/bsm_audit.c:277 +msgid "unable to commit audit record" +msgstr "" + +#: plugins/sudoers/check.c:285 +#, c-format +msgid "error reading lecture file %s" +msgstr "" + +#: plugins/sudoers/check.c:288 +#, c-format +msgid "ignoring lecture file %s: not a regular file" +msgstr "" + +#: plugins/sudoers/check.c:301 +msgid "" +"\n" +"We trust you have received the usual lecture from the local System\n" +"Administrator. It usually boils down to these three things:\n" +"\n" +" #1) Respect the privacy of others.\n" +" #2) Think before you type.\n" +" #3) With great power comes great responsibility.\n" +"\n" +msgstr "" + +#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 +#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 +#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#, c-format +msgid "unknown uid %u" +msgstr "" + +#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1279 +#, c-format +msgid "%s: %s\n" +msgstr "%s: %s\n" + +#: plugins/sudoers/check_aliases.c:133 +#, c-format +msgid "cycle in %s \"%s\"" +msgstr "" + +#: plugins/sudoers/check_aliases.c:136 +#, c-format +msgid "%s \"%s\" referenced but not defined" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:209 +#, c-format +msgid "order increment: %s: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:228 +#, c-format +msgid "starting order: %s: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:238 +#, c-format +msgid "order padding: %s: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:184 +#, c-format +msgid "%s grammar version %d\n" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:277 plugins/sudoers/testsudoers.c:159 +#, c-format +msgid "unsupported input format %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:295 +#, c-format +msgid "unsupported output format %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:385 +#, c-format +msgid "%s: input and output files must be different" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 +#: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 +#: plugins/sudoers/visudo.c:975 +msgid "unable to initialize sudoers default values" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:434 +#, c-format +msgid "%s: %s: %s: %s" +msgstr "%s: %s: %s: %s" + +#: plugins/sudoers/cvtsudoers.c:584 +#, c-format +msgid "%s: unknown key word %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:630 +#, c-format +msgid "invalid defaults type: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:653 +#, c-format +msgid "invalid suppression type: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:694 plugins/sudoers/cvtsudoers.c:710 +#, c-format +msgid "invalid filter: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#, c-format +msgid "failed to parse %s file, unknown error" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 +#, c-format +msgid "unable to write to %s" +msgstr "%s-ში ჩაწერა შეუძლებელია" + +#: plugins/sudoers/cvtsudoers.c:1506 +#, c-format +msgid "" +"%s - convert between sudoers file formats\n" +"\n" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:1508 +msgid "" +"\n" +"Options:\n" +" -b, --base=dn the base DN for sudo LDAP queries\n" +" -c, --config=conf_file the path to the configuration file\n" +" -d, --defaults=deftypes only convert Defaults of the specified types\n" +" -e, --expand-aliases expand aliases when converting\n" +" -f, --output-format=format set output format: JSON, LDIF or sudoers\n" +" -i, --input-format=format set input format: LDIF or sudoers\n" +" -I, --increment=num amount to increase each sudoOrder by\n" +" -h, --help display help message and exit\n" +" -m, --match=filter only convert entries that match the filter\n" +" -M, --match-local match filter uses passwd and group databases\n" +" -o, --output=output_file write converted sudoers to output_file\n" +" -O, --order-start=num starting point for first sudoOrder\n" +" -p, --prune-matches prune non-matching users, groups and hosts\n" +" -P, --padding=num base padding for sudoOrder increment\n" +" -s, --suppress=sections suppress output of certain sections\n" +" -V, --version display version information and exit" +msgstr "" + +#: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 +#: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 +#: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 +#: plugins/sudoers/ldap.c:510 +msgid "unable to get GMT time" +msgstr "" + +#: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 +#: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 +#: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 +#: plugins/sudoers/ldap.c:518 +msgid "unable to format timestamp" +msgstr "" + +#: plugins/sudoers/cvtsudoers_json.c:480 plugins/sudoers/cvtsudoers_json.c:515 +#: plugins/sudoers/cvtsudoers_json.c:728 +#, c-format +msgid "%s:%d:%d: unknown defaults entry \"%s\"" +msgstr "" + +#: plugins/sudoers/cvtsudoers_ldif.c:661 +#, c-format +msgid "too many sudoers entries, maximum %u" +msgstr "" + +#: plugins/sudoers/cvtsudoers_ldif.c:704 +msgid "the SUDOERS_BASE environment variable is not set and the -b option was not specified." +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:273 +#: plugins/sudoers/cvtsudoers_merge.c:309 +#, c-format +msgid "%s:%d:%d: converting host list to ALL" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:545 +#, c-format +msgid "unable to find alias %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:548 +#, c-format +msgid "%s:%d:%d: renaming alias %s to %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:605 +#, c-format +msgid "%s:%d:%d: removing duplicate alias %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:830 +#, c-format +msgid "%s:%d:%d: conflicting Defaults entry \"%s\" host-specific in %s:%d:%d" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:864 +#, c-format +msgid "%s:%d:%d: made Defaults \"%s\" specific to host %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:882 +#, c-format +msgid "%s:%d:%d: unable to make Defaults \"%s\" host-specific" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:892 +#, c-format +msgid "%s:%d:%d: removing Defaults \"%s\" overridden by subsequent entries" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:1088 +#, c-format +msgid "%s:%d:%d: merging userspec into %s:%d:%d" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:1182 +#, c-format +msgid "%s:%d:%d: removing userspec overridden by subsequent entries" +msgstr "" + +#: plugins/sudoers/def_data.c:56 +#, c-format +msgid "Syslog facility if syslog is being used for logging: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:60 +#, c-format +msgid "Syslog priority to use when user authenticates successfully: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:64 +#, c-format +msgid "Syslog priority to use when user authenticates unsuccessfully: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:68 +msgid "Put OTP prompt on its own line" +msgstr "" + +#: plugins/sudoers/def_data.c:72 +msgid "Ignore '.' in $PATH" +msgstr "" + +#: plugins/sudoers/def_data.c:76 +msgid "Always send mail when sudo is run" +msgstr "" + +#: plugins/sudoers/def_data.c:80 +msgid "Send mail if user authentication fails" +msgstr "" + +#: plugins/sudoers/def_data.c:84 +msgid "Send mail if the user is not in sudoers" +msgstr "" + +#: plugins/sudoers/def_data.c:88 +msgid "Send mail if the user is not in sudoers for this host" +msgstr "" + +#: plugins/sudoers/def_data.c:92 +msgid "Send mail if the user is not allowed to run a command" +msgstr "" + +#: plugins/sudoers/def_data.c:96 +msgid "Send mail if the user tries to run a command" +msgstr "" + +#: plugins/sudoers/def_data.c:100 +msgid "Use a separate timestamp for each user/tty combo" +msgstr "" + +#: plugins/sudoers/def_data.c:104 +msgid "Lecture user the first time they run sudo" +msgstr "" + +#: plugins/sudoers/def_data.c:108 +#, c-format +msgid "File containing the sudo lecture: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:112 +msgid "Require users to authenticate by default" +msgstr "" + +#: plugins/sudoers/def_data.c:116 +msgid "Root may run sudo" +msgstr "" + +#: plugins/sudoers/def_data.c:120 +msgid "Log the hostname in the (non-syslog) log file" +msgstr "" + +#: plugins/sudoers/def_data.c:124 +msgid "Log the year in the (non-syslog) log file" +msgstr "" + +#: plugins/sudoers/def_data.c:128 +msgid "If sudo is invoked with no arguments, start a shell" +msgstr "" + +#: plugins/sudoers/def_data.c:132 +msgid "Set $HOME to the target user when starting a shell with -s" +msgstr "" + +#: plugins/sudoers/def_data.c:136 +msgid "Always set $HOME to the target user's home directory" +msgstr "" + +#: plugins/sudoers/def_data.c:140 +msgid "Allow some information gathering to give useful error messages" +msgstr "" + +#: plugins/sudoers/def_data.c:144 +msgid "Require fully-qualified hostnames in the sudoers file" +msgstr "" + +#: plugins/sudoers/def_data.c:148 +msgid "Insult the user when they enter an incorrect password" +msgstr "" + +#: plugins/sudoers/def_data.c:152 +msgid "Only allow the user to run sudo if they have a tty" +msgstr "" + +#: plugins/sudoers/def_data.c:156 +msgid "Visudo will honor the EDITOR environment variable" +msgstr "" + +#: plugins/sudoers/def_data.c:160 +msgid "Prompt for root's password, not the users's" +msgstr "" + +#: plugins/sudoers/def_data.c:164 +msgid "Prompt for the runas_default user's password, not the users's" +msgstr "" + +#: plugins/sudoers/def_data.c:168 +msgid "Prompt for the target user's password, not the users's" +msgstr "" + +#: plugins/sudoers/def_data.c:172 +msgid "Apply defaults in the target user's login class if there is one" +msgstr "" + +#: plugins/sudoers/def_data.c:176 +msgid "Set the LOGNAME and USER environment variables" +msgstr "" + +#: plugins/sudoers/def_data.c:180 +msgid "Only set the effective uid to the target user, not the real uid" +msgstr "" + +#: plugins/sudoers/def_data.c:184 +msgid "Don't initialize the group vector to that of the target user" +msgstr "" + +#: plugins/sudoers/def_data.c:188 +#, c-format +msgid "Length at which to wrap log file lines (0 for no wrap): %u" +msgstr "" + +#: plugins/sudoers/def_data.c:192 +#, c-format +msgid "Authentication timestamp timeout: %.1f minutes" +msgstr "" + +#: plugins/sudoers/def_data.c:196 +#, c-format +msgid "Password prompt timeout: %.1f minutes" +msgstr "" + +#: plugins/sudoers/def_data.c:200 +#, c-format +msgid "Number of tries to enter a password: %u" +msgstr "" + +#: plugins/sudoers/def_data.c:204 +#, c-format +msgid "Umask to use or 0777 to use user's: 0%o" +msgstr "" + +#: plugins/sudoers/def_data.c:208 +#, c-format +msgid "Path to log file: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:212 +#, c-format +msgid "Path to mail program: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:216 +#, c-format +msgid "Flags for mail program: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:220 +#, c-format +msgid "Address to send mail to: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:224 +#, c-format +msgid "Address to send mail from: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:228 +#, c-format +msgid "Subject line for mail messages: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:232 +#, c-format +msgid "Incorrect password message: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:236 +#, c-format +msgid "Path to lecture status dir: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:240 +#, c-format +msgid "Path to authentication timestamp dir: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:244 +#, c-format +msgid "Owner of the authentication timestamp dir: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:248 +#, c-format +msgid "Users in this group are exempt from password and PATH requirements: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:252 +#, c-format +msgid "Default password prompt: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:256 +msgid "If set, passprompt will override system prompt in all cases." +msgstr "" + +#: plugins/sudoers/def_data.c:260 +#, c-format +msgid "Default user to run commands as: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:264 +#, c-format +msgid "Value to override user's $PATH with: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:268 +#, c-format +msgid "Path to the editor for use by visudo: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:272 +#, c-format +msgid "When to require a password for 'list' pseudocommand: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:276 +#, c-format +msgid "When to require a password for 'verify' pseudocommand: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:280 +msgid "Preload the sudo_noexec library which replaces the exec functions" +msgstr "" + +#: plugins/sudoers/def_data.c:284 +msgid "If LDAP directory is up, do we ignore local sudoers file" +msgstr "" + +#: plugins/sudoers/def_data.c:288 +#, c-format +msgid "File descriptors >= %d will be closed before executing a command" +msgstr "" + +#: plugins/sudoers/def_data.c:292 +msgid "If set, users may override the value of \"closefrom\" with the -C option" +msgstr "" + +#: plugins/sudoers/def_data.c:296 +msgid "Allow users to set arbitrary environment variables" +msgstr "" + +#: plugins/sudoers/def_data.c:300 +msgid "Reset the environment to a default set of variables" +msgstr "" + +#: plugins/sudoers/def_data.c:304 +msgid "Environment variables to check for safety:" +msgstr "" + +#: plugins/sudoers/def_data.c:308 +msgid "Environment variables to remove:" +msgstr "" + +#: plugins/sudoers/def_data.c:312 +msgid "Environment variables to preserve:" +msgstr "" + +#: plugins/sudoers/def_data.c:316 +#, c-format +msgid "SELinux role to use in the new security context: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:320 +#, c-format +msgid "SELinux type to use in the new security context: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:324 +#, c-format +msgid "Path to the sudo-specific environment file: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:328 +#, c-format +msgid "Path to the restricted sudo-specific environment file: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:332 +#, c-format +msgid "Locale to use while parsing sudoers: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:336 +msgid "Allow sudo to prompt for a password even if it would be visible" +msgstr "" + +#: plugins/sudoers/def_data.c:340 +msgid "Provide visual feedback at the password prompt when there is user input" +msgstr "" + +#: plugins/sudoers/def_data.c:344 +msgid "Use faster globbing that is less accurate but does not access the filesystem" +msgstr "" + +#: plugins/sudoers/def_data.c:348 +msgid "The umask specified in sudoers will override the user's, even if it is more permissive" +msgstr "" + +#: plugins/sudoers/def_data.c:352 +msgid "Log user's input for the command being run" +msgstr "" + +#: plugins/sudoers/def_data.c:356 +msgid "Log the command's standard input if not connected to a terminal" +msgstr "" + +#: plugins/sudoers/def_data.c:360 +msgid "Log the user's terminal input for the command being run" +msgstr "" + +#: plugins/sudoers/def_data.c:364 +msgid "Log the output of the command being run" +msgstr "" + +#: plugins/sudoers/def_data.c:368 +msgid "Log the command's standard output if not connected to a terminal" +msgstr "" + +#: plugins/sudoers/def_data.c:372 +msgid "Log the command's standard error if not connected to a terminal" +msgstr "" + +#: plugins/sudoers/def_data.c:376 +msgid "Log the terminal output of the command being run" +msgstr "" + +#: plugins/sudoers/def_data.c:380 +msgid "Compress I/O logs using zlib" +msgstr "" + +#: plugins/sudoers/def_data.c:384 +msgid "Always run commands in a pseudo-tty" +msgstr "" + +#: plugins/sudoers/def_data.c:388 +#, c-format +msgid "Plugin for non-Unix group support: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:392 +#, c-format +msgid "Directory in which to store input/output logs: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:396 +#, c-format +msgid "File in which to store the input/output log: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:400 +msgid "Add an entry to the utmp/utmpx file when allocating a pty" +msgstr "" + +#: plugins/sudoers/def_data.c:404 +msgid "Set the user in utmp to the runas user, not the invoking user" +msgstr "" + +#: plugins/sudoers/def_data.c:408 +#, c-format +msgid "Set of permitted privileges: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:412 +#, c-format +msgid "Set of limit privileges: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:416 +msgid "Run commands on a pty in the background" +msgstr "" + +#: plugins/sudoers/def_data.c:420 +#, c-format +msgid "PAM service name to use: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:424 +#, c-format +msgid "PAM service name to use for login shells: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:428 +#, c-format +msgid "PAM service name to use when sudo is run with the -A option: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:432 +msgid "Attempt to establish PAM credentials for the target user" +msgstr "" + +#: plugins/sudoers/def_data.c:436 +msgid "Create a new PAM session for the command to run in" +msgstr "" + +#: plugins/sudoers/def_data.c:440 +msgid "Perform PAM account validation management" +msgstr "" + +#: plugins/sudoers/def_data.c:444 +#, c-format +msgid "Maximum I/O log sequence number: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:448 +msgid "Enable sudoers netgroup support" +msgstr "" + +#: plugins/sudoers/def_data.c:452 +msgid "Check parent directories for writability when editing files with sudoedit" +msgstr "" + +#: plugins/sudoers/def_data.c:456 +msgid "Follow symbolic links when editing files with sudoedit" +msgstr "" + +#: plugins/sudoers/def_data.c:460 +msgid "Query the group plugin for unknown system groups" +msgstr "" + +#: plugins/sudoers/def_data.c:464 +msgid "Match netgroups based on the entire tuple: user, host and domain" +msgstr "" + +#: plugins/sudoers/def_data.c:468 +msgid "Allow commands to be run even if sudo cannot write to the audit log" +msgstr "" + +#: plugins/sudoers/def_data.c:472 +msgid "Allow commands to be run even if sudo cannot write to the I/O log" +msgstr "" + +#: plugins/sudoers/def_data.c:476 +msgid "Allow commands to be run even if sudo cannot write to the log file" +msgstr "" + +#: plugins/sudoers/def_data.c:480 +msgid "Resolve groups in sudoers and match on the group ID, not the name" +msgstr "" + +#: plugins/sudoers/def_data.c:484 +#, c-format +msgid "Log entries larger than this value will be split into multiple syslog messages: %u" +msgstr "" + +#: plugins/sudoers/def_data.c:488 +#, c-format +msgid "User that will own the I/O log files: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:492 +#, c-format +msgid "Group that will own the I/O log files: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:496 +#, c-format +msgid "File mode to use for the I/O log files: 0%o" +msgstr "" + +#: plugins/sudoers/def_data.c:500 +#, c-format +msgid "Execute commands by file descriptor instead of by path: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:504 +msgid "Ignore unknown Defaults entries in sudoers instead of producing a warning" +msgstr "" + +#: plugins/sudoers/def_data.c:508 +#, c-format +msgid "Time in seconds after which the command will be terminated: %u" +msgstr "" + +#: plugins/sudoers/def_data.c:512 +msgid "Allow the user to specify a timeout on the command line" +msgstr "" + +#: plugins/sudoers/def_data.c:516 +msgid "Flush I/O log data to disk immediately instead of buffering it" +msgstr "" + +#: plugins/sudoers/def_data.c:520 +msgid "Include the process ID when logging via syslog" +msgstr "" + +#: plugins/sudoers/def_data.c:524 +#, c-format +msgid "Type of authentication timestamp record: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:528 +#, c-format +msgid "Authentication failure message: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:532 +msgid "Ignore case when matching user names" +msgstr "" + +#: plugins/sudoers/def_data.c:536 +msgid "Ignore case when matching group names" +msgstr "" + +#: plugins/sudoers/def_data.c:540 +msgid "Log when a command is allowed by sudoers" +msgstr "" + +#: plugins/sudoers/def_data.c:544 +msgid "Log when a command is denied by sudoers" +msgstr "" + +#: plugins/sudoers/def_data.c:548 +msgid "Sudo log server(s) to connect to with optional port" +msgstr "" + +#: plugins/sudoers/def_data.c:552 +#, c-format +msgid "Sudo log server timeout in seconds: %u" +msgstr "" + +#: plugins/sudoers/def_data.c:556 +msgid "Enable SO_KEEPALIVE socket option on the socket connected to the logserver" +msgstr "" + +#: plugins/sudoers/def_data.c:560 +#, c-format +msgid "Path to the audit server's CA bundle file: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:564 +#, c-format +msgid "Path to the sudoers certificate file: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:568 +#, c-format +msgid "Path to the sudoers private key file: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:572 +msgid "Verify that the log server's certificate is valid" +msgstr "" + +#: plugins/sudoers/def_data.c:576 +msgid "Allow the use of unknown runas user and/or group ID" +msgstr "" + +#: plugins/sudoers/def_data.c:580 +msgid "Only permit running commands as a user with a valid shell" +msgstr "" + +#: plugins/sudoers/def_data.c:584 +msgid "Set the pam remote user to the user running sudo" +msgstr "" + +#: plugins/sudoers/def_data.c:588 +msgid "Set the pam remote host to the local host name" +msgstr "" + +#: plugins/sudoers/def_data.c:592 +#, c-format +msgid "Working directory to change to before executing the command: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:596 +#, c-format +msgid "Root directory to change to before executing the command: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:600 +#, c-format +msgid "The format of logs to produce: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:604 +msgid "Enable SELinux RBAC support" +msgstr "" + +#: plugins/sudoers/def_data.c:608 +#, c-format +msgid "Path to the file that is created the first time sudo is run: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:612 +msgid "Intercept further commands and apply sudoers restrictions to them" +msgstr "" + +#: plugins/sudoers/def_data.c:616 +msgid "Log sub-commands run by the original command" +msgstr "" + +#: plugins/sudoers/def_data.c:620 +msgid "Log the exit status of commands" +msgstr "" + +#: plugins/sudoers/def_data.c:624 +msgid "Subsequent commands in an intercepted session must be authenticated" +msgstr "" + +#: plugins/sudoers/def_data.c:628 +msgid "Allow an intercepted command to run set setuid or setgid programs" +msgstr "" + +#: plugins/sudoers/def_data.c:632 +#, c-format +msgid "The maximum size to which the process's address space may grow (in bytes): %s" +msgstr "" + +#: plugins/sudoers/def_data.c:636 +#, c-format +msgid "The largest size core dump file that may be created (in bytes): %s" +msgstr "" + +#: plugins/sudoers/def_data.c:640 +#, c-format +msgid "The maximum amount of CPU time that the process may use (in seconds): %s" +msgstr "" + +#: plugins/sudoers/def_data.c:644 +#, c-format +msgid "The maximum size of the data segment for the process (in bytes): %s" +msgstr "" + +#: plugins/sudoers/def_data.c:648 +#, c-format +msgid "The largest size file that the process may create (in bytes): %s" +msgstr "" + +#: plugins/sudoers/def_data.c:652 +#, c-format +msgid "The maximum number of locks that the process may establish: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:656 +#, c-format +msgid "The maximum size that the process may lock in memory (in bytes): %s" +msgstr "" + +#: plugins/sudoers/def_data.c:660 +#, c-format +msgid "The maximum number of files that the process may have open: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:664 +#, c-format +msgid "The maximum number of processes that the user may run simultaneously: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:668 +#, c-format +msgid "The maximum size to which the process's resident set size may grow (in bytes): %s" +msgstr "" + +#: plugins/sudoers/def_data.c:672 +#, c-format +msgid "The maximum size to which the process's stack may grow (in bytes): %s" +msgstr "" + +#: plugins/sudoers/def_data.c:676 +msgid "Attempt authentication even when in non-interactive mode" +msgstr "" + +#: plugins/sudoers/def_data.c:680 +msgid "Store plaintext passwords in I/O log input" +msgstr "" + +#: plugins/sudoers/def_data.c:684 +msgid "List of regular expressions to use when matching a password prompt" +msgstr "" + +#: plugins/sudoers/def_data.c:688 +#, c-format +msgid "The mechanism used by the intercept and log_subcmds options: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:692 +msgid "Attempt to verify the command and arguments after execution" +msgstr "" + +#: plugins/sudoers/def_data.c:696 +#, c-format +msgid "AppArmor profile to use in the new security context: %s" +msgstr "" + +#: plugins/sudoers/defaults.c:191 +#, c-format +msgid "unknown defaults entry \"%s\"" +msgstr "" + +#: plugins/sudoers/defaults.c:234 +#, c-format +msgid "no value specified for \"%s\"" +msgstr "" + +#: plugins/sudoers/defaults.c:243 +#, c-format +msgid "invalid operator \"%c=\" for \"%s\"" +msgstr "" + +#: plugins/sudoers/defaults.c:275 +#, c-format +msgid "option \"%s\" does not take a value" +msgstr "" + +#: plugins/sudoers/defaults.c:299 +#, c-format +msgid "invalid Defaults type 0x%x for option \"%s\"" +msgstr "" + +#: plugins/sudoers/defaults.c:306 +#, c-format +msgid "value \"%s\" is invalid for option \"%s\"" +msgstr "" + +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 +#: plugins/sudoers/policy.c:217 +#, c-format +msgid "path name for \"%s\" too long" +msgstr "" + +#: plugins/sudoers/defaults.c:1134 +#, c-format +msgid "values for \"%s\" must start with a '/', '~', or '*'" +msgstr "" + +#: plugins/sudoers/defaults.c:1141 +#, c-format +msgid "values for \"%s\" must start with a '/'" +msgstr "" + +#: plugins/sudoers/env.c:426 +msgid "sudo_putenv: corrupted envp, length mismatch" +msgstr "" + +#: plugins/sudoers/env.c:1109 +msgid "unable to rebuild the environment" +msgstr "" + +#: plugins/sudoers/env.c:1183 +#, c-format +msgid "sorry, you are not allowed to set the following environment variables: %s" +msgstr "" + +#: plugins/sudoers/filedigest.c:49 +#, c-format +msgid "unsupported digest type %d for %s" +msgstr "" + +#: plugins/sudoers/filedigest.c:78 +#, c-format +msgid "%s: read error" +msgstr "%s: კითხვის შეცდომა" + +#: plugins/sudoers/group_plugin.c:169 +#, c-format +msgid "%s must be owned by uid %d" +msgstr "%s-ის მფლობლის UID %d უნდა იყოს" + +#: plugins/sudoers/group_plugin.c:173 +#, c-format +msgid "%s must only be writable by owner" +msgstr "" + +#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#, c-format +msgid "unable to load %s: %s" +msgstr "%s-ის ჩატვირთვის შეცდომა: %s" + +#: plugins/sudoers/group_plugin.c:197 +#, c-format +msgid "unable to find symbol \"group_plugin\" in %s" +msgstr "" + +#: plugins/sudoers/group_plugin.c:202 +#, c-format +msgid "%s: incompatible group plugin major version %d, expected %d" +msgstr "" + +#: plugins/sudoers/interfaces.c:76 plugins/sudoers/interfaces.c:93 +#, c-format +msgid "unable to parse IP address \"%s\"" +msgstr "" + +#: plugins/sudoers/interfaces.c:81 plugins/sudoers/interfaces.c:98 +#, c-format +msgid "unable to parse netmask \"%s\"" +msgstr "" + +#: plugins/sudoers/interfaces.c:126 +msgid "Local IP address and netmask pairs:\n" +msgstr "" + +#: plugins/sudoers/iolog.c:685 +msgid "unable to update sequence file" +msgstr "" + +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 +#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 +#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 +#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#, c-format +msgid "unable to write to I/O log file: %s" +msgstr "" + +#: plugins/sudoers/iolog.c:727 +#, c-format +msgid "unable to create %s/%s" +msgstr "" + +#: plugins/sudoers/iolog.c:957 +#, c-format +msgid "%s: internal error, I/O log file for event %d not open" +msgstr "" + +#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 +#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 +#: plugins/sudoers/visudo.c:558 +msgid "unable to read the clock" +msgstr "საათის წაკითხვის შეცდომა" + +#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 +#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#, c-format +msgid "%s: internal error, invalid signal %d" +msgstr "" + +#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:292 +msgid "starttls not supported when using ldaps" +msgstr "" + +#: plugins/sudoers/ldap.c:248 +#, c-format +msgid "unable to initialize SSL cert and key db: %s" +msgstr "" + +#: plugins/sudoers/ldap.c:251 +#, c-format +msgid "you must set TLS_CERT in %s to use SSL" +msgstr "" + +#: plugins/sudoers/ldap.c:1712 +#, c-format +msgid "unable to initialize LDAP: %s" +msgstr "" + +#: plugins/sudoers/ldap.c:1749 +msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" +msgstr "" + +#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#, c-format +msgid "invalid sudoOrder attribute: %s" +msgstr "" + +#: plugins/sudoers/ldap_conf.c:200 +#, c-format +msgid "%s: port too large" +msgstr "" + +#: plugins/sudoers/ldap_conf.c:261 +#, c-format +msgid "unsupported LDAP uri type: %s" +msgstr "" + +#: plugins/sudoers/ldap_conf.c:288 +msgid "unable to mix ldap and ldaps URIs" +msgstr "" + +#: plugins/sudoers/ldap_util.c:499 plugins/sudoers/ldap_util.c:506 +#: plugins/sudoers/ldap_util.c:514 plugins/sudoers/ldap_util.c:523 +#: plugins/sudoers/ldap_util.c:531 plugins/sudoers/ldap_util.c:541 +#: plugins/sudoers/ldap_util.c:549 +#, c-format +msgid "duplicate sudoOption: %s%s%s" +msgstr "" + +#: plugins/sudoers/ldap_util.c:568 plugins/sudoers/ldap_util.c:570 +#, c-format +msgid "unable to convert sudoOption: %s%s%s" +msgstr "" + +#: plugins/sudoers/linux_audit.c:58 plugins/sudoers/linux_audit.c:60 +msgid "unable to open audit system" +msgstr "აუდიტის სისტემის გახსნის შეცდომა" + +#: plugins/sudoers/linux_audit.c:103 +msgid "unable to send audit message" +msgstr "აუდიტის შეტყობინების გაგზავნის შეცდომა" + +#: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 +#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +msgid "error in event loop" +msgstr "მოვლენების მარყუჟის შეცდომა" + +#: plugins/sudoers/log_client.c:205 +#, c-format +msgid "Creation of new SSL_CTX object failed: %s" +msgstr "" + +#: plugins/sudoers/log_client.c:230 +#, c-format +msgid "unable to load certificate authority bundle %s" +msgstr "" + +#: plugins/sudoers/log_client.c:252 +#, c-format +msgid "unable to load certificate %s" +msgstr "" + +#: plugins/sudoers/log_client.c:266 +#, c-format +msgid "unable to load private key %s" +msgstr "" + +#: plugins/sudoers/log_client.c:275 +#, c-format +msgid "Unable to allocate ssl object: %s" +msgstr "" + +#: plugins/sudoers/log_client.c:364 plugins/sudoers/log_client.c:369 +#, c-format +msgid "TLS connection to %s:%s failed: %s" +msgstr "" + +#: plugins/sudoers/log_client.c:543 +msgid "TLS initialization was unsuccessful" +msgstr "" + +#: plugins/sudoers/log_client.c:553 +msgid "TLS handshake was unsuccessful" +msgstr "" + +#: plugins/sudoers/log_client.c:1211 +#, c-format +msgid "%s: internal error, invalid exit status %d" +msgstr "" + +#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +msgid "lost connection to log server" +msgstr "" + +#: plugins/sudoers/log_client.c:1841 +msgid "missing write buffer" +msgstr "" + +#: plugins/sudoers/log_client.c:1995 +msgid "unable to connect to log server" +msgstr "" + +#: plugins/sudoers/logging.c:290 +msgid "user NOT in sudoers" +msgstr "" + +#: plugins/sudoers/logging.c:292 +msgid "user NOT authorized on host" +msgstr "" + +#: plugins/sudoers/logging.c:294 +msgid "command not allowed" +msgstr "" + +#: plugins/sudoers/logging.c:315 +#, c-format +msgid "%s is not in the sudoers file.\n" +msgstr "" + +#: plugins/sudoers/logging.c:318 +#, c-format +msgid "%s is not allowed to run sudo on %s.\n" +msgstr "" + +#: plugins/sudoers/logging.c:321 +#, c-format +msgid "Sorry, user %s may not run sudo on %s.\n" +msgstr "" + +#: plugins/sudoers/logging.c:324 +#, c-format +msgid "Sorry, user %s is not allowed to execute '%s%s%s' as %s%s%s on %s.\n" +msgstr "" + +#: plugins/sudoers/logging.c:334 +msgid "This incident has been reported to the administrator.\n" +msgstr "" + +#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 +#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 +#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 +#: plugins/sudoers/sudoers.c:807 +#, c-format +msgid "%s: command not found" +msgstr "%s: ბრძანება ვერ ვიპოვე" + +#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#, c-format +msgid "" +"ignoring \"%s\" found in '.'\n" +"Use \"sudo ./%s\" if this is the \"%s\" you wish to run." +msgstr "" + +#: plugins/sudoers/logging.c:387 +#, c-format +msgid "%u incorrect password attempt" +msgid_plural "%u incorrect password attempts" +msgstr[0] "" +msgstr[1] "" + +#: plugins/sudoers/logging.c:477 +msgid "authentication failure" +msgstr "" + +#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +msgid "a password is required" +msgstr "" + +#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +msgid "problem parsing sudoers" +msgstr "" + +#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#, c-format +msgid "%s:%d:%d: %s" +msgstr "%s:%d:%d: %s" + +#: plugins/sudoers/logging.c:1062 +#, c-format +msgid "unable to write log file: %s" +msgstr "" + +#: plugins/sudoers/match_digest.c:112 +#, c-format +msgid "digest for %s (%s) bad length %zu, expected %zu" +msgstr "" + +#: plugins/sudoers/match_digest.c:131 +#, c-format +msgid "digest for %s (%s) is not in %s form" +msgstr "" + +#: plugins/sudoers/parse.c:591 +#, c-format +msgid "" +"\n" +"LDAP Role: %s\n" +msgstr "" + +#: plugins/sudoers/parse.c:594 +msgid "" +"\n" +"Sudoers entry:\n" +msgstr "" + +#: plugins/sudoers/parse.c:596 +msgid " RunAsUsers: " +msgstr "" + +#: plugins/sudoers/parse.c:611 +msgid " RunAsGroups: " +msgstr "" + +#: plugins/sudoers/parse.c:621 +msgid " Options: " +msgstr "" + +#: plugins/sudoers/parse.c:685 +msgid " Commands:\n" +msgstr " ბრძანებები:\n" + +#: plugins/sudoers/parse.c:876 +#, c-format +msgid "Matching Defaults entries for %s on %s:\n" +msgstr "" + +#: plugins/sudoers/parse.c:894 +#, c-format +msgid "Runas and Command-specific defaults for %s:\n" +msgstr "" + +#: plugins/sudoers/parse.c:912 +#, c-format +msgid "User %s may run the following commands on %s:\n" +msgstr "" + +#: plugins/sudoers/parse.c:927 +#, c-format +msgid "User %s is not allowed to run sudo on %s.\n" +msgstr "" + +#: plugins/sudoers/parse_ldif.c:618 +#, c-format +msgid "ignoring incomplete sudoRole: cn: %s" +msgstr "" + +#: plugins/sudoers/parse_ldif.c:678 +#, c-format +msgid "invalid LDIF attribute: %s" +msgstr "" + +#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#, c-format +msgid "invalid %.*s set by sudo front-end" +msgstr "" + +#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +msgid "unable to parse network address list" +msgstr "" + +#: plugins/sudoers/policy.c:526 +msgid "user name not set by sudo front-end" +msgstr "" + +#: plugins/sudoers/policy.c:530 +msgid "user-ID not set by sudo front-end" +msgstr "" + +#: plugins/sudoers/policy.c:534 +msgid "group-ID not set by sudo front-end" +msgstr "" + +#: plugins/sudoers/policy.c:538 +msgid "host name not set by sudo front-end" +msgstr "" + +#: plugins/sudoers/policy.c:730 +#, c-format +msgid "invalid working directory: %s" +msgstr "" + +#: plugins/sudoers/policy.c:914 +#, c-format +msgid "invalid chroot directory: %s" +msgstr "" + +#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:902 +#, c-format +msgid "unable to execute %s" +msgstr "%s-ის გაშვების შეცდომა" + +#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 +#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#, c-format +msgid "%s: invalid mode flags from sudo front end: 0x%x" +msgstr "" + +#: plugins/sudoers/policy.c:1292 +#, c-format +msgid "Sudoers policy plugin version %s\n" +msgstr "" + +#: plugins/sudoers/policy.c:1294 +#, c-format +msgid "Sudoers file grammar version %d\n" +msgstr "" + +#: plugins/sudoers/policy.c:1298 +#, c-format +msgid "" +"\n" +"Sudoers path: %s\n" +msgstr "" + +#: plugins/sudoers/policy.c:1301 +#, c-format +msgid "nsswitch path: %s\n" +msgstr "" + +#: plugins/sudoers/policy.c:1303 +#, c-format +msgid "ldap.conf path: %s\n" +msgstr "" + +#: plugins/sudoers/policy.c:1304 +#, c-format +msgid "ldap.secret path: %s\n" +msgstr "" + +#: plugins/sudoers/policy.c:1337 +#, c-format +msgid "unable to register hook of type %d (version %d.%d)" +msgstr "" + +#: plugins/sudoers/policy.c:1355 +#, c-format +msgid "unable to deregister hook of type %d (version %d.%d)" +msgstr "" + +#: plugins/sudoers/pwutil.c:222 plugins/sudoers/pwutil.c:240 +#, c-format +msgid "unable to cache uid %u" +msgstr "" + +#: plugins/sudoers/pwutil.c:234 +#, c-format +msgid "unable to cache uid %u, already exists" +msgstr "" + +#: plugins/sudoers/pwutil.c:294 plugins/sudoers/pwutil.c:312 +#: plugins/sudoers/pwutil.c:375 plugins/sudoers/pwutil.c:420 +#, c-format +msgid "unable to cache user %s" +msgstr "" + +#: plugins/sudoers/pwutil.c:307 +#, c-format +msgid "unable to cache user %s, already exists" +msgstr "" + +#: plugins/sudoers/pwutil.c:539 plugins/sudoers/pwutil.c:557 +#, c-format +msgid "unable to cache gid %u" +msgstr "" + +#: plugins/sudoers/pwutil.c:551 +#, c-format +msgid "unable to cache gid %u, already exists" +msgstr "" + +#: plugins/sudoers/pwutil.c:605 plugins/sudoers/pwutil.c:623 +#: plugins/sudoers/pwutil.c:684 plugins/sudoers/pwutil.c:733 +#, c-format +msgid "unable to cache group %s" +msgstr "" + +#: plugins/sudoers/pwutil.c:618 +#, c-format +msgid "unable to cache group %s, already exists" +msgstr "" + +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 +#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#, c-format +msgid "unable to cache group list for %s, already exists" +msgstr "" + +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 +#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#, c-format +msgid "unable to cache group list for %s" +msgstr "" + +#: plugins/sudoers/pwutil.c:925 +#, c-format +msgid "unable to parse groups for %s" +msgstr "" + +#: plugins/sudoers/pwutil.c:1027 +#, c-format +msgid "unable to parse gids for %s" +msgstr "" + +#: plugins/sudoers/set_perms.c:114 plugins/sudoers/set_perms.c:445 +#: plugins/sudoers/set_perms.c:852 plugins/sudoers/set_perms.c:1162 +#: plugins/sudoers/set_perms.c:1460 +msgid "perm stack overflow" +msgstr "" + +#: plugins/sudoers/set_perms.c:125 plugins/sudoers/set_perms.c:376 +#: plugins/sudoers/set_perms.c:456 plugins/sudoers/set_perms.c:719 +#: plugins/sudoers/set_perms.c:863 plugins/sudoers/set_perms.c:1086 +#: plugins/sudoers/set_perms.c:1173 plugins/sudoers/set_perms.c:1393 +#: plugins/sudoers/set_perms.c:1471 plugins/sudoers/set_perms.c:1562 +msgid "perm stack underflow" +msgstr "" + +#: plugins/sudoers/set_perms.c:185 plugins/sudoers/set_perms.c:503 +#: plugins/sudoers/set_perms.c:1227 plugins/sudoers/set_perms.c:1505 +msgid "unable to change to root gid" +msgstr "" + +#: plugins/sudoers/set_perms.c:276 plugins/sudoers/set_perms.c:600 +#: plugins/sudoers/set_perms.c:995 plugins/sudoers/set_perms.c:1304 +msgid "unable to change to runas gid" +msgstr "" + +#: plugins/sudoers/set_perms.c:281 plugins/sudoers/set_perms.c:605 +#: plugins/sudoers/set_perms.c:1000 plugins/sudoers/set_perms.c:1309 +msgid "unable to set runas group vector" +msgstr "" + +#: plugins/sudoers/set_perms.c:292 plugins/sudoers/set_perms.c:616 +#: plugins/sudoers/set_perms.c:1009 plugins/sudoers/set_perms.c:1318 +msgid "unable to change to runas uid" +msgstr "" + +#: plugins/sudoers/set_perms.c:310 plugins/sudoers/set_perms.c:634 +#: plugins/sudoers/set_perms.c:1025 plugins/sudoers/set_perms.c:1334 +msgid "unable to change to sudoers gid" +msgstr "" + +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 +msgid "too many processes" +msgstr "" + +#: plugins/sudoers/solaris_audit.c:61 +msgid "unable to get current working directory" +msgstr "" + +#: plugins/sudoers/solaris_audit.c:69 +#, c-format +msgid "truncated audit path user_cmnd: %s" +msgstr "" + +#: plugins/sudoers/solaris_audit.c:76 +#, c-format +msgid "truncated audit path argv[0]: %s" +msgstr "" + +#: plugins/sudoers/sssd.c:579 +msgid "unable to initialize SSS source. Is SSSD installed on your machine?" +msgstr "" + +#: plugins/sudoers/sssd.c:587 plugins/sudoers/sssd.c:596 +#: plugins/sudoers/sssd.c:605 plugins/sudoers/sssd.c:614 +#: plugins/sudoers/sssd.c:623 +#, c-format +msgid "unable to find symbol \"%s\" in %s" +msgstr "სიმბოლო \"%s\"-ის %s-ში პოვნა შეუძლებელია" + +#: plugins/sudoers/sudoers.c:263 +#, c-format +msgid "unable to get defaults from %s" +msgstr "" + +#: plugins/sudoers/sudoers.c:270 +msgid "no valid sudoers sources found, quitting" +msgstr "" + +#: plugins/sudoers/sudoers.c:346 +#, c-format +msgid "user not allowed to change root directory to %s" +msgstr "" + +#: plugins/sudoers/sudoers.c:348 +#, c-format +msgid "you are not permitted to use the -R option with %s" +msgstr "" + +#: plugins/sudoers/sudoers.c:373 +#, c-format +msgid "user not allowed to change directory to %s" +msgstr "" + +#: plugins/sudoers/sudoers.c:374 +#, c-format +msgid "you are not permitted to use the -D option with %s" +msgstr "" + +#: plugins/sudoers/sudoers.c:401 +msgid "no command specified" +msgstr "ბრძანება მითითებული არაა" + +#: plugins/sudoers/sudoers.c:426 +msgid "sudoers specifies that root is not allowed to sudo" +msgstr "" + +#: plugins/sudoers/sudoers.c:476 +msgid "user not allowed to override closefrom limit" +msgstr "" + +#: plugins/sudoers/sudoers.c:477 +msgid "you are not permitted to use the -C option" +msgstr "" + +#: plugins/sudoers/sudoers.c:537 +#, c-format +msgid "timestamp owner (%s): No such user" +msgstr "" + +#: plugins/sudoers/sudoers.c:552 +msgid "no tty" +msgstr "" + +#: plugins/sudoers/sudoers.c:553 +msgid "sorry, you must have a tty to run sudo" +msgstr "" + +#: plugins/sudoers/sudoers.c:560 +#, c-format +msgid "invalid shell for user %s: %s" +msgstr "" + +#: plugins/sudoers/sudoers.c:643 +msgid "command in current directory" +msgstr "" + +#: plugins/sudoers/sudoers.c:658 +msgid "\"cd\" is a shell built-in command, it cannot be run directly." +msgstr "" + +#: plugins/sudoers/sudoers.c:660 +msgid "the -s option may be used to run a privileged shell." +msgstr "" + +#: plugins/sudoers/sudoers.c:662 +msgid "the -D option may be used to run a command in a specific directory." +msgstr "" + +#: plugins/sudoers/sudoers.c:671 +msgid "user not allowed to set a command timeout" +msgstr "" + +#: plugins/sudoers/sudoers.c:673 +msgid "sorry, you are not allowed set a command timeout" +msgstr "" + +#: plugins/sudoers/sudoers.c:681 +msgid "user not allowed to preserve the environment" +msgstr "" + +#: plugins/sudoers/sudoers.c:683 +msgid "sorry, you are not allowed to preserve the environment" +msgstr "" + +#: plugins/sudoers/sudoers.c:1073 +msgid "sudoedit doesn't need to be run via sudo" +msgstr "" + +#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/tsdump.c:138 +#, c-format +msgid "unable to read %s" +msgstr "" + +#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#, c-format +msgid "%s is not a regular file" +msgstr "%s: არ წარმოადგენს ჩვეულებრივ ფაილს" + +#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#, c-format +msgid "%s is owned by uid %u, should be %u" +msgstr "%s-ის მფლობლის UID-ია %u. უნდა იყოს %u" + +#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#, c-format +msgid "%s is world writable" +msgstr "%s ყველას მიერ ჩაწერადია" + +#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#, c-format +msgid "%s is owned by gid %u, should be %u" +msgstr "" + +#: plugins/sudoers/sudoers.c:1194 +#, c-format +msgid "only root can use \"-c %s\"" +msgstr "" + +#: plugins/sudoers/sudoers.c:1213 +#, c-format +msgid "unknown login class %s" +msgstr "შესვლის უცნობი კლასი: %s" + +#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#, c-format +msgid "unable to resolve host %s" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:259 +#, c-format +msgid "invalid filter option: %s" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:275 +#, c-format +msgid "invalid max wait: %s" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:298 +#, c-format +msgid "invalid speed factor: %s" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:333 +#, c-format +msgid "invalid time offset %s" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:342 +#, c-format +msgid "%s/%.2s/%.2s/%.2s: %s" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:347 +#, c-format +msgid "%s/timing: %s" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:375 +#, c-format +msgid "Replaying sudo session: %s" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:637 +msgid "unable to set tty to raw mode" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:688 +msgid "Warning: your terminal is too small to properly replay the log.\n" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:689 +#, c-format +msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." +msgstr "" + +#: plugins/sudoers/sudoreplay.c:717 +msgid "Replay finished, press any key to restore the terminal." +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#, c-format +msgid "ambiguous expression \"%s\"" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1271 +msgid "unmatched ')' in expression" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1275 +#, c-format +msgid "unknown search term \"%s\"" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1290 +#, c-format +msgid "%s requires an argument" +msgstr "%s არგუმენტი აუცილებელია" + +#: plugins/sudoers/sudoreplay.c:1300 +#, c-format +msgid "could not parse date \"%s\"" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1309 +msgid "unmatched '(' in expression" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1311 +msgid "illegal trailing \"or\"" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1313 +msgid "illegal trailing \"!\"" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1371 +#, c-format +msgid "unknown search type %d" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1650 +#, c-format +msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1652 +#, c-format +msgid "usage: %s [-h] [-d dir] -l [search expression]\n" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1666 +#, c-format +msgid "" +"%s - replay sudo session logs\n" +"\n" +msgstr "" + +#: plugins/sudoers/sudoreplay.c:1668 +msgid "" +"\n" +"Options:\n" +" -d, --directory=dir specify directory for session logs\n" +" -f, --filter=filter specify which I/O type(s) to display\n" +" -h, --help display help message and exit\n" +" -l, --list list available session IDs, with optional expression\n" +" -m, --max-wait=num max number of seconds to wait between events\n" +" -n, --non-interactive no prompts, session is sent to the standard output\n" +" -R, --no-resize do not attempt to re-size the terminal\n" +" -S, --suspend-wait wait while the command was suspended\n" +" -s, --speed=num speed up or slow down output\n" +" -V, --version display version information and exit" +msgstr "" + +#: plugins/sudoers/testsudoers.c:344 +msgid "\thost unmatched" +msgstr "" + +#: plugins/sudoers/testsudoers.c:347 +msgid "" +"\n" +"Command allowed" +msgstr "" + +#: plugins/sudoers/testsudoers.c:348 +msgid "" +"\n" +"Command denied" +msgstr "" + +#: plugins/sudoers/testsudoers.c:348 +msgid "" +"\n" +"Command unmatched" +msgstr "" + +#: plugins/sudoers/timestamp.c:354 plugins/sudoers/timestamp.c:693 +#, c-format +msgid "unable to truncate time stamp file to %lld bytes" +msgstr "" + +#: plugins/sudoers/timestamp.c:890 +msgid "ignoring time stamp from the future" +msgstr "" + +#: plugins/sudoers/timestamp.c:913 +#, c-format +msgid "time stamp too far in the future: %20.20s" +msgstr "" + +#: plugins/sudoers/timestamp.c:1042 +#, c-format +msgid "unable to lock time stamp file %s" +msgstr "" + +#: plugins/sudoers/toke_util.c:156 +msgid "sudoedit should not be specified with a path" +msgstr "" + +#: plugins/sudoers/visudo.c:254 +msgid "the -x option will be removed in a future release" +msgstr "" + +#: plugins/sudoers/visudo.c:256 +msgid "please consider using the cvtsudoers utility instead" +msgstr "" + +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#, c-format +msgid "press return to edit %s: " +msgstr "" + +#: plugins/sudoers/visudo.c:326 +#, c-format +msgid "contents of edit session left in %s" +msgstr "ნაპოვნია ჩასწორების სესიის ნარჩენი შემცველობა: %s" + +#: plugins/sudoers/visudo.c:402 +#, c-format +msgid "specified editor (%s) doesn't exist" +msgstr "" + +#: plugins/sudoers/visudo.c:404 +#, c-format +msgid "no editor found (editor path = %s)" +msgstr "" + +#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#, c-format +msgid "unable to stat %s" +msgstr "%s-ის აღმოჩენის შეცდომა" + +#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +msgid "write error" +msgstr "ჩაწერის შეცდომა" + +#: plugins/sudoers/visudo.c:565 +#, c-format +msgid "unable to stat temporary file (%s), %s unchanged" +msgstr "" + +#: plugins/sudoers/visudo.c:572 +#, c-format +msgid "zero length temporary file (%s), %s unchanged" +msgstr "" + +#: plugins/sudoers/visudo.c:578 +#, c-format +msgid "editor (%s) failed, %s unchanged" +msgstr "" + +#: plugins/sudoers/visudo.c:600 +#, c-format +msgid "%s unchanged" +msgstr "%s შეუცვლელია" + +#: plugins/sudoers/visudo.c:645 +#, c-format +msgid "unable to re-open temporary file (%s), %s unchanged." +msgstr "" + +#: plugins/sudoers/visudo.c:658 +#, c-format +msgid "unable to parse temporary file (%s), unknown error" +msgstr "" + +#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 +#: plugins/sudoers/visudo.c:781 +#, c-format +msgid "unable to set (uid, gid) of %s to (%u, %u)" +msgstr "" + +#: plugins/sudoers/visudo.c:809 +#, c-format +msgid "%s and %s not on the same file system, using mv to rename" +msgstr "" + +#: plugins/sudoers/visudo.c:820 +#, c-format +msgid "command failed: '%s %s %s', %s unchanged" +msgstr "" + +#: plugins/sudoers/visudo.c:827 +#, c-format +msgid "error renaming %s, %s unchanged" +msgstr "" + +#: plugins/sudoers/visudo.c:847 +msgid "What now? " +msgstr "ახლა რა ვქნათ? " + +#: plugins/sudoers/visudo.c:861 +msgid "" +"Options are:\n" +" (e)dit sudoers file again\n" +" e(x)it without saving changes to sudoers file\n" +" (Q)uit and save changes to sudoers file (DANGER!)\n" +msgstr "" + +#: plugins/sudoers/visudo.c:907 +#, c-format +msgid "unable to run %s" +msgstr "%s-ის გაშვების შეცდომა" + +#: plugins/sudoers/visudo.c:938 +#, c-format +msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" +msgstr "" + +#: plugins/sudoers/visudo.c:949 +#, c-format +msgid "%s: bad permissions, should be mode 0%o\n" +msgstr "" + +#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#, c-format +msgid "%s: parsed OK\n" +msgstr "" + +#: plugins/sudoers/visudo.c:1023 +#, c-format +msgid "%s busy, try again later" +msgstr "" + +#: plugins/sudoers/visudo.c:1027 +msgid "Edit anyway? [y/N]" +msgstr "" + +#: plugins/sudoers/visudo.c:1128 +#, c-format +msgid "Warning: %s:%d:%d: unused %s \"%s\"" +msgstr "" + +#: plugins/sudoers/visudo.c:1240 +#, c-format +msgid "" +"%s - safely edit the sudoers file\n" +"\n" +msgstr "" + +#: plugins/sudoers/visudo.c:1242 +msgid "" +"\n" +"Options:\n" +" -c, --check check-only mode\n" +" -f, --file=sudoers specify sudoers file location\n" +" -h, --help display help message and exit\n" +" -I, --no-includes do not edit include files\n" +" -q, --quiet less verbose (quiet) syntax error messages\n" +" -s, --strict strict syntax checking\n" +" -V, --version display version information and exit\n" +msgstr "" + +#: toke.l:189 +msgid "empty string" +msgstr "ცარიელი სტრიქონი" + +#: toke.l:201 toke.l:571 +msgid "empty group" +msgstr "ცარიელი ჯგუფი" + +#: toke.l:211 toke.l:569 +msgid "empty netgroup" +msgstr "" + +#: toke.l:289 +msgid "unterminated regular expression" +msgstr "" + +#: toke.l:363 toke.l:375 toke.l:387 toke.l:403 toke.l:422 toke.l:462 +msgid "invalid line continuation" +msgstr "" + +#: toke.l:608 toke.l:620 +msgid "invalid IPv6 address" +msgstr "არასწორი IPv6 მისამართი" + +#: toke.l:868 +msgid "unexpected line break in string" +msgstr "" + +#: toke.l:1218 +msgid "too many levels of includes" +msgstr "" diff --git a/plugins/sudoers/po/ko.mo b/plugins/sudoers/po/ko.mo index a02c73f26a..d121eb9de6 100644 Binary files a/plugins/sudoers/po/ko.mo and b/plugins/sudoers/po/ko.mo differ diff --git a/plugins/sudoers/po/ko.po b/plugins/sudoers/po/ko.po index 5d2b063ffd..2dd8eeb509 100644 --- a/plugins/sudoers/po/ko.po +++ b/plugins/sudoers/po/ko.po @@ -1,14 +1,14 @@ # Korean translation for the sudoers plugin # This file is distributed under the same license as the sudo package. # Todd C. Miller , 2011-2015 -# Seong-ho Cho , 2016-2022. +# Seong-ho Cho , 2016-2023. # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.12b2\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-10 09:13-0600\n" -"PO-Revision-Date: 2022-10-12 12:18+0900\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-27 00:39+0900\n" "Last-Translator: Seong-ho Cho \n" "Language-Team: Korean \n" "Language: ko\n" @@ -17,9 +17,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 2.3.1\n" -#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "문법 오류" @@ -50,73 +50,72 @@ msgstr "죄송합니다만, 다시 시도하십시오." #: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 #: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 #: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 -#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 -#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 -#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 -#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 -#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 -#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 -#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 -#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 -#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 -#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 -#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 -#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 -#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 -#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 -#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 -#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 -#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 -#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 -#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 -#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 -#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 -#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 -#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 -#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 -#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 -#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 -#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 -#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 -#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 -#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 -#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 -#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 -#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 -#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 -#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 -#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 -#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 -#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 -#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 -#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 -#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 -#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 -#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 -#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 -#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:52 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 +#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 +#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 +#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 +#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 +#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 +#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 +#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 +#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 +#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 +#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 +#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 +#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -127,67 +126,67 @@ msgstr "죄송합니다만, 다시 시도하십시오." #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 -#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 -#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 -#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 -#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 -#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 -#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 -#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 -#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 -#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 -#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 -#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 -#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 -#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 -#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 -#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 #: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 #: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 @@ -196,8 +195,8 @@ msgstr "죄송합니다만, 다시 시도하십시오." #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 #: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 -#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 -#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "메모리를 할당할 수 없습니다" @@ -234,15 +233,15 @@ msgstr "부적절한 notbefore 값" msgid "invalid notafter value" msgstr "부적절한 notafter 값" -#: gram.y:844 plugins/sudoers/policy.c:383 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "제한 시간 값이 너무 큽니다" -#: gram.y:846 plugins/sudoers/policy.c:385 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "부적절한 제한 시간 값" -#: gram.y:967 plugins/sudoers/sudoers.c:1033 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "명령이 너무 깁니다" @@ -257,76 +256,75 @@ msgstr "%s:%d:%d: %s\n" msgid "Alias \"%s\" already defined" msgstr "\"%s\" 별칭을 이미 정의했습니다" -#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 -#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 -#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 -#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 -#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 -#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 -#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 -#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 -#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 -#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 -#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 -#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 -#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 -#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 -#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 -#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 -#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 -#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 -#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 -#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 -#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 -#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 -#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 -#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 -#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 -#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 -#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 -#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 -#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 -#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 -#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 -#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -339,80 +337,80 @@ msgstr "\"%s\" 별칭을 이미 정의했습니다" #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 -#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 -#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 -#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 -#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 -#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 -#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 -#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 -#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 -#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 -#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 -#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 -#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 -#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 -#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 -#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 -#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 -#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 #: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 #: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 @@ -421,68 +419,48 @@ msgstr "\"%s\" 별칭을 이미 정의했습니다" #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 #: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 #: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 -#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 -#: toke.l:1155 toke.l:1218 toke.l:1226 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 -#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 -#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 -#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "내부 오류. %s 오버플로우" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "표준 입력을 복제할 수 없습니다: %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "%s을(를) 실행할 수 없습니다: %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "포킹할 수 없습니다" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "포킹할 수 없습니다: %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "파이프를 열 수 없습니다: %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (명령 계속 실행) %s" #: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "부적절한 정규 표현식 \"%s\": %s" @@ -500,64 +478,64 @@ msgstr "JSON_ARRAY 값이 너무 큽니다" msgid "missing double quote in name" msgstr "이름에 이중 따옴표가 빠졌습니다" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "JSON_OBJECT 값이 빠졌습니다" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "JSON_OBJECT 값을 기대했지만, %d 결과가 나왔습니다" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "json 스택 용량이 부족합니다 (최대 %u 프레임)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "객체는 이름:값 쌍으로 구성해야 합니다" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "값을 구분하는 구분자가 빠졌습니다" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "일치하지 않는 중괄호 닫기 표시" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "예기치 않은 배열 발견" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "일치하지 않는 각괄호 닫기 표시" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "예기치 않은 문자열 값 발견" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "이름 뒤에 콜론이 빠졌습니다" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "예기치 않은 부울린 값 발견" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "예기치 않은 NULL 값 발견" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "예기치 않은 숫자 값 발견" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "해석 오류" @@ -596,14 +574,14 @@ msgstr "%s: 실행 그룹 필드가 빠졌습니다" msgid "%s exists but is not a directory (0%o)" msgstr "%s이(가) 있지만 디렉터리가 아닙니다(0%o)" -#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 #: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "mkdir %s 명령을 실행할 수 없습니다" -#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 -#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "%s 모드를 0%o 값으로 바꿀 수 없습니다" @@ -635,8 +613,8 @@ msgstr "%s: 프로토콜 오류: %s의 잘못된 형식" msgid "%s: protocol error: NULL value found in %s" msgstr "%s: 프로토콜 오류: %s에 NULL값 들어감" -#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 -#: plugins/sudoers/policy.c:591 +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 msgid "unable to generate UUID" msgstr "UUID를 만들 수 없습니다" @@ -688,27 +666,27 @@ msgstr "%d 입출력 파일 서술자 제거 오류: %s" msgid "invalid I/O log %s: %s referenced but not present" msgstr "부적절한 %s 입출력 로그: %s을(를) 참조했지만 없습니다" -#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s: [%lld, %ld] 재개 지점을 찾을 수 없습니다" -#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 #: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 #: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 #: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 #: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 -#: plugins/sudoers/visudo.c:971 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "%s을(를) 열 수 없습니다" #: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 -#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "%s/%s을(를) 열 수 없습니다" @@ -718,7 +696,7 @@ msgstr "%s/%s을(를) 열 수 없습니다" msgid "unable to copy %s/%s to %s/%s: %s" msgstr "%s/%s을(를) %s/%s(으)로 복사할 수 없습니다: %s" -#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "%s을(를) %s(으)로 이름을 바꿀 수 없습니다" @@ -751,28 +729,28 @@ msgstr "서버 메시지가 너무 깁니다: %zu" #: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 #: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 #: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 -#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 #: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 #: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 #: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 #: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 #: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 #: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 -#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 -#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 #: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 #: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 #: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 -#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 -#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 -#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 -#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 -#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "큐에 이벤트를 추가할 수 없습니다" @@ -832,14 +810,14 @@ msgstr "부적절한 ChangeWindowSize" msgid "invalid CommandSuspend" msgstr "부적절한 CommandSuspend" -#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 #: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 -#: plugins/sudoers/log_client.c:1583 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "%2$zu 크기의 %1$s을(를) 언팩할 수 없습니다" -#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 #: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" @@ -875,8 +853,8 @@ msgstr "적절한 TLS 셧다운 미이행을 동반한 %s의 파일끝(EOF)" msgid "client message too large: %zu" msgstr "클라이언드 메시지가 너무 깁니다: %zu" -#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 -#: logsrvd/logsrvd_journal.c:257 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "클라이언트 메시지가 너무 깁니다" @@ -941,23 +919,23 @@ msgid "invalid random drop value: %s" msgstr "부적절한 임의 철회 값: %s" #: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 #: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s 버전 %s\n" -#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 -#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "알 수 없는 사용자 %s" #: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" @@ -1031,7 +1009,7 @@ msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] 잘못된 키: %s" #: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1029 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "%s 로그 파일을 열 수 없습니다" @@ -1044,49 +1022,49 @@ msgstr "서버 TLS 컨텍스트를 초기화할 수 없습니다" msgid "unable to initialize relay TLS context" msgstr "릴레이 TLS 컨텍스트를 초기화할 수 없습니다" -#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 -#: logsrvd/logsrvd_journal.c:426 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "저널 파일을 만들 수 없습니다" -#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 -#: plugins/sudoers/visudo.c:1026 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "%s을(를) 잠글 수 없습니다" -#: logsrvd/logsrvd_journal.c:153 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "저널 파일을 잠글 수 없습니다" -#: logsrvd/logsrvd_journal.c:161 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "저널 파일을 열 수 없습니다" -#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 -#: logsrvd/logsrvd_journal.c:462 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "저널 파일을 기록할 수 없습니다" -#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "저널 파일 이름을 바꿀 수 없습니다" -#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 -#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "저널 파일 읽는 중 예기치 않은 파일 끝 발견" -#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 -#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "저널 파일 읽기 오류" -#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "부적절한 저널 파일. 다시 시작할 수 없습니다" -#: logsrvd/logsrvd_journal.c:440 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "%3$s 저널 파일에서 [%1$lld, %2$ld] 위치를 탐색할 수 없습니다" @@ -1144,7 +1122,7 @@ msgstr "길이 %d인 타이밍 버퍼를 포매팅할 수 없습니다" #: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 #: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 -#: plugins/sudoers/sudoreplay.c:351 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" @@ -1179,7 +1157,7 @@ msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: 부적절한 ServerHello, server_id가 빠졌습니다" #: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 -#: plugins/sudoers/log_client.c:1469 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "부적절한 ServerHello" @@ -1292,35 +1270,35 @@ msgstr "%s:%s을(를) 찾을 수 없습니다: %s" msgid "unable to get server IP addr" msgstr "서버 IP 주소를 가져올 수 없습니다" -#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "%s/%s을(를) 읽을 수 없습니다: %s" -#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 -#: plugins/sudoers/iolog.c:1026 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "예기치 않은 입출력 이벤트 %d" #: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 -#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 -#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: 예기치 않은 상태 번호 %d" -#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "서버로부터 오류 메시지를 받았습니다: %s" -#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "서버로부터 중단 메시지를 받았습니다: %s" -#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: 예기지 않은 type_case 값 %d" @@ -1329,7 +1307,7 @@ msgstr "%s: 예기지 않은 type_case 값 %d" msgid "timeout reading from server" msgstr "서버 데이터 읽기 시간 초과" -#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "호스트 이름이 인증서와 일치하지 않습니다" @@ -1337,7 +1315,7 @@ msgstr "호스트 이름이 인증서와 일치하지 않습니다" msgid "premature EOF" msgstr "갑작스러운 EOF" -#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "서버 메시지가 너무 깁니다: %u" @@ -1424,10 +1402,10 @@ msgstr "TLS 프로토콜 최소 버전을 1.2로 설정할 수 없습니다: %s" #: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 #: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 -#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 -#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 -#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 -#: plugins/sudoers/policy.c:124 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "일시 정보를 가져올 수 없습니다" @@ -1581,11 +1559,11 @@ msgstr "SecurID 서버에 연결할 수 없습니다" msgid "User ID locked for SecurID Authentication" msgstr "SecurID 인증 과정에 사용자 ID가 잠겼습니다" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "SecurID용 사용자 이름 길이가 잘못되었습니다" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "SecurID용 인증 핸들이 잘못되었습니다" @@ -1593,11 +1571,11 @@ msgstr "SecurID용 인증 핸들이 잘못되었습니다" msgid "SecurID communication failed" msgstr "SecurID 통신에 실패했습니다" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "알 수 없는 SecurID 오류" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "SecurID용 암호 길이가 잘못되었습니다" @@ -1667,9 +1645,17 @@ msgstr "" " #3) 막강한 힘에는 상당한 책임이 뒤따릅니다.\n" "\n" -#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 -#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"보안상 사유로, 입력한 암호는 나타나지 않습니다.\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "알 수 없는 uid %u" @@ -1687,7 +1673,7 @@ msgstr "%s의 사이클 \"%s\"" #: plugins/sudoers/check_aliases.c:136 #, c-format msgid "%s \"%s\" referenced but not defined" -msgstr "%s \"%s\"을 참조했지만 정의하지는 않았습니다" +msgstr "%s \"%s\"을(를) 참조했지만 정의하지는 않았습니다" #: plugins/sudoers/cvtsudoers.c:209 #, c-format @@ -1726,8 +1712,7 @@ msgstr "%s: 입출력 파일은 달라야합니다" #: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 #: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 -#: plugins/sudoers/visudo.c:975 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "sudoers 기본 값을 초기화할 수 없습니다" @@ -1756,12 +1741,12 @@ msgstr "부적절한 생략 형식: %s" msgid "invalid filter: %s" msgstr "부적절한 필터: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "%s 파일 해석에 실패했습니다. 알 수 없는 오류." -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 #: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" @@ -1816,17 +1801,36 @@ msgstr "" " -s, --suppress=<섹션> 지정 <섹션> 출력은 제외합니다\n" " -V, --version 버전 정보를 표시하고 빠져나갑니다" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "내부 오류. %s 오버플로우" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "GMT 시간을 가져올 수 없습니다" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "타임스탬프를 형식에 맞출 수 없습니다" @@ -2640,8 +2644,8 @@ msgstr "\"%2$s\" 옵션의 부적절한 기본 형식 0x%1$x" msgid "value \"%s\" is invalid for option \"%s\"" msgstr "\"%s\" 값은 \"%s\" 옵션에 맞지 않습니다" -#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 -#: plugins/sudoers/policy.c:217 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "\"%s\" 경로 이름이 너무 깁니다" @@ -2656,15 +2660,24 @@ msgstr "\"%s\" 값은 '/', '~', '*' 문자로 시작해야합니다" msgid "values for \"%s\" must start with a '/'" msgstr "\"%s\" 값은 '/' 문자로 시작해야합니다" +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "편집기 무시: %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "편집기 인자에 \"--\"를 넣으면 안됩니다" + #: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: envp가 깨졌습니다. 길이가 일치하지 않습니다" -#: plugins/sudoers/env.c:1109 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "환경 구성을 다시 갖출 수 없습니다" -#: plugins/sudoers/env.c:1183 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "죄송하지만 다음 환경 변수를 설정하도록 허가받지 않았습니다: %s" @@ -2679,27 +2692,17 @@ msgstr "%2$s에서 지원하지 않는 다이제스트 형식 %1$d" msgid "%s: read error" msgstr "%s: 읽기 오류" -#: plugins/sudoers/group_plugin.c:169 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s은(는) %d uid가 소유해야 합니다" - -#: plugins/sudoers/group_plugin.c:173 -#, c-format -msgid "%s must only be writable by owner" -msgstr "%s은(는) 소유자만 쓸 수 있습니다" - -#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "%s을(를) 불러올 수 없습니다: %s" -#: plugins/sudoers/group_plugin.c:197 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "%s에서 \"group_plugin\" 심볼을 찾을 수 없습니다" -#: plugins/sudoers/group_plugin.c:202 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: 호환되지 않는 그룹 플러그인 주 버전 %d입니다. %d이(가) 필요합니다." @@ -2722,10 +2725,10 @@ msgstr "로컬 IP 주소 및 넷마스크 쌍:\n" msgid "unable to update sequence file" msgstr "시퀀스 파일을 업데이트할 수 없습니다" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 -#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 -#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 -#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "입출력 로그에 기록할 수 없습니다: %s" @@ -2735,20 +2738,20 @@ msgstr "입출력 로그에 기록할 수 없습니다: %s" msgid "unable to create %s/%s" msgstr "%s/%s을(를) 만들 수 없습니다" -#: plugins/sudoers/iolog.c:957 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: 내부 오류. 이벤트 %d 번의 입출력 로그 파일을 열지 않았습니다" -#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 -#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 -#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "클록을 읽을 수 없습니다" -#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 -#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: 내부 오류. 부적절한 시그널 %d번" @@ -2767,16 +2770,16 @@ msgstr "SSL 인증서 및 키 DB를 초기화할 수 없습니다: %s" msgid "you must set TLS_CERT in %s to use SSL" msgstr "SSL을 사용하려면 %s에서 TLS_CERT를 설정해야 합니다" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "LDAP를 초기화할 수 없습니다: %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls를 지정했지만 LDAP 라이브러리에서 ldap_start_tls_s() 또는 ldap_start_tls_s_np() 함수를 지원하지 않습니다" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "부적절한 sudoOrder 속성: %s" @@ -2817,7 +2820,7 @@ msgid "unable to send audit message" msgstr "감시 메시지를 보낼 수 없습니다" #: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 -#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "이벤트 루프 오류" @@ -2859,20 +2862,20 @@ msgstr "TLS 초기화에 실패했습니다" msgid "TLS handshake was unsuccessful" msgstr "TLS 핸드셰이킹에 실패했습니다" -#: plugins/sudoers/log_client.c:1211 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: 내부 오류. 부적절한 종료 상태 %d" -#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "로그 서버의 연결이 끊어졌습니다" -#: plugins/sudoers/log_client.c:1841 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "기록 버퍼 빠짐" -#: plugins/sudoers/log_client.c:1995 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "로그 서버에 연결할 수 없습니다" @@ -2912,15 +2915,15 @@ msgstr "죄송하지만 %1$s 사용자는 '%2$s%3$s%4$s'을(를) %8$s의 %5$s%6$ msgid "This incident has been reported to the administrator.\n" msgstr "이번 시도는 관리자에게 보고했습니다.\n" -#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 -#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 -#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 -#: plugins/sudoers/sudoers.c:807 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s: 명령이 없습니다" -#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2929,30 +2932,30 @@ msgstr "" "'.'에 무시 중인 \"%1$s\" 요소가 있습니다.\n" "\"%3$s\" 명령을 실행하려면, \"sudo ./%2$s\" 명령을 사용하십시오." -#: plugins/sudoers/logging.c:387 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" msgstr[0] "잘못된 암호 입력 시도 %u번" -#: plugins/sudoers/logging.c:477 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "인증 실패" -#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "암호가 필요합니다" -#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "sudoers 해석 문제" -#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1062 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "로그 파일에 기록할 수 없습니다: %s" @@ -2967,7 +2970,7 @@ msgstr "%1$s 다이제스트(%2$s)는 %4$zu 길이를 기대했지만 잘못된 msgid "digest for %s (%s) is not in %s form" msgstr "%s 다이제스트(%s)는 %s 형식이 아닙니다" -#: plugins/sudoers/parse.c:591 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2976,7 +2979,7 @@ msgstr "" "\n" "LDAP 역할: %s\n" -#: plugins/sudoers/parse.c:594 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2984,38 +2987,38 @@ msgstr "" "\n" "Sudoers 항목:\n" -#: plugins/sudoers/parse.c:596 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " 실행 사용자: " -#: plugins/sudoers/parse.c:611 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " 실행 그룹: " -#: plugins/sudoers/parse.c:621 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " 옵션: " -#: plugins/sudoers/parse.c:685 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " 명령:\n" -#: plugins/sudoers/parse.c:876 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "%2$s에서 %1$s에 일치하는 기본 항목:\n" -#: plugins/sudoers/parse.c:894 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "%s의 실행 권한 및 명령별 기본 값:\n" -#: plugins/sudoers/parse.c:912 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "%s 사용자는 %s에서 다음 명령을 실행해야 합니다:\n" -#: plugins/sudoers/parse.c:927 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "%s 사용자는 %s에서 sudo를 실행하도록 허가받지 않았습니다.\n" @@ -3030,64 +3033,64 @@ msgstr "미완결 sudoRole 무시: cn: %s" msgid "invalid LDIF attribute: %s" msgstr "부적절한 LDIF 속성: %s" -#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "sudo 프론트엔드의 %.*s 설정이 잘못되었습니다" -#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "네트워크 주소 목록을 해석할 수 없습니다" -#: plugins/sudoers/policy.c:526 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "sudo 프론트엔드에서 사용자 이름을 설정하지 않았습니다" -#: plugins/sudoers/policy.c:530 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "sudo 프론트엔드에서 사용자 ID를 설정하지 않았습니다" -#: plugins/sudoers/policy.c:534 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "sudo 프론트엔드에서 그룹 ID를 지정하지 않았습니다" -#: plugins/sudoers/policy.c:538 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "sudo 프론트엔드에서 호스트 이름을 설정하지 않았습니다" -#: plugins/sudoers/policy.c:730 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "부적절한 작업 디렉터리: %s" -#: plugins/sudoers/policy.c:914 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "부적절한 루트 변경 디렉터리: %s" -#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 -#: plugins/sudoers/visudo.c:902 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "%s을(를) 실행할 수 없습니다" -#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 -#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: sudo 프론트엔드의 상태 플래그가 잘못되었습니다: 0x%x" -#: plugins/sudoers/policy.c:1292 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Sudoers 정책 플러그인 버전 %s\n" -#: plugins/sudoers/policy.c:1294 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Sudoers 파일 문법 버전 %d\n" -#: plugins/sudoers/policy.c:1298 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3096,27 +3099,27 @@ msgstr "" "\n" "Sudoers 경로: %s\n" -#: plugins/sudoers/policy.c:1301 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "nsswitch 경로: %s\n" -#: plugins/sudoers/policy.c:1303 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "ldap.conf 경로: %s\n" -#: plugins/sudoers/policy.c:1304 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "ldap.secret 경로: %s\n" -#: plugins/sudoers/policy.c:1337 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "%d 형식의 후크를 등록할 수 없습니다(버전 %d.%d)" -#: plugins/sudoers/policy.c:1355 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "%d 형식의 후크 등록을 해제할 수 없습니다(버전 %d.%d)" @@ -3163,24 +3166,24 @@ msgstr "%s 그룹을 캐시에 적재할 수 없습니다" msgid "unable to cache group %s, already exists" msgstr "%s 그룹을 캐시에 적재할 수 없습니다. 이미 존재합니다." -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "%s 그룹 목록을 캐시에 적재할 수 없습니다. 이미 존재합니다." -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "%s 그룹 목록을 캐시에 적재할 수 없습니다" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "%s 그룹을 해석할 수 없습니다" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "%s 그룹 ID를 해석할 수 없습니다" @@ -3292,213 +3295,217 @@ msgstr "지정한 명령이 없음" msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers에서 root가 sudo를 실행하지 못하게 지정했습니다" -#: plugins/sudoers/sudoers.c:476 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "사용자가 closefrom 제한 값을 따로 적용하도록 허용하지 않았습니다" -#: plugins/sudoers/sudoers.c:477 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "-C 옵션 사용을 허가받지 않았습니다" -#: plugins/sudoers/sudoers.c:537 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "타임스탬프 소유자(%s): 사용자 없음" -#: plugins/sudoers/sudoers.c:552 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "tty 없음" -#: plugins/sudoers/sudoers.c:553 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "죄송하지만 sudo를 실행하려면 tty를 확보해야합니다" -#: plugins/sudoers/sudoers.c:560 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "%s 사용자에게 부적절한 셸 제공: %s" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "현재 디렉터리의 명령" -#: plugins/sudoers/sudoers.c:658 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "\"cd\"는 셸 내장 명령으로, 직접 실행할 수 없습니다." -#: plugins/sudoers/sudoers.c:660 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "-s 옵션은 별도 권한을 부여한 셸에서 실행할 때 사용합니다." -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "-D 옵션은 지정 디렉터리에서 명령을 실행할 때 사용합니다." -#: plugins/sudoers/sudoers.c:671 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "사용자가 명령 처리 제한 시간을 설정하도록 허용하지 않았습니다" -#: plugins/sudoers/sudoers.c:673 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "죄송하지만, 명령 처리 제한 시간을 설정할 수 없습니다" -#: plugins/sudoers/sudoers.c:681 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "사용자가 환경 설정 값을 유지하도록 허용하지 않았습니다" -#: plugins/sudoers/sudoers.c:683 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "죄송하지만 이 환경 상태를 유지하도록 허가받지 않았습니다" -#: plugins/sudoers/sudoers.c:1073 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "사용자 지정 환경 변수 설정 오류" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit는 sudo로 실행할 필요가 없습니다" -#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "%s을(를) 읽을 수 없습니다" -#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s은(는) 일반 파일이 아닙니다" -#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s은(는) %u uid가 소유했지만, %u uid가 소유해야합니다" -#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "%s에 모두가 기록할 수 있습니다" -#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s은(는) %u gid가 소유했지만, %u gid가 소유해야합니다" -#: plugins/sudoers/sudoers.c:1194 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "루트만 \"-c %s\" 옵션을 사용할 수 있습니다" -#: plugins/sudoers/sudoers.c:1213 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "알 수 없는 로그인 클래스 %s" -#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "%s 호스트를 해석할 수 없습니다" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "부적절한 필터 옵션: %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "부적절한 최대 대기 시간 값: %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "부적절한 속도 인수: %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "부적절한 시간 오프셋 %s" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/timing: %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "sudo 세션 재현 중: %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "RAW 모드로 tty를 설정할 수 없습니다" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "경고: 터미널 화면이 로그를 올바르게 나타내기에 너무 작습니다.\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "로그 화면 크기는 %d x %d 이지만, 터미널 화면 크기는 %d x %d 입니다." -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "재현에 끝났습니다. 터미널을 복원하려면 아무 키나 누르십시오." -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "모호한 식 \"%s\"" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "수식에 일치하지 않는 ')'" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "알 수 없는 검색어 \"%s\"" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s에 인자가 필요합니다" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "\"%s\" 날짜를 해석할 수 없습니다" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "수식에 일치하지 않는 '('" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "잘못된 후위 연산자 \"or\"" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "잘못된 후위 문자 \"!\"" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "알 수 없는 검색 형식 %d" -#: plugins/sudoers/sudoreplay.c:1650 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "사용법: %s [-hnRS] [-d <디렉터리>] [-m <숫자>] [-s <숫자>] \n" -#: plugins/sudoers/sudoreplay.c:1652 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "사용법: %s [-h] [-d <디렉터리>] -l [<검색식>]\n" -#: plugins/sudoers/sudoreplay.c:1666 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3507,7 +3514,7 @@ msgstr "" "%s - sudo 세션 로그를 보여줍니다\n" "\n" -#: plugins/sudoers/sudoreplay.c:1668 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3594,7 +3601,7 @@ msgstr "-x 옵션은 추후 릴리스에서 제거 예정입니다" msgid "please consider using the cvtsudoers utility instead" msgstr "cvtsudoers 유틸리티를 대신 사용해보십시오" -#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "%s 항목을 편집하려면 return 키를 누르십시오: " @@ -3604,81 +3611,81 @@ msgstr "%s 항목을 편집하려면 return 키를 누르십시오: " msgid "contents of edit session left in %s" msgstr "%s에 편집 세션 내용이 남았습니다" -#: plugins/sudoers/visudo.c:402 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "지정 편집기(%s)가 없습니다" -#: plugins/sudoers/visudo.c:404 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "편집기가 없습니다(편집기 경로 = %s)" -#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 #, c-format msgid "unable to stat %s" msgstr "%s의 상태를 가져올 수 없습니다" -#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "쓰기 오류" -#: plugins/sudoers/visudo.c:565 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "임시 파일 상태를 가져올 수 없습니다(%s). %s을(를) 바꾸지 않았습니다" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "임시 파일 길이가 0입니다(%s). %s을(를) 바꾸지 않았습니다" -#: plugins/sudoers/visudo.c:578 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "편집기(%s) 실패. %s을(를) 바꾸지 않았습니다" -#: plugins/sudoers/visudo.c:600 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s 바꾸지 않음" -#: plugins/sudoers/visudo.c:645 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "임시 파일(%s)을 다시 열 수 없습니다. %s을(를) 바꾸지 않았습니다." -#: plugins/sudoers/visudo.c:658 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "임시 파일(%s)을 해석할 수 없습니다. 알 수 없는 오류" -#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "%s의 uid/gid를 %u/%u 값으로 설정할 수 없습니다" -#: plugins/sudoers/visudo.c:809 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s 및 %s은(는) 동일한 파일 시스템에 없습니다. mv 명령으로 이름을 바꿉니다" -#: plugins/sudoers/visudo.c:820 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "명령 실행 실패: '%s %s %s', %s을(를) 바꾸지 않았습니다" -#: plugins/sudoers/visudo.c:827 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "%s 이름 바꾸기 오류. %s을(를) 바꾸지 않았습니다" -#: plugins/sudoers/visudo.c:847 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "어떻게 하시겠습니까? " -#: plugins/sudoers/visudo.c:861 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3690,41 +3697,41 @@ msgstr "" " sudoers 파일을 바꾼 상태에서 저장하지 않고 나갑니다(X)\n" " sudoers 파일을 바꾼 상태에서 저장하고 끝냅니다(Q)\n" -#: plugins/sudoers/visudo.c:907 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "%s을(를) 실행할 수 없음" -#: plugins/sudoers/visudo.c:938 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: 잘못된 소유자 uid/gid를 %u/%u 값으로 설정해야 합니다\n" -#: plugins/sudoers/visudo.c:949 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: 잘못된 권한입니다. 0%o 모드 값을 설정해야 합니다\n" -#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s: 해석 성공\n" -#: plugins/sudoers/visudo.c:1023 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s을(를) 사용중입니다. 나중에 다시 시도하십시오" -#: plugins/sudoers/visudo.c:1027 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "그래도 편집하시겠습니까? [y/N]" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "경고: %s:%d:%d 사용하지 않는 %s \"%s\"이(가) 있습니다" -#: plugins/sudoers/visudo.c:1240 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3733,7 +3740,7 @@ msgstr "" "%s - sudoers 파일을 안전하게 편집합니다\n" "\n" -#: plugins/sudoers/visudo.c:1242 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" @@ -3779,14 +3786,20 @@ msgstr "부적절한 연속 문자" msgid "invalid IPv6 address" msgstr "부적절한 IPv6 주소" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "예기치 않은 개행 문자 발견" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "포함 레벨이 너무 많습니다" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s은(는) %d uid가 소유해야 합니다" + +#~ msgid "%s must only be writable by owner" +#~ msgstr "%s은(는) 소유자만 쓸 수 있습니다" + #~ msgid "%s is group writable" #~ msgstr "%s은(는) 그룹이 기록할 수 있습니다" diff --git a/plugins/sudoers/po/pl.mo b/plugins/sudoers/po/pl.mo index c4310c5a75..c3d0ed35ac 100644 Binary files a/plugins/sudoers/po/pl.mo and b/plugins/sudoers/po/pl.mo differ diff --git a/plugins/sudoers/po/pl.po b/plugins/sudoers/po/pl.po index a3756dc167..27d42e3bba 100644 --- a/plugins/sudoers/po/pl.po +++ b/plugins/sudoers/po/pl.po @@ -1,13 +1,13 @@ # Polish translation for sudo/sudoers. # This file is put in the public domain. -# Jakub Bogusz , 2011-2022. +# Jakub Bogusz , 2011-2023. # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.12b2\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-10 09:13-0600\n" -"PO-Revision-Date: 2022-10-11 21:45+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 19:15+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" "Language: pl\n" @@ -17,7 +17,7 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "błąd składni" @@ -48,73 +48,72 @@ msgstr "Niestety, proszę spróbować ponownie." #: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 #: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 #: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 -#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 -#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 -#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 -#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 -#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 -#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 -#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 -#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 -#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 -#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 -#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 -#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 -#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 -#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 -#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 -#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 -#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 -#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 -#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 -#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 -#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 -#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 -#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 -#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 -#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 -#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 -#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 -#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 -#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 -#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 -#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 -#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 -#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 -#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 -#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 -#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 -#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 -#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 -#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 -#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 -#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 -#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 -#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 -#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 -#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:52 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 +#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 +#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 +#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 +#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 +#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 +#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 +#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 +#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 +#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 +#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 +#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 +#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -125,67 +124,67 @@ msgstr "Niestety, proszę spróbować ponownie." #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 -#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 -#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 -#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 -#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 -#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 -#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 -#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 -#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 -#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 -#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 -#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 -#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 -#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 -#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 -#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 #: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 #: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 @@ -194,8 +193,8 @@ msgstr "Niestety, proszę spróbować ponownie." #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 #: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 -#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 -#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "nie udało się przydzielić pamięci" @@ -232,15 +231,15 @@ msgstr "błędna wartość notbefore" msgid "invalid notafter value" msgstr "błędna wartość notafter" -#: gram.y:844 plugins/sudoers/policy.c:383 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "wartość limitu czasu zbyt duża" -#: gram.y:846 plugins/sudoers/policy.c:385 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "błędna wartość limitu czasu" -#: gram.y:967 plugins/sudoers/sudoers.c:1033 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "polecenie zbyt długie" @@ -255,76 +254,75 @@ msgstr "%s:%d:%d: %s\n" msgid "Alias \"%s\" already defined" msgstr "Alias \"%s\" jest już zdefiniowany" -#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 -#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 -#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 -#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 -#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 -#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 -#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 -#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 -#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 -#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 -#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 -#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 -#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 -#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 -#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 -#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 -#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 -#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 -#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 -#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 -#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 -#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 -#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 -#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 -#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 -#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 -#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 -#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 -#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 -#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 -#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 -#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -337,80 +335,80 @@ msgstr "Alias \"%s\" jest już zdefiniowany" #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 -#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 -#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 -#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 -#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 -#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 -#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 -#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 -#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 -#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 -#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 -#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 -#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 -#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 -#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 -#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 -#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 -#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 #: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 #: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 @@ -419,68 +417,48 @@ msgstr "Alias \"%s\" jest już zdefiniowany" #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 #: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 #: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 -#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 -#: toke.l:1155 toke.l:1218 toke.l:1226 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 -#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 -#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 -#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "błąd wewnętrzny, przepełnienie %s" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "nie udało się wykonać dup na stdin: %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "nie udało się wywołać %s: %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "nie udało się wykonać fork" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "nie udało się wykonać fork: %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "nie udało się otworzyć potoku: %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (kontynuacja polecenia) %s" #: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "błędne wyrażenie regularne \"%s\": %s" @@ -498,64 +476,64 @@ msgstr "JSON_ARRAY zbyt duża" msgid "missing double quote in name" msgstr "brak podwójnego cudzysłowu w nazwie" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "brakujący JSON_OBJECT" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "oczekiwany JSON_OBJECT, otrzymano %d" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "stos json wyczerpany (maksimum %u ramek)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "obiekty muszą składać się z kluczy nazwa:wartość" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "brak separatora między wartościami" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "brak klamry zamykającej" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "nieoczekiwana tablica" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "brak nawiasu zamykającego" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "nieoczekiwany łańcuch" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "brak dwukropka po nazwie" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "nieoczekiwana wartość logiczna" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "nieoczekiwana wartość pusta" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "nieoczekiwana liczba" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "błąd składni" @@ -594,14 +572,14 @@ msgstr "%s: brak pola z grupą runas" msgid "%s exists but is not a directory (0%o)" msgstr "%s istnieje, ale nie jest katalogiem (0%o)" -#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 #: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "nie udało się wykonać mkdir %s" -#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 -#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "nie udało się zmienić uprawnień %s na 0%o" @@ -633,8 +611,8 @@ msgstr "%s: błąd protokołu: niewłaściwy typ dla %s" msgid "%s: protocol error: NULL value found in %s" msgstr "%s: błąd protokołu: napotkano wartość NULL w %s" -#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 -#: plugins/sudoers/policy.c:591 +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 msgid "unable to generate UUID" msgstr "nie udało się wygenerować UUID-a" @@ -686,27 +664,27 @@ msgstr "błąd opróżniania bufora iofd %d: %s" msgid "invalid I/O log %s: %s referenced but not present" msgstr "błędny log we/wy %s: %s użyty, ale nie zdefiniowany" -#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s: nie udało się odnaleźć punktu wznowienia [%lld, %ld]" -#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 #: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 #: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 #: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 #: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 -#: plugins/sudoers/visudo.c:971 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "nie udało się otworzyć %s" #: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 -#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "nie udało się otworzyć %s/%s" @@ -716,7 +694,7 @@ msgstr "nie udało się otworzyć %s/%s" msgid "unable to copy %s/%s to %s/%s: %s" msgstr "nie udało się skopiować %s/%s do %s/%s: %s" -#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "nie udało się zmienić nazwy %s na %s" @@ -749,28 +727,28 @@ msgstr "komunikat serwera zbyt duży: %zu" #: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 #: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 #: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 -#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 #: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 #: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 #: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 #: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 #: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 #: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 -#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 -#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 #: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 #: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 #: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 -#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 -#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 -#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 -#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 -#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "nie udało się dodać zdarzenia do kolejki" @@ -830,14 +808,14 @@ msgstr "błędny ChangeWindowSize" msgid "invalid CommandSuspend" msgstr "błędny CommandSuspend" -#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 #: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 -#: plugins/sudoers/log_client.c:1583 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "nie udało się rozpakować %s, rozmiar %zu" -#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 #: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" @@ -873,8 +851,8 @@ msgstr "EOF od %s bez właściwego zakończenia połączenia TLS" msgid "client message too large: %zu" msgstr "komunikat klienta zbyt duży %zu" -#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 -#: logsrvd/logsrvd_journal.c:257 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "komunikat klienta zbyt duży" @@ -939,23 +917,23 @@ msgid "invalid random drop value: %s" msgstr "błędna wartość losowego gubienia: %s" #: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 #: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s wersja %s\n" -#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 -#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "nieznany użytkownik %s" #: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" @@ -1029,7 +1007,7 @@ msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] niedozwolony klucz: %s" #: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1029 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "nie udało się otworzyć pliku logu %s" @@ -1042,49 +1020,49 @@ msgstr "nie udało się zainicjować kontekstu serwera TLS" msgid "unable to initialize relay TLS context" msgstr "nie udało się zainicjować kontekstu przekaźnika TLS" -#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 -#: logsrvd/logsrvd_journal.c:426 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "nie udało się utworzuć pliku kroniki" -#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 -#: plugins/sudoers/visudo.c:1026 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "nie udało się zablokować %s" -#: logsrvd/logsrvd_journal.c:153 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "nie udało się zablokować pliku kroniki" -#: logsrvd/logsrvd_journal.c:161 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "nie udało się otworzyć pliku kroniki" -#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 -#: logsrvd/logsrvd_journal.c:462 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "nie udało się zapisać pliku kroniki" -#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "nie udało się zmienić nazwy pliku kroniki" -#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 -#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "nieoczekiwany koniec pliku podczas odczytu pliku kroniki" -#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 -#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "błąd podczas odczytu pliku kroniki" -#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "błędny plik kroniki, nie udało się zrestartować" -#: logsrvd/logsrvd_journal.c:440 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "nie udało się przewinąć do [%lld, %ld] w pliku kroniki %s" @@ -1142,7 +1120,7 @@ msgstr "nie udało się sformatować bufora czasu, długość %d" #: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 #: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 -#: plugins/sudoers/sudoreplay.c:351 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" @@ -1177,7 +1155,7 @@ msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: błędne ServerHello, brak server_id" #: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 -#: plugins/sudoers/log_client.c:1469 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "błędne ServerHello" @@ -1290,35 +1268,35 @@ msgstr "nie udało się wyszukać %s:%s: %s" msgid "unable to get server IP addr" msgstr "nie udało się uzyskać adresu IP serwera" -#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "nie udało się odczytać %s/%s: %s" -#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 -#: plugins/sudoers/iolog.c:1026 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "nieoczekiwane zdarzenie we/wy %d" #: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 -#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 -#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: nieoczekiwany stan %d" -#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "odebrano od serwera komunikat błędu: %s" -#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "odebrano od serwera komunikat zerwania: %s" -#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: nieoczekiwana wartość type_case %d" @@ -1327,7 +1305,7 @@ msgstr "%s: nieoczekiwana wartość type_case %d" msgid "timeout reading from server" msgstr "przekroczony limit czasu przy czytaniu z serwera" -#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "nazwa hosta nie pasuje do certyfikatu" @@ -1335,7 +1313,7 @@ msgstr "nazwa hosta nie pasuje do certyfikatu" msgid "premature EOF" msgstr "przedwczesny EOF" -#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "komunikat serwera zbyt duży: %u" @@ -1422,10 +1400,10 @@ msgstr "nie udało się ustawić minimalnej wersji protokołu na TLS 1.2: %s" #: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 #: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 -#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 -#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 -#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 -#: plugins/sudoers/policy.c:124 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "nie udało się pobrać aktualnego czasu" @@ -1579,11 +1557,11 @@ msgstr "nie udało się połączyć z serwerem SecurID" msgid "User ID locked for SecurID Authentication" msgstr "ID użytkownika zablokowany dla uwierzytelnienia SecurID" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "błędna długość nazwy użytkownika dla SecurID" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "błędny uchwyt uwierzytelnienia dla SecurID" @@ -1591,11 +1569,11 @@ msgstr "błędny uchwyt uwierzytelnienia dla SecurID" msgid "SecurID communication failed" msgstr "błąd komunikacji SecurID" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "nieznany błąd SecurID" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "błędna długość hasła dla SecurID" @@ -1665,9 +1643,17 @@ msgstr "" " 3) z dużą władzą wiąże się duża odpowiedzialność.\n" "\n" -#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 -#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"Ze względów bezpieczeństwa wpisywane hasło nie będzie widoczne.\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "nieznany uid %u" @@ -1724,8 +1710,7 @@ msgstr "%s: pliki wejściowy i wyjściowy muszą być różne" #: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 #: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 -#: plugins/sudoers/visudo.c:975 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "nie udało się zainicjować wartości domyślnych sudoers" @@ -1754,12 +1739,12 @@ msgstr "błędny typ ograniczenia: %s" msgid "invalid filter: %s" msgstr "błędny filtr: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "nie udało się przeanalizować pliku %s, nieznany błąd" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 #: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" @@ -1815,17 +1800,36 @@ msgstr "" " -s, --suppress=sekcje pominięcie wyjścia z podanych sekcji\n" " -V, --version wyświetlenie informacji o wersji i zakończenie" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "błąd wewnętrzny, przepełnienie %s" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "nie udało się pobrać czasu GMT" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "nie udało się sformatować znacznika czasu" @@ -2639,8 +2643,8 @@ msgstr "błędny typ Defaults 0x%x dla opcji \"%s\"" msgid "value \"%s\" is invalid for option \"%s\"" msgstr "błędna wartość \"%s\" dla opcji \"%s\"" -#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 -#: plugins/sudoers/policy.c:217 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "ścieżka pliku \"%s\" zbyt długa" @@ -2655,15 +2659,24 @@ msgstr "wartości \"%s\" muszą zaczynać się od '/', '~' lub '*'" msgid "values for \"%s\" must start with a '/'" msgstr "wartości \"%s\" muszą zaczynać się od '/'" +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "zignorowano edytor: %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "argumenty edytora nie mogą zawierać \"--\"" + #: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: uszkodzone envp, niezgodność długości" -#: plugins/sudoers/env.c:1109 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "nie udało się przebudować środowiska" -#: plugins/sudoers/env.c:1183 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "niestety nie jest dozwolone ustawianie następujących zmiennych środowiskowych: %s" @@ -2678,27 +2691,17 @@ msgstr "nieobsługiwany typ skrótu %d dla %s" msgid "%s: read error" msgstr "%s: błąd odczytu" -#: plugins/sudoers/group_plugin.c:169 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "właścicielem %s musi być uid %d" - -#: plugins/sudoers/group_plugin.c:173 -#, c-format -msgid "%s must only be writable by owner" -msgstr "prawo zapisu do %s może mieć tylko właściciel" - -#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "nie udało się załadować %s: %s" -#: plugins/sudoers/group_plugin.c:197 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "nie udało się odnaleźć symbolu \"group_plugin\" w %s" -#: plugins/sudoers/group_plugin.c:202 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: niezgodna główna wersja wtyczki grup %d, oczekiwano %d" @@ -2721,10 +2724,10 @@ msgstr "Pary lokalnych adresów IP i masek:\n" msgid "unable to update sequence file" msgstr "nie udało się uaktualnić pliku sekwencji" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 -#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 -#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 -#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "nie udało się zapisać do pliku logu we/wy: %s" @@ -2734,20 +2737,20 @@ msgstr "nie udało się zapisać do pliku logu we/wy: %s" msgid "unable to create %s/%s" msgstr "nie udało się utworzyć %s/%s" -#: plugins/sudoers/iolog.c:957 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: błąd wewnętrzny, plik logu we/wy dla zdarzenia %d nie jest otwarty" -#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 -#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 -#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "nie udało się odczytać zegara" -#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 -#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: błąd wewnętrzny, błędny sygnał %d" @@ -2766,16 +2769,16 @@ msgstr "nie udało się zainicjować bazy certyfikatów i kluczy SSL: %s" msgid "you must set TLS_CERT in %s to use SSL" msgstr "aby używać SSL, trzeba ustawić TLS_CERT w %s" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "nie udało się zainicjować LDAP: %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "wybrano start_tls, ale biblioteki LDAP nie obsługują ldap_start_tls_s() ani ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "błędny atrybut sudoOrder: %s" @@ -2816,7 +2819,7 @@ msgid "unable to send audit message" msgstr "nie udało się wysłać komunikatu audytowego" #: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 -#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "błąd w pętli zdarzeń" @@ -2858,20 +2861,20 @@ msgstr "Inicjowanie TLS nie powiodło się" msgid "TLS handshake was unsuccessful" msgstr "Powitanie TLS nie powiodło się" -#: plugins/sudoers/log_client.c:1211 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: błąd wewnętrzny, błędny kod wyjścia %d" -#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "utracono połączenie z serwerem logów" -#: plugins/sudoers/log_client.c:1841 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "brak bufora zapisu" -#: plugins/sudoers/log_client.c:1995 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "nie udało się połączyć z serwerem logów" @@ -2911,15 +2914,15 @@ msgstr "Niestety użytkownik %s nie ma uprawnień do uruchamiania '%s%s%s' jako msgid "This incident has been reported to the administrator.\n" msgstr "Ten incydent został zgłoszony do administratora.\n" -#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 -#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 -#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 -#: plugins/sudoers/sudoers.c:807 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s: nie znaleziono polecenia" -#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2928,7 +2931,7 @@ msgstr "" "zignorowano plik \"%s\" znaleziony w '.'\n" "Proszę użyć \"sudo ./%s\", jeśli to \"%s\" ma być uruchomiony." -#: plugins/sudoers/logging.c:387 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" @@ -2936,24 +2939,24 @@ msgstr[0] "%u błędna próba wprowadzenia hasła" msgstr[1] "%u błędne próby wprowadzenia hasła" msgstr[2] "%u błędnych prób wprowadzenia hasła" -#: plugins/sudoers/logging.c:477 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "błąd uwierzytelniania" -#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "wymagane jest hasło" -#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "problem przy analizie pliku sudoers" -#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1062 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "nie udało się zapisać pliku logu: %s" @@ -2968,7 +2971,7 @@ msgstr "skrót dla %s (%s) ma błędną długość %zu, oczekiwano %zu" msgid "digest for %s (%s) is not in %s form" msgstr "skrót dla %s (%s) nie jest w postaci %s" -#: plugins/sudoers/parse.c:591 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2977,7 +2980,7 @@ msgstr "" "\n" "Rola LDAP: %s\n" -#: plugins/sudoers/parse.c:594 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2985,38 +2988,38 @@ msgstr "" "\n" "Wpis sudoers:\n" -#: plugins/sudoers/parse.c:596 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " Jako użytkownicy: " -#: plugins/sudoers/parse.c:611 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " Jako grupy: " -#: plugins/sudoers/parse.c:621 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " Opcje: " -#: plugins/sudoers/parse.c:685 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " Polecenia:\n" -#: plugins/sudoers/parse.c:876 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "Pasujące wpisy Defaults dla %s na %s:\n" -#: plugins/sudoers/parse.c:894 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "Wartości specyficzne dla Runas i Command dla %s:\n" -#: plugins/sudoers/parse.c:912 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "Użytkownik %s może uruchamiać na %s następujące polecenia:\n" -#: plugins/sudoers/parse.c:927 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Użytkownik %s nie ma uprawnień do uruchamiania sudo na %s.\n" @@ -3031,64 +3034,64 @@ msgstr "zignorowano niekompletne sudoRole: cn: %s" msgid "invalid LDIF attribute: %s" msgstr "błędny atrybut LDIF: %s" -#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "błędna wartość %.*s ustawiona przez frontend sudo" -#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "nie udało się przeanalizować listy adresów sieciowych" -#: plugins/sudoers/policy.c:526 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "nazwa użytkownika nie ustawiona przez frontend sudo" -#: plugins/sudoers/policy.c:530 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "ID użytkownika nie ustawiony przez frontend sudo" -#: plugins/sudoers/policy.c:534 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "ID grupy nie ustawiony przez frontend sudo" -#: plugins/sudoers/policy.c:538 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "nazwa hosta nie ustawiona przez frontend sudo" -#: plugins/sudoers/policy.c:730 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "błędny katalog roboczy: %s" -#: plugins/sudoers/policy.c:914 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "błędny katalog chroot: %s" -#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 -#: plugins/sudoers/visudo.c:902 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "nie udało się wywołać %s" -#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 -#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: błędne flagi trybu z frontendu sudo: 0x%x" -#: plugins/sudoers/policy.c:1292 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Wersja wtyczki polityki sudoers %s\n" -#: plugins/sudoers/policy.c:1294 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Wersja gramatyki pliku sudoers %d\n" -#: plugins/sudoers/policy.c:1298 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3097,27 +3100,27 @@ msgstr "" "\n" "Ścieżka do sudoers: %s\n" -#: plugins/sudoers/policy.c:1301 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "ścieżka do nsswitch: %s\n" -#: plugins/sudoers/policy.c:1303 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "ścieżka do ldap.conf: %s\n" -#: plugins/sudoers/policy.c:1304 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "ścieżka do ldap.secret: %s\n" -#: plugins/sudoers/policy.c:1337 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "nie udało się zarejestrować uchwytu typu %d (wersja %d.%d)" -#: plugins/sudoers/policy.c:1355 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "nie udało się wyrejestrować uchwytu typu %d (wersja %d.%d)" @@ -3164,24 +3167,24 @@ msgstr "nie udało się zapamiętać grupy %s" msgid "unable to cache group %s, already exists" msgstr "nie udało się zapamiętać grupy %s, już istnieje" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "nie udało się zapamiętać listy grup dla %s, już istnieje" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "nie udało się zapamiętać listy grup dla %s" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "nie udało się przeanalizować grup dla %s" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "nie udało się przeanalizować gidów dla %s" @@ -3293,213 +3296,217 @@ msgstr "nie podano polecenia" msgid "sudoers specifies that root is not allowed to sudo" msgstr "wg sudoers root nie ma prawa używać sudo" -#: plugins/sudoers/sudoers.c:476 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "użytkownik nie ma pozwolenia na zmianę limitu closefrom" -#: plugins/sudoers/sudoers.c:477 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "brak uprawnień do używania opcji -C" -#: plugins/sudoers/sudoers.c:537 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "właściciel znacznika czasu (%s): nie ma takiego użytkownika" -#: plugins/sudoers/sudoers.c:552 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "brak tty" -#: plugins/sudoers/sudoers.c:553 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "niestety do uruchomienia sudo konieczny jest tty" -#: plugins/sudoers/sudoers.c:560 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "błędna powłoka użytkownika %s: %s" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "polecenie w bieżącym katalogu" -#: plugins/sudoers/sudoers.c:658 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "\"cd\" to polecenie wbudowane powłoki, nie może być uruchomione bezpośrednio." -#: plugins/sudoers/sudoers.c:660 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "można użyć opcji -s do uruchomienia powłoki uprzywilejowanej." -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "można użyć opcji -D do uruchomienia polecenia w podanym katalogu." -#: plugins/sudoers/sudoers.c:671 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "użytkownik nie ma uprawnień do ustawienia limitu czasu polecenia" -#: plugins/sudoers/sudoers.c:673 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "niestety brak uprawnień do ustawienia limitu czasu polecenia" -#: plugins/sudoers/sudoers.c:681 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "użytkownik nie ma uprawnień do zachowania środowiska" -#: plugins/sudoers/sudoers.c:683 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "niestety brak uprawnień do zachowania środowiska" -#: plugins/sudoers/sudoers.c:1073 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "błąd ustawiania zmiennych środowiskowych podanych przez użytkownika" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit nie musi być uruchamiany przez sudo" -#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "nie udało się odczytać %s" -#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s nie jest zwykłym plikiem" -#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "właścicielem %s jest uid %u, powinien być %u" -#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "%s jest zapisywalny dla świata" -#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "właścicielem %s jest gid %u, powinien być %u" -#: plugins/sudoers/sudoers.c:1194 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "tylko root może używać \"-c %s\"" -#: plugins/sudoers/sudoers.c:1213 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "nieznana klasa logowania %s" -#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "nie udało się rozwiązać nazwy hosta %s" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "błędna opcja filtra: %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "błędny maksymalny czas oczekiwania: %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "błędny współczynnik szybkości: %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "błędny offset czasu %s" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/czas: %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "Odtwarzanie sesji sudo: %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "nie udało się przestawić tty w tryb surowy" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "Uwaga: ten terminal jest za mały, aby właściwie odtworzyć log.\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "Geometria logu to %d x %d, geometria terminala to %d x %d." -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "Odtwarzanie zakończone, proszę nacisnąć dowolny klawisz, aby odzyskać terminal." -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "niejednoznaczne wyrażenie \"%s\"" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "niesparowany ')' w wyrażeniu" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "nieznany warunek wyszukiwania \"%s\"" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s wymaga argumentu" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "nie udało się przeanalizować daty \"%s\"" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "niesparowany '(' w wyrażeniu" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "niedozwolone kończące \"or\"" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "niedozwolony kończący \"!\"" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "nieznany typ wyszukiwania %d" -#: plugins/sudoers/sudoreplay.c:1650 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "Składnia: %s [-hnRS] [-d katalog] [-m liczba] [-s wsp_szybkości] ID\n" -#: plugins/sudoers/sudoreplay.c:1652 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "Składnia: %s [-h] [-d katalog] -l [wyrażenie wyszukiwania]\n" -#: plugins/sudoers/sudoreplay.c:1666 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3508,7 +3515,7 @@ msgstr "" "%s - odtwarzanie logów sesji sudo\n" "\n" -#: plugins/sudoers/sudoreplay.c:1668 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3595,7 +3602,7 @@ msgstr "opcja -x będzie usunięta w kolejnej wersji" msgid "please consider using the cvtsudoers utility instead" msgstr "należy rozważyć użycie zamiast niej narzędzia cvtsudoers" -#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "wciśnięcie return przejdzie do edycji %s: " @@ -3605,81 +3612,81 @@ msgstr "wciśnięcie return przejdzie do edycji %s: " msgid "contents of edit session left in %s" msgstr "zawartość sesji edycji pozostawiona w %s" -#: plugins/sudoers/visudo.c:402 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "podany edytor (%s) nie istnieje" -#: plugins/sudoers/visudo.c:404 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "nie znaleziono edytora (ścieżka = %s)" -#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 #, c-format msgid "unable to stat %s" msgstr "nie udało się wykonać stat na %s" -#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "błąd zapisu" -#: plugins/sudoers/visudo.c:565 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "nie udało się wykonać stat na pliku tymczasowym (%s), %s nie zmieniony" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "plik tymczasowy (%s) zerowej długości, %s nie zmieniony" -#: plugins/sudoers/visudo.c:578 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "błąd edytora (%s), %s nie zmieniony" -#: plugins/sudoers/visudo.c:600 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s nie zmieniony" -#: plugins/sudoers/visudo.c:645 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "nie udało się ponownie otworzyć pliku tymczasowego (%s), %s nie zmieniony." -#: plugins/sudoers/visudo.c:658 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "nie udało się przeanalizować pliku tymczasowego (%s), nieznany błąd" -#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "nie udało się ustawić (uid, gid) %s na (%u, %u)" -#: plugins/sudoers/visudo.c:809 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s i %s nie są na tym samym systemie plików, użycie mv do zmiany nazwy" -#: plugins/sudoers/visudo.c:820 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "polecenie nie powiodło się: '%s %s %s', %s nie zmieniony" -#: plugins/sudoers/visudo.c:827 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "błąd podczas zmiany nazwy %s, %s nie zmieniony" -#: plugins/sudoers/visudo.c:847 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "Co teraz? " -#: plugins/sudoers/visudo.c:861 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3691,41 +3698,41 @@ msgstr "" " (x) wyjście bez zapisu zmian do pliku sudoers\n" " (Q) wyjście i zapisanie zmian w pliku sudoers (NIEBEZPIECZNE!)\n" -#: plugins/sudoers/visudo.c:907 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "nie udało się uruchomić %s" -#: plugins/sudoers/visudo.c:938 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: błędny właściciel, (uid, gid) powinny wynosić (%u, %u)\n" -#: plugins/sudoers/visudo.c:949 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: błędne uprawnienia, powinny być 0%o\n" -#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s: składnia poprawna\n" -#: plugins/sudoers/visudo.c:1023 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s zajęty, proszę spróbować później" -#: plugins/sudoers/visudo.c:1027 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "Modyfikować mimo to? [y/N]" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "Uwaga: %s:%d:%d: nie użyty %s \"%s\"" -#: plugins/sudoers/visudo.c:1240 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3734,7 +3741,7 @@ msgstr "" "%s - bezpieczna edycja pliku sudoers\n" "\n" -#: plugins/sudoers/visudo.c:1242 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" @@ -3780,10 +3787,10 @@ msgstr "błędna kontynuacja linii" msgid "invalid IPv6 address" msgstr "błędny adres IPv6" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "nieoczekiwany koniec linii w łańcuchu" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "za dużo poziomów include" diff --git a/plugins/sudoers/po/ro.mo b/plugins/sudoers/po/ro.mo index 5ee5fc10a9..0c0c9e62d1 100644 Binary files a/plugins/sudoers/po/ro.mo and b/plugins/sudoers/po/ro.mo differ diff --git a/plugins/sudoers/po/ro.po b/plugins/sudoers/po/ro.po index b9effbaeda..1b56e07c96 100644 --- a/plugins/sudoers/po/ro.po +++ b/plugins/sudoers/po/ro.po @@ -4,7 +4,7 @@ # This file is distributed under the same license as the sudo package. # # Florentina Mușat , 2020. -# Remus-Gabriel Chelu , 2022. +# Remus-Gabriel Chelu , 2022, 2023. # # Cronologia traducerii fișierului „sudoers”: # Traducera inițială, făcută de FM, pentru versiunea sudoers 1.9.2rc1. @@ -12,13 +12,15 @@ # Actualizare a traducerii pentru versiunea 1.9.10b1, făcută de R-GC. # Actualizare a traducerii pentru versiunea 1.9.11b1, făcută de R-GC. # Actualizare a traducerii pentru versiunea 1.9.12b2, făcută de R-GC. +# Actualizare a traducerii pentru versiunea 1.9.13b2, făcută de R-GC. +# Actualizare a traducerii pentru versiunea Y, făcută de X, Z(anul). # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.12b2\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-10 09:13-0600\n" -"PO-Revision-Date: 2022-10-12 11:15+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 20:05+0100\n" "Last-Translator: Remus-Gabriel Chelu \n" "Language-Team: Romanian \n" "Language: ro\n" @@ -27,9 +29,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=((n==1) ? 0 : (n==2) ? 1 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 2 : 3);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.2.2\n" -#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "eroare de sintaxă" @@ -60,73 +62,72 @@ msgstr "Încercați din nou." #: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 #: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 #: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 -#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 -#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 -#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 -#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 -#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 -#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 -#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 -#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 -#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 -#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 -#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 -#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 -#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 -#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 -#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 -#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 -#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 -#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 -#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 -#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 -#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 -#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 -#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 -#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 -#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 -#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 -#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 -#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 -#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 -#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 -#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 -#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 -#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 -#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 -#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 -#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 -#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 -#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 -#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 -#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 -#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 -#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 -#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 -#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 -#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:52 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 +#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 +#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 +#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 +#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 +#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 +#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 +#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 +#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 +#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 +#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 +#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 +#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -137,67 +138,67 @@ msgstr "Încercați din nou." #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 -#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 -#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 -#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 -#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 -#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 -#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 -#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 -#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 -#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 -#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 -#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 -#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 -#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 -#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 -#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 #: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 #: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 @@ -206,8 +207,8 @@ msgstr "Încercați din nou." #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 #: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 -#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 -#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "nu se poate aloca memoria" @@ -244,15 +245,15 @@ msgstr "valoare „notbefore” nevalidă" msgid "invalid notafter value" msgstr "valoare „notafter” nevalidă" -#: gram.y:844 plugins/sudoers/policy.c:383 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "limită de timp prea mare" -#: gram.y:846 plugins/sudoers/policy.c:385 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "valoare de limită de timp nevalidă" -#: gram.y:967 plugins/sudoers/sudoers.c:1033 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "comandă prea lungă" @@ -267,76 +268,75 @@ msgstr "%s:%d:%d: %s\n" msgid "Alias \"%s\" already defined" msgstr "Aliasul „%s” este deja definit" -#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 -#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 -#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 -#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 -#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 -#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 -#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 -#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 -#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 -#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 -#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 -#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 -#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 -#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 -#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 -#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 -#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 -#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 -#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 -#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 -#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 -#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 -#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 -#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 -#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 -#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 -#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 -#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 -#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 -#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 -#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 -#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -349,80 +349,80 @@ msgstr "Aliasul „%s” este deja definit" #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 -#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 -#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 -#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 -#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 -#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 -#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 -#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 -#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 -#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 -#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 -#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 -#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 -#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 -#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 -#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 -#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 -#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 #: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 #: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 @@ -431,68 +431,48 @@ msgstr "Aliasul „%s” este deja definit" #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 #: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 #: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 -#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 -#: toke.l:1155 toke.l:1218 toke.l:1226 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 -#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 -#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 -#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "eroare internă, depășire de %s" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "nu se poate duplica stdin: %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "nu se poate executa %s: %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "nu se poate executa fork()" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "nu se poate executa fork(): %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "nu se poate deschide linia de legătură: %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (comandă continuată) %s" #: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "expresie regulată nevalidă „%s”: %s" @@ -510,64 +490,64 @@ msgstr "JSON_ARRAY este prea mare" msgid "missing double quote in name" msgstr "lipsesc ghilimelele duble din nume" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "JSON_OBJECT lipsește" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "s-a așteptat JSON_OBJECT, s-a obținut %d" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "stiva json a fost epuizată (maxim %u cadre)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "obiectele trebuie să fie formate din perechi nume:valoare" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "lipsește separatorul dintre valori" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "acoladă de închidere desperecheată" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "matrice neașteptată" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "paranteză dreaptă închisă desperecheată" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "șir neașteptat" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "lipsesc două puncte „:” după nume" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "valoare boleană neașteptată" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "valoare null neașteptată" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "număr neașteptat" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "eroare de analizare" @@ -606,14 +586,14 @@ msgstr "%s: câmpul de grup efectiv (rulează ca grupul X) lipsește" msgid "%s exists but is not a directory (0%o)" msgstr "%s există dar nu este un director (0%o)" -#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 #: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "nu s-a putut executa «mkdir», pentru a crea directorul %s" -#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 -#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "nu s-a putut modifica modul de acces de la %s la 0%o" @@ -645,8 +625,8 @@ msgstr "%s: eroare de protocol: tip incorect pentru %s" msgid "%s: protocol error: NULL value found in %s" msgstr "%s: eroare de protocol: valoare nulă (NULL) găsită în %s" -#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 -#: plugins/sudoers/policy.c:591 +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 msgid "unable to generate UUID" msgstr "nu s-a putut genera UUID-ul" @@ -698,27 +678,27 @@ msgstr "eroare la golirea iofd %d: %s" msgid "invalid I/O log %s: %s referenced but not present" msgstr "jurnal de In/Ieș nevalid %s: %s menționat, dar nu definit" -#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s: nu se poate găsi punctul de reluare [%lld, %ld]" -#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 #: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 #: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 #: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 #: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 -#: plugins/sudoers/visudo.c:971 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "nu se poate deschide %s" #: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 -#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "nu se poate deschide %s/%s" @@ -728,7 +708,7 @@ msgstr "nu se poate deschide %s/%s" msgid "unable to copy %s/%s to %s/%s: %s" msgstr "nu se poate copia %s/%s în %s/%s: %s" -#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "nu se poate redenumi %s în %s" @@ -761,28 +741,28 @@ msgstr "mesajul serverului este prea mare: %zu" #: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 #: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 #: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 -#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 #: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 #: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 #: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 #: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 #: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 #: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 -#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 -#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 #: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 #: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 #: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 -#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 -#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 -#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 -#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 -#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "nu se poate adăuga evenimentul la coadă" @@ -842,14 +822,14 @@ msgstr "ChangeWindowSize nevalid" msgid "invalid CommandSuspend" msgstr "CommandSuspend nevalid" -#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 #: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 -#: plugins/sudoers/log_client.c:1583 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "nu se poate despacheta %s cu dimensiunea %zu" -#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 #: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" @@ -885,8 +865,8 @@ msgstr "sfârșit de fișier de la %s fără închiderea corectă a TLS" msgid "client message too large: %zu" msgstr "mesajul clientului este prea mare: %zu" -#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 -#: logsrvd/logsrvd_journal.c:257 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "mesajul clientului este prea mare" @@ -951,23 +931,23 @@ msgid "invalid random drop value: %s" msgstr "valoare nevalidă a probabilității de pierdere: %s" #: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 #: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s versiunea %s\n" -#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 -#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "utilizator necunoscut %s" #: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" @@ -1041,7 +1021,7 @@ msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] cheie ilegală: %s" #: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1029 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "nu se poate deschide fișierul de jurnal: %s" @@ -1054,49 +1034,49 @@ msgstr "nu se poate inițializa contextul TLS al serverului" msgid "unable to initialize relay TLS context" msgstr "nu se poate inițializa contextul TLS al releului" -#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 -#: logsrvd/logsrvd_journal.c:426 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "nu se poate crea fișierul de jurnal" -#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 -#: plugins/sudoers/visudo.c:1026 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "nu se poate bloca %s" -#: logsrvd/logsrvd_journal.c:153 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "nu se poate bloca fișierul de jurnal" -#: logsrvd/logsrvd_journal.c:161 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "nu se poate deschide fișierul de jurnal" -#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 -#: logsrvd/logsrvd_journal.c:462 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "nu se poate scrie fișierul de jurnal" -#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "nu se poate redenumi fișierul de jurnal" -#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 -#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "sfârșit de fișier neașteptat la citirea fișierului de jurnal" -#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 -#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "eroare la citirea fișierului de jurnal" -#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "fișier de jurnal nevalid, nu se poate reporni" -#: logsrvd/logsrvd_journal.c:440 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "nu se poate ajunge la poziția [%lld, %ld] din fișierul de jurnal %s" @@ -1154,7 +1134,7 @@ msgstr "nu se poate formata memoria tampon de timp, lungime %d" #: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 #: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 -#: plugins/sudoers/sudoreplay.c:351 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" @@ -1194,7 +1174,7 @@ msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: ServerHello nevalid, server_id lipsește" #: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 -#: plugins/sudoers/log_client.c:1469 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "ServerHello nevalid" @@ -1307,35 +1287,35 @@ msgstr "nu se poate căuta %s:%s: %s" msgid "unable to get server IP addr" msgstr "nu se poate obține adresa IP a serverului" -#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "nu se poate citi %s/%s: %s" -#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 -#: plugins/sudoers/iolog.c:1026 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "eveniment de In/Ieș neașteptat %d" #: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 -#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 -#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: stare neașteptată %d" -#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "mesaj de eroare primit de la server: %s" -#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "mesaj de renunțare primit de la server: %s" -#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: valoare type_case neașteptată %d" @@ -1344,7 +1324,7 @@ msgstr "%s: valoare type_case neașteptată %d" msgid "timeout reading from server" msgstr "a expirat limita de timp de citire de la server" -#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "numele gazdei nu se potrivește cu certificatul" @@ -1352,7 +1332,7 @@ msgstr "numele gazdei nu se potrivește cu certificatul" msgid "premature EOF" msgstr "sfârșit de fișier prematur" -#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "mesajul serverului este prea mare: %u" @@ -1452,10 +1432,10 @@ msgstr "nu se poate stabili versiunea de protocol minimă la TLS 1.2: %s" # Ok, rămîne așa cum este #: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 #: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 -#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 -#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 -#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 -#: plugins/sudoers/policy.c:124 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "nu se poate obține ora actuală" @@ -1609,11 +1589,11 @@ msgstr "nu se poate contacta serverul SecurID" msgid "User ID locked for SecurID Authentication" msgstr "ID-ul utilizatorului blocat pentru autentificarea SecurID" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "lungime de nume de utilizator nevalidă pentru SecurID" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "gestionar de autentificare (Authentication Handle) nevalid pentru SecurID" @@ -1621,11 +1601,11 @@ msgstr "gestionar de autentificare (Authentication Handle) nevalid pentru SecurI msgid "SecurID communication failed" msgstr "Comunicarea SecurID a eșuat" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "eroare de SecurID necunoscută" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "lungime de cod de parolă nevalidă pentru SecurID" @@ -1696,9 +1676,17 @@ msgstr "" " 3. Cu o mare putere vine o mare responsabilitate.\n" "\n" -#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 -#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"Din motive de securitate, parola pe care o introduceți nu va fi vizibilă.n\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "uid necunoscut %u" @@ -1755,8 +1743,7 @@ msgstr "%s: fișierele de intrare și ieșire trebuie să fie diferite" #: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 #: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 -#: plugins/sudoers/visudo.c:975 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "nu se poate inițializa valorile implicite ale lui „sudoers”" @@ -1785,12 +1772,12 @@ msgstr "tip de suprimare nevalid: %s" msgid "invalid filter: %s" msgstr "filtru nevalid: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "nu s-a putut analiza fișierul %s, eroare necunoscută" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 #: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" @@ -1845,17 +1832,36 @@ msgstr "" " -s, --suppress=secțiuni suprimă ieșirea anumitor secțiuni\n" " -V, --version afișează informația versiunii și iese" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "eroare internă, depășire de %s" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "nu se poate obține ora GMT" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "nu se poate formata marcajul de timp" @@ -1918,7 +1924,7 @@ msgstr "%s:%d:%d: se elimină valorile Defaults „%s” suprascrise de intrări #: plugins/sudoers/cvtsudoers_merge.c:1088 #, c-format msgid "%s:%d:%d: merging userspec into %s:%d:%d" -msgstr "%s:%d:%d: se îmbină specificațiile utilizatorului în% s:% d:% d" +msgstr "%s:%d:%d: se îmbină specificațiile utilizatorului în %s:%d:%d" #: plugins/sudoers/cvtsudoers_merge.c:1182 #, c-format @@ -2084,7 +2090,7 @@ msgstr "Numărul de încercări pentru a introduce o parolă: %u" #: plugins/sudoers/def_data.c:204 #, c-format msgid "Umask to use or 0777 to use user's: 0%o" -msgstr "Valoarea necesară umask, sau 0777 pentru utilizatorul: 0% o" +msgstr "Valoarea necesară umask, sau 0777 pentru utilizatorul: 0%o" #: plugins/sudoers/def_data.c:208 #, c-format @@ -2124,7 +2130,7 @@ msgstr "Mesajul de avertizare de parolă incorectă: %s" #: plugins/sudoers/def_data.c:236 #, c-format msgid "Path to lecture status dir: %s" -msgstr "Calea către directorul de stare a instrucțiunilor de utilizare a «sudo»(utilizatorul, le-a primit sau nu):% s" +msgstr "Calea către directorul de stare a instrucțiunilor de utilizare a «sudo»(utilizatorul, le-a primit sau nu): %s" #: plugins/sudoers/def_data.c:240 #, c-format @@ -2728,8 +2734,8 @@ msgstr "tip de Defaults nevalid 0x%x pentru opțiunea „%s”" msgid "value \"%s\" is invalid for option \"%s\"" msgstr "valoarea „%s” nu este validă pentru opțiunea „%s”" -#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 -#: plugins/sudoers/policy.c:217 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "numele căii pentru „%s” este prea lung" @@ -2744,15 +2750,24 @@ msgstr "valorile pentru „%s” trebuie să înceapă cu un „/”, „~”, s msgid "values for \"%s\" must start with a '/'" msgstr "valorile pentru „%s” trebuie să înceapă cu un caracter „/”" +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "se ignoră editorul: %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "argumentele editorului nu pot să conțină „--”" + #: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: envp corupt, nepotrivire a lungimii" -#: plugins/sudoers/env.c:1109 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "nu se poate reconstrui mediul" -#: plugins/sudoers/env.c:1183 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "nu aveți permisiunea de a stabili următoarele variabile de mediu: %s" @@ -2767,27 +2782,17 @@ msgstr "tip de sumă de control nesuportată %d pentru %s" msgid "%s: read error" msgstr "%s: eroare de citire" -#: plugins/sudoers/group_plugin.c:169 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s trebuie să fie deținut de uid-ul %d" - -#: plugins/sudoers/group_plugin.c:173 -#, c-format -msgid "%s must only be writable by owner" -msgstr "%s trebuie să poată fi scris numai de către proprietar" - -#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "nu se poate încărca %s: %s" -#: plugins/sudoers/group_plugin.c:197 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "nu se poate găsi simbolul „group_plugin” în %s" -#: plugins/sudoers/group_plugin.c:202 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: versiunea majoră a modului de grup %d, este incompatibilă, se aștepta %d" @@ -2810,10 +2815,10 @@ msgstr "Perechile adresă de IP locală și mască de rețea:\n" msgid "unable to update sequence file" msgstr "nu se poate actualiza fișierul de secvență" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 -#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 -#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 -#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "nu se poate scrie în fișierul jurnal de In/Ieș: %s" @@ -2823,20 +2828,20 @@ msgstr "nu se poate scrie în fișierul jurnal de In/Ieș: %s" msgid "unable to create %s/%s" msgstr "nu se poate crea %s/%s" -#: plugins/sudoers/iolog.c:957 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: eroare internă, fișierul jurnal de In/Ieș pentru evenimentul %d nu este deschis" -#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 -#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 -#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "nu se poate citi ceasul" -#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 -#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: eroare internă, semnal nevalid %d" @@ -2855,16 +2860,16 @@ msgstr "nu se poate inițializa certificatul SSL și baza de date a cheii: %s" msgid "you must set TLS_CERT in %s to use SSL" msgstr "trebuie să stabiliți TLS_CERT în %s pentru a utiliza SSL" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "nu se poate inițializa LDAP: %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls specificat, dar bibliotecile LDAP nu acceptă ldap_start_tls_s() sau ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "atribut sudoOrder nevalid: %s" @@ -2905,7 +2910,7 @@ msgid "unable to send audit message" msgstr "nu se poate trimite mesajul de auditare" #: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 -#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "eroare în bucla de eveniment" @@ -2947,20 +2952,20 @@ msgstr "Inițializarea TLS nu a reușit" msgid "TLS handshake was unsuccessful" msgstr "Negocierea TLS nu a reușit" -#: plugins/sudoers/log_client.c:1211 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: eroare internă, stare de ieșire nevalidă %d" -#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "a fost pierdută conexiunea la serverul de înregistrare a jurnalului" -#: plugins/sudoers/log_client.c:1841 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "lipsește memoria tampon de scriere" -#: plugins/sudoers/log_client.c:1995 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "nu se poate conecta la serverul de înregistrare a jurnalului" @@ -3000,15 +3005,15 @@ msgstr "Utilizatorului %s nu îi este permis să execute „%s%s%s” ca %s%s%s msgid "This incident has been reported to the administrator.\n" msgstr "Acest incident a fost raportat administratorului.\n" -#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 -#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 -#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 -#: plugins/sudoers/sudoers.c:807 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s: comanda nu a fost găsită" -#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -3017,7 +3022,7 @@ msgstr "" "se ignoră „%s” găsit în „.”\n" "Utilizați «sudo ./%s» dacă aceasta este „%s” pe care doriți să o rulați." -#: plugins/sudoers/logging.c:387 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" @@ -3026,24 +3031,24 @@ msgstr[1] "două încercări de parolă incorecte" msgstr[2] "%u încercări de parolă incorecte" msgstr[3] "%u de încercări de parolă incorecte" -#: plugins/sudoers/logging.c:477 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "eșec de autentificare" -#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "o parolă este necesară" -#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "problemă la analizarea sintaxei lui „sudoers”" -#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1062 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "nu se poate scrie fișierul de jurnal: %s" @@ -3058,7 +3063,7 @@ msgstr "suma de control pentru %s (%s) are lungimea greșită %zu, se aștepta % msgid "digest for %s (%s) is not in %s form" msgstr "suma de control pentru %s (%s) nu este în formatul %s" -#: plugins/sudoers/parse.c:591 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -3067,7 +3072,7 @@ msgstr "" "\n" "Regula LDAP: %s\n" -#: plugins/sudoers/parse.c:594 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -3075,38 +3080,38 @@ msgstr "" "\n" "Intrare „sudoers”:\n" -#: plugins/sudoers/parse.c:596 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " RuleazăCaUtilizatorii: " -#: plugins/sudoers/parse.c:611 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " RuleazăCaGrupurile: " -#: plugins/sudoers/parse.c:621 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " Opțiuni: " -#: plugins/sudoers/parse.c:685 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " Comenzi:\n" -#: plugins/sudoers/parse.c:876 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "Se potrivesc intrările Defaults pentru %s pe %s:\n" -#: plugins/sudoers/parse.c:894 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "Valori implicite specifice „Run_as” și comenzii pentru %s:\n" -#: plugins/sudoers/parse.c:912 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "Utilizatorul %s poate să ruleze următoarele comenzi pe %s:\n" -#: plugins/sudoers/parse.c:927 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Utilizatorului %s nu îi este permis să ruleze «sudo» pe %s.\n" @@ -3121,64 +3126,64 @@ msgstr "se ignoră sudoRole incompletă: cn: %s" msgid "invalid LDIF attribute: %s" msgstr "atribut LDIF nevalid: %s" -#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "%.*s nevalid stabilit de interfața «sudo»" -#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "nu se poate analiza lista de adrese de rețea" -#: plugins/sudoers/policy.c:526 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "numele de utilizator nu este stabilit de interfața sudo" -#: plugins/sudoers/policy.c:530 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "ID-ul utilizatorului nu este stabilit de interfața «sudo»" -#: plugins/sudoers/policy.c:534 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "ID-ul grupului nu este stabilit de interfața «sudo»" -#: plugins/sudoers/policy.c:538 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "numele gazdei nu este stabilit de interfața sudo" -#: plugins/sudoers/policy.c:730 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "director de lucru nevalid: %s" -#: plugins/sudoers/policy.c:914 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "director „chroot” nevalid: %s" -#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 -#: plugins/sudoers/visudo.c:902 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "nu se poate executa %s" -#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 -#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: indicatori de mod nevalizi în interfața «sudo»: 0x%x" -#: plugins/sudoers/policy.c:1292 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Versiunea modulului de politică „sudoers”, este %s\n" -#: plugins/sudoers/policy.c:1294 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Versiunea de gramatică a fișierului „sudoers”, este %d\n" -#: plugins/sudoers/policy.c:1298 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3187,27 +3192,27 @@ msgstr "" "\n" "Cale „sudoers”: %s\n" -#: plugins/sudoers/policy.c:1301 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "cale nsswitch: %s\n" -#: plugins/sudoers/policy.c:1303 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "cale ldap.conf: %s\n" -#: plugins/sudoers/policy.c:1304 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "cale ldap.secret: %s\n" -#: plugins/sudoers/policy.c:1337 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "nu se poate înregistra cârligul de tip %d (versiunea %d.%d)" -#: plugins/sudoers/policy.c:1355 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "nu se poate anula înregistrarea cârligului de tip %d (versiunea %d.%d)" @@ -3254,24 +3259,24 @@ msgstr "nu se poate stoca în memoria tampon grupul %s" msgid "unable to cache group %s, already exists" msgstr "nu se poate stoca în memoria tampon grupul %s, există deja" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "nu se poate stoca în memoria tampon lista grupului pentru %s, există deja" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "nu se poate stoca în memoria tampon lista grupului pentru %s" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "nu se pot analiza grupurile pentru %s" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "nu se pot analiza gid-urile pentru %s" @@ -3383,213 +3388,217 @@ msgstr "nicio comandă specificată" msgid "sudoers specifies that root is not allowed to sudo" msgstr "„sudoers” specifică că root nu are permisiunea să execute «sudo»" -#: plugins/sudoers/sudoers.c:476 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "utilizatorului nu îi este permis să suprascrie limita de closefrom" -#: plugins/sudoers/sudoers.c:477 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "nu aveți permisiunea de a utiliza opțiunea „-C”" -#: plugins/sudoers/sudoers.c:537 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "proprietar marcaj de timp (%s): Nu există un astfel de utilizator" -#: plugins/sudoers/sudoers.c:552 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "fără tty" -#: plugins/sudoers/sudoers.c:553 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "trebuie să aveți un tty pentru a rula «sudo»" -#: plugins/sudoers/sudoers.c:560 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "shell nevalid pentru utilizatorul %s: %s" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "comandă în directorul curent" -#: plugins/sudoers/sudoers.c:658 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "«cd» este o comandă încorporată în shell, nu poate fi rulată direct." -#: plugins/sudoers/sudoers.c:660 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "opțiunea „-s” poate fi utilizată pentru a rula un shell privilegiat." -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "opțiunea „-D” poate fi folosită pentru a rula o comandă într-un anumit director." -#: plugins/sudoers/sudoers.c:671 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "utilizatorului nu îi este permis să stabilească o limită de timp a comenzii" -#: plugins/sudoers/sudoers.c:673 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "nu aveți permisiunea de a stabili o limită de timp a comenzii" -#: plugins/sudoers/sudoers.c:681 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "utilizatorului nu îi este permis să păstreze mediul" -#: plugins/sudoers/sudoers.c:683 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "nu aveți permisiunea să păstrați mediul" -#: plugins/sudoers/sudoers.c:1073 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "eroare la stabilirea variabilelor de mediu specificate de utilizator" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "«sudoedit» nu are nevoie să fie rulat via «sudo»" -#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "nu se poate citi %s" -#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s nu este un fișier obișnuit" -#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s este deținut de uid-ul %u, ar trebui să fie %u" -#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "%s poate fi scris de oricine" -#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s este deținut de gid-ul %u, ar trebui să fie %u" -#: plugins/sudoers/sudoers.c:1194 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "doar root poate utiliza „-c %s”" -#: plugins/sudoers/sudoers.c:1213 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "clasă de autentificare necunoscută %s" -#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "nu se poate rezolva gazda %s" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "opțiune de filtru nevalidă: %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "așteptare maximă nevalidă: %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "factor de viteză nevalid: %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "decalaj de timp nevalid %s" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/sincronizare: %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "Se redă sesiunea sudo: %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "nu se poate stabili tty la modul „raw”" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "Avertisment: terminalul este prea mic pentru a putea reda bine jurnalul.\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "Geometria jurnalului este %d x %d, iar geometria terminalului este %d x %d." -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "Redarea s-a încheiat, apăsați orice tastă pentru a restaura terminalul." -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "expresie ambiguă „%s”" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "„)” fără pereche în expresie" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "termen de căutare necunoscut „%s”" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s necesită un argument" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "nu s-a putut analiza data „%s”" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "„(” fără pereche în expresie" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "terminare ilegală a expresiei, cu „or”" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "terminare ilegală a expresiei, cu „!”" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "tip de căutare necunoscută %d" -#: plugins/sudoers/sudoreplay.c:1650 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "utilizare: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" -#: plugins/sudoers/sudoreplay.c:1652 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "utilizare: %s [-h] [-d dir] -l [expresie de căutare]\n" -#: plugins/sudoers/sudoreplay.c:1666 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3598,7 +3607,7 @@ msgstr "" "%s - redă jurnalele de sesiune «sudo»\n" "\n" -#: plugins/sudoers/sudoreplay.c:1668 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3685,7 +3694,7 @@ msgstr "opțiunea „-x” va fi eliminată într-o lansare viitoare" msgid "please consider using the cvtsudoers utility instead" msgstr "luați în considerare utilizarea utilitarului «cvtsudoers» în schimb" -#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "apăsați „enter” pentru a edita %s: " @@ -3695,81 +3704,81 @@ msgstr "apăsați „enter” pentru a edita %s: " msgid "contents of edit session left in %s" msgstr "conținutul sesiunii de editare rămase în %s" -#: plugins/sudoers/visudo.c:402 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "editorul specificat (%s) nu există" -#: plugins/sudoers/visudo.c:404 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "nu s-a găsit niciun editor (cale editor = %s)" -#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 #, c-format msgid "unable to stat %s" msgstr "nu se poate stabili starea lui %s" -#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "eroare de scriere" -#: plugins/sudoers/visudo.c:565 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "nu se poate stabili starea fișierului temporar (%s), %s neschimbat" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "fișier temporar de lungime zero (%s), %s neschimbat" -#: plugins/sudoers/visudo.c:578 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "editorul (%s) a eșuat, %s neschimbat" -#: plugins/sudoers/visudo.c:600 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s neschimbat" -#: plugins/sudoers/visudo.c:645 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "nu se poate redeschide fișierul temporar (%s), %s neschimbat." -#: plugins/sudoers/visudo.c:658 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "nu se poate analiza fișierul temporar (%s), eroare necunoscută" -#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "nu se poate stabili (uid, gid) de %s la (%u, %u)" -#: plugins/sudoers/visudo.c:809 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s și %s nu sunt pe același sistem de fișiere, se utilizează «mv» pentru a redenumi" -#: plugins/sudoers/visudo.c:820 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "comanda a eșuat: „%s %s %s”, %s neschimbat" -#: plugins/sudoers/visudo.c:827 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "eroare la redenumirea %s, %s neschimbat" -#: plugins/sudoers/visudo.c:847 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "Acum ce? " -#: plugins/sudoers/visudo.c:861 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3781,41 +3790,41 @@ msgstr "" " (x) - ieși fără a salva modificările în fișierul „sudoers”\n" " (Q) - ieși și salvează modificările în fișierul „sudoers” (PERICOL!)\n" -#: plugins/sudoers/visudo.c:907 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "nu se poate rula %s" -#: plugins/sudoers/visudo.c:938 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: proprietarul greșit (uid, gid) ar trebui să fie (%u, %u)n\n" -#: plugins/sudoers/visudo.c:949 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: permisiuni proaste, ar trebui să fie modul 0%o\n" -#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s: analizat, OK\n" -#: plugins/sudoers/visudo.c:1023 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s ocupat, încercați din nou mai târziu" -#: plugins/sudoers/visudo.c:1027 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "Editați oricum? [y/N]" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "Avertisment: %s:%d:%d: neutilizat %s „%s”" -#: plugins/sudoers/visudo.c:1240 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3824,7 +3833,7 @@ msgstr "" "%s - editează în siguranță fișierul „sudoers”\n" "\n" -#: plugins/sudoers/visudo.c:1242 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" @@ -3870,14 +3879,20 @@ msgstr "continuarea liniei nevalidă" msgid "invalid IPv6 address" msgstr "adresă IPv6 invalidă" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "întrerupere de linie neașteptată în șir" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "prea multe niveluri de includeri" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s trebuie să fie deținut de uid-ul %d" + +#~ msgid "%s must only be writable by owner" +#~ msgstr "%s trebuie să poată fi scris numai de către proprietar" + #~ msgid "%s is group writable" #~ msgstr "%s poate fi scris de membrii grupului" diff --git a/plugins/sudoers/po/ru.mo b/plugins/sudoers/po/ru.mo index a8f1f1604a..f0497ca658 100644 Binary files a/plugins/sudoers/po/ru.mo and b/plugins/sudoers/po/ru.mo differ diff --git a/plugins/sudoers/po/ru.po b/plugins/sudoers/po/ru.po index 64a42d24f3..2a198cc183 100644 --- a/plugins/sudoers/po/ru.po +++ b/plugins/sudoers/po/ru.po @@ -3,205 +3,1544 @@ # This file is distributed under the same license as the sudo package. # # Artem Vorotnikov , 2015. -# Pavel Maryanov , 2015. +# Pavel Maryanov , 2015, 2022. msgid "" msgstr "" -"Project-Id-Version: sudoers 1.8.14b2\n" -"Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" -"POT-Creation-Date: 2015-07-03 07:09-0600\n" -"PO-Revision-Date: 2015-09-10 19:15+0300\n" +"Project-Id-Version: sudoers 1.9.12b2\n" +"Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" +"POT-Creation-Date: 2022-10-10 09:13-0600\n" +"PO-Revision-Date: 2022-11-04 15:15+0200\n" "Last-Translator: Pavel Maryanov \n" "Language-Team: Russian \n" "Language: ru\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Bugs: Report translation errors to the Language-Team address.\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" -"X-Generator: Poedit 1.8.4\n" +"X-Generator: Poedit 2.4.2\n" + +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +msgid "syntax error" +msgstr "ошибка синтаксиса" + +#: confstr.sh:2 +msgid "%p's password: " +msgstr "пароль %p: " + +#: confstr.sh:3 +msgid "[sudo] password for %p: " +msgstr "[sudo] пароль для %p: " + +#: confstr.sh:4 +msgid "Password: " +msgstr "Пароль: " + +#: confstr.sh:5 +msgid "*** SECURITY information for %h ***" +msgstr "*** Данные БЕЗОПАСНОСТИ для %h ***" + +#: confstr.sh:6 +msgid "Sorry, try again." +msgstr "Попробуйте ещё раз." + +#: gram.y:237 gram.y:304 gram.y:313 gram.y:322 gram.y:332 gram.y:342 +#: gram.y:366 gram.y:393 gram.y:402 gram.y:410 gram.y:419 gram.y:428 +#: gram.y:502 gram.y:512 gram.y:524 gram.y:572 gram.y:581 gram.y:590 +#: gram.y:599 gram.y:731 gram.y:739 gram.y:750 gram.y:762 gram.y:781 +#: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 +#: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 +#: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 +#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 +#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 +#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 +#: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 +#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 +#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 +#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 +#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 +#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 +#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 +#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 +#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 +#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 +#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 +#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 +#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 +#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 +#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 +#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 +#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 +#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 +#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 +#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 +#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 +#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 +#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 +#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 +#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 +#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 +#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 +#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 +#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 +#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 +#: plugins/sudoers/cvtsudoers_merge.c:52 +#: plugins/sudoers/cvtsudoers_merge.c:353 +#: plugins/sudoers/cvtsudoers_merge.c:399 +#: plugins/sudoers/cvtsudoers_merge.c:446 +#: plugins/sudoers/cvtsudoers_merge.c:467 +#: plugins/sudoers/cvtsudoers_merge.c:553 +#: plugins/sudoers/cvtsudoers_merge.c:564 +#: plugins/sudoers/cvtsudoers_merge.c:633 +#: plugins/sudoers/cvtsudoers_merge.c:1158 +#: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 +#: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 +#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 +#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 +#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 +#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 +#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 +#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 +#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 +#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 +#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 +#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 +#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 +#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 +#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 +#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 +#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 +#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 +#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 +#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 +#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 +#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 +#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 +#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 +#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 +#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 +#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 +#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 +#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 +#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 +#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 +#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 +#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 +#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 +#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 +#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 +#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 +#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 +#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 +#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 +#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 +#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 +#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 +#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 +#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 +#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 +#: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 +#: plugins/sudoers/timestamp.c:1017 plugins/sudoers/timestamp.c:1146 +#: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 +#: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 +#: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 +#: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 +#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +msgid "unable to allocate memory" +msgstr "не удаётся выделить память" + +#: gram.y:623 +msgid "a digest requires a path name" +msgstr "для дайджеста нужно указать полный путь" + +#: gram.y:645 +msgid "values for \"CWD\" must start with a '/', '~', or '*'" +msgstr "" + +#: gram.y:651 +msgid "\"CWD\" path too long" +msgstr "" + +#: gram.y:661 +msgid "values for \"CHROOT\" must start with a '/', '~', or '*'" +msgstr "" + +#: gram.y:667 +msgid "\"CHROOT\" path too long" +msgstr "" + +#: gram.y:802 +#, c-format +msgid "syntax error, reserved word %s used as an alias name" +msgstr "" + +#: gram.y:825 +msgid "invalid notbefore value" +msgstr "" + +#: gram.y:834 +msgid "invalid notafter value" +msgstr "" + +#: gram.y:844 plugins/sudoers/policy.c:383 +msgid "timeout value too large" +msgstr "" + +#: gram.y:846 plugins/sudoers/policy.c:385 +msgid "invalid timeout value" +msgstr "" + +#: gram.y:967 plugins/sudoers/sudoers.c:1033 +msgid "command too long" +msgstr "" + +#: gram.y:1224 plugins/sudoers/check_aliases.c:96 +#: plugins/sudoers/defaults.c:1276 +#, fuzzy, c-format +#| msgid "%s: %s" +msgid "%s:%d:%d: %s\n" +msgstr "%s: %s" + +#: gram.y:1278 +#, fuzzy, c-format +#| msgid "Alias `%s' already defined" +msgid "Alias \"%s\" already defined" +msgstr "Псевдоним «%s» уже определён" + +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 +#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 +#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 +#: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 +#: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 +#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 +#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 +#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 +#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 +#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 +#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 +#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 +#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 +#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 +#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 +#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 +#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 +#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 +#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 +#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 +#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 +#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 +#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 +#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 +#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 +#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 +#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 +#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 +#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 +#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 +#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 +#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 +#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 +#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 +#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 +#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 +#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 +#: plugins/sudoers/cvtsudoers_merge.c:51 +#: plugins/sudoers/cvtsudoers_merge.c:353 +#: plugins/sudoers/cvtsudoers_merge.c:399 +#: plugins/sudoers/cvtsudoers_merge.c:445 +#: plugins/sudoers/cvtsudoers_merge.c:466 +#: plugins/sudoers/cvtsudoers_merge.c:553 +#: plugins/sudoers/cvtsudoers_merge.c:561 +#: plugins/sudoers/cvtsudoers_merge.c:564 +#: plugins/sudoers/cvtsudoers_merge.c:630 +#: plugins/sudoers/cvtsudoers_merge.c:633 +#: plugins/sudoers/cvtsudoers_merge.c:1157 +#: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 +#: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 +#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 +#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 +#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 +#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 +#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 +#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 +#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 +#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 +#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 +#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 +#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 +#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 +#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 +#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 +#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 +#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 +#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 +#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 +#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 +#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 +#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 +#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 +#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 +#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 +#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 +#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 +#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 +#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 +#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 +#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 +#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 +#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 +#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 +#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 +#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 +#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 +#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 +#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 +#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 +#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 +#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 +#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 +#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 +#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 +#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 +#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 +#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 +#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 +#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 +#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 +#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 +#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 +#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 +#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 +#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 +#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 +#: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 +#: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 +#: plugins/sudoers/timestamp.c:1146 plugins/sudoers/toke_util.c:78 +#: plugins/sudoers/toke_util.c:106 plugins/sudoers/toke_util.c:131 +#: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 +#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 +#: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 +#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 +#: toke.l:1155 toke.l:1218 toke.l:1226 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 +#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 +#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 +#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 +#: toke.l:987 toke.l:1189 +#, c-format +msgid "internal error, %s overflow" +msgstr "" + +#: lib/eventlog/eventlog.c:373 +#, c-format +msgid "unable to dup stdin: %m" +msgstr "" + +#: lib/eventlog/eventlog.c:415 +#, c-format +msgid "unable to execute %s: %m" +msgstr "" + +#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +msgid "unable to fork" +msgstr "" + +#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#, c-format +msgid "unable to fork: %m" +msgstr "" + +#: lib/eventlog/eventlog.c:528 +#, c-format +msgid "unable to open pipe: %m" +msgstr "" + +#: lib/eventlog/eventlog.c:1030 +#, c-format +msgid "%8s : %s" +msgstr "%8s : %s" + +#: lib/eventlog/eventlog.c:1059 +#, c-format +msgid "%8s : (command continued) %s" +msgstr "%8s : (выполнение команды продолжено) %s" + +#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 +#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#, c-format +msgid "invalid regular expression \"%s\": %s" +msgstr "" + +#: lib/iolog/iolog_json.c:140 +#, c-format +msgid "expected JSON_STRING, got %d" +msgstr "" + +#: lib/iolog/iolog_json.c:145 +msgid "JSON_ARRAY too large" +msgstr "" + +#: lib/iolog/iolog_json.c:404 +msgid "missing double quote in name" +msgstr "" + +#: lib/iolog/iolog_json.c:501 +msgid "missing JSON_OBJECT" +msgstr "" + +#: lib/iolog/iolog_json.c:505 +#, c-format +msgid "expected JSON_OBJECT, got %d" +msgstr "" + +#: lib/iolog/iolog_json.c:661 +#, c-format +msgid "json stack exhausted (max %u frames)" +msgstr "" + +#: lib/iolog/iolog_json.c:735 +msgid "objects must consist of name:value pairs" +msgstr "" + +#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 +#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 +#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 +#: lib/iolog/iolog_json.c:903 +msgid "missing separator between values" +msgstr "" + +#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +msgid "unmatched close brace" +msgstr "" + +#: lib/iolog/iolog_json.c:766 +msgid "unexpected array" +msgstr "" + +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +msgid "unmatched close bracket" +msgstr "" + +#: lib/iolog/iolog_json.c:797 +msgid "unexpected string" +msgstr "" + +#: lib/iolog/iolog_json.c:808 +msgid "missing colon after name" +msgstr "" + +#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +msgid "unexpected boolean" +msgstr "" + +#: lib/iolog/iolog_json.c:873 +msgid "unexpected null" +msgstr "" + +#: lib/iolog/iolog_json.c:894 +msgid "unexpected number" +msgstr "" + +#: lib/iolog/iolog_json.c:941 +#, fuzzy +#| msgid "syntax error" +msgid "parse error" +msgstr "ошибка синтаксиса" + +#: lib/iolog/iolog_legacy.c:65 +#, c-format +msgid "%s: invalid log file" +msgstr "" + +#: lib/iolog/iolog_legacy.c:83 +#, c-format +msgid "%s: time stamp field is missing" +msgstr "" + +#: lib/iolog/iolog_legacy.c:89 +#, c-format +msgid "%s: time stamp %s: %s" +msgstr "" + +#: lib/iolog/iolog_legacy.c:96 +#, c-format +msgid "%s: user field is missing" +msgstr "" + +#: lib/iolog/iolog_legacy.c:107 +#, c-format +msgid "%s: runas user field is missing" +msgstr "" + +#: lib/iolog/iolog_legacy.c:118 +#, c-format +msgid "%s: runas group field is missing" +msgstr "" + +#: lib/iolog/iolog_mkdirs.c:89 +#, c-format +msgid "%s exists but is not a directory (0%o)" +msgstr "" + +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 +#, c-format +msgid "unable to mkdir %s" +msgstr "" + +#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 +#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#, c-format +msgid "unable to change mode of %s to 0%o" +msgstr "" + +#: lib/iolog/iolog_timing.c:261 +#, c-format +msgid "error reading timing file: %s" +msgstr "" + +#: lib/iolog/iolog_timing.c:268 +#, c-format +msgid "invalid timing file line: %s" +msgstr "" + +#: logsrvd/iolog_writer.c:65 +#, c-format +msgid "%s: protocol error: NULL key" +msgstr "" + +#: logsrvd/iolog_writer.c:69 +#, c-format +msgid "%s: protocol error: wrong type for %s" +msgstr "" + +#: logsrvd/iolog_writer.c:74 logsrvd/logsrvd_local.c:109 +#: logsrvd/logsrvd_local.c:123 logsrvd/logsrvd_local.c:131 +#: logsrvd/logsrvd_local.c:149 +#, c-format +msgid "%s: protocol error: NULL value found in %s" +msgstr "" + +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 +#: plugins/sudoers/policy.c:591 +#, fuzzy +#| msgid "unable to read the clock" +msgid "unable to generate UUID" +msgstr "не удаётся прочитать часы" + +#: logsrvd/iolog_writer.c:341 logsrvd/iolog_writer.c:346 +#: logsrvd/iolog_writer.c:351 logsrvd/iolog_writer.c:356 +#, c-format +msgid "%s: protocol error: %s missing from AcceptMessage" +msgstr "" + +#: logsrvd/iolog_writer.c:417 +#, fuzzy, c-format +#| msgid "%s: unable to allocate options: %s" +msgid "%s: unable to format session id" +msgstr "%s: не удаётся выделить параметры: %s" + +#: logsrvd/iolog_writer.c:431 logsrvd/iolog_writer.c:445 +#: logsrvd/iolog_writer.c:459 logsrvd/iolog_writer.c:474 +#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:502 +#, c-format +msgid "%s: %s is not set" +msgstr "" + +#: logsrvd/iolog_writer.c:538 logsrvd/iolog_writer.c:545 +#, fuzzy, c-format +#| msgid "unable to open log file: %s: %s" +msgid "unable to expand iolog path %s" +msgstr "не удаётся открыть файл журнала: %s: %s" + +#: logsrvd/iolog_writer.c:563 +#, fuzzy, c-format +#| msgid "unable to read the clock" +msgid "unable to create iolog path %s" +msgstr "не удаётся прочитать часы" + +#: logsrvd/iolog_writer.c:593 +#, c-format +msgid "invalid iofd %d" +msgstr "" + +#: logsrvd/iolog_writer.c:613 +#, c-format +msgid "error closing iofd %d: %s" +msgstr "" + +#: logsrvd/iolog_writer.c:633 +#, c-format +msgid "error flushing iofd %d: %s" +msgstr "" + +#: logsrvd/iolog_writer.c:751 +#, c-format +msgid "invalid I/O log %s: %s referenced but not present" +msgstr "" + +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#, fuzzy, c-format +#| msgid "%s: unable to get credentials: %s" +msgid "%s: unable to find resume point [%lld, %ld]" +msgstr "%s: не удаётся получить учётные данные: %s" + +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 +#: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 +#: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 +#: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 +#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 +#: plugins/sudoers/visudo.c:971 +#, c-format +msgid "unable to open %s" +msgstr "" + +#: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 +#: plugins/sudoers/sudoreplay.c:368 +#, fuzzy, c-format +#| msgid "unable to open log file: %s: %s" +msgid "unable to open %s/%s" +msgstr "не удаётся открыть файл журнала: %s: %s" + +#: logsrvd/iolog_writer.c:810 +#, fuzzy, c-format +#| msgid "unable to open log file: %s: %s" +msgid "unable to copy %s/%s to %s/%s: %s" +msgstr "не удаётся открыть файл журнала: %s: %s" + +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#, fuzzy, c-format +#| msgid "%s: unable to parse '%s': %s" +msgid "unable to rename %s to %s" +msgstr "%s: не удаётся прочитать '%s': %s" + +#: logsrvd/logsrv_util.c:147 logsrvd/logsrv_util.c:176 +#, c-format +msgid "%s/%s: unable to find resume point [%lld, %ld]" +msgstr "" + +#: logsrvd/logsrv_util.c:159 +#, c-format +msgid "missing I/O log file %s/%s" +msgstr "" + +#: logsrvd/logsrv_util.c:166 +#, fuzzy, c-format +#| msgid "%s: unable to parse '%s': %s" +msgid "%s/%s: unable to seek forward %zu" +msgstr "%s: не удаётся прочитать '%s': %s" + +#: logsrvd/logsrvd.c:271 logsrvd/logsrvd_queue.c:135 +#, fuzzy +#| msgid "unable to connect to authentication server" +msgid "unable to connect to relay" +msgstr "не удаётся связаться с сервером аутентификации" + +#: logsrvd/logsrvd.c:330 logsrvd/logsrvd_relay.c:842 +#, c-format +msgid "server message too large: %zu" +msgstr "" + +#: logsrvd/logsrvd.c:422 logsrvd/logsrvd.c:545 logsrvd/logsrvd.c:631 +#: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 +#: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 +#: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 +#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 +#: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 +#: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 +#: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 +#: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 +#: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 +#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 +#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 +#: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 +#: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 +#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 +#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 +#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 +#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 +#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 +#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 +#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 +#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 +#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#, fuzzy +#| msgid "unable to read the clock" +msgid "unable to add event to queue" +msgstr "не удаётся прочитать часы" + +#: logsrvd/logsrvd.c:446 logsrvd/logsrvd.c:483 logsrvd/logsrvd.c:515 +#: logsrvd/logsrvd.c:569 logsrvd/logsrvd.c:648 logsrvd/logsrvd.c:684 +#: logsrvd/logsrvd.c:720 logsrvd/logsrvd.c:756 logsrvd/logsrvd_relay.c:510 +#: logsrvd/logsrvd_relay.c:543 +#, c-format +msgid "unexpected state %d for %s" +msgstr "" + +#: logsrvd/logsrvd.c:447 logsrvd/logsrvd.c:484 logsrvd/logsrvd.c:516 +#: logsrvd/logsrvd.c:570 logsrvd/logsrvd.c:649 logsrvd/logsrvd.c:685 +#: logsrvd/logsrvd.c:721 logsrvd/logsrvd.c:757 logsrvd/logsrvd_relay.c:512 +#: logsrvd/logsrvd_relay.c:545 +msgid "state machine error" +msgstr "" + +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:454 +msgid "invalid AcceptMessage" +msgstr "" + +#: logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:491 +msgid "invalid RejectMessage" +msgstr "" + +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:523 +msgid "invalid ExitMessage" +msgstr "" + +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:577 +msgid "invalid RestartMessage" +msgstr "" + +#: logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:612 +msgid "invalid AlertMessage" +msgstr "" + +#: logsrvd/logsrvd.c:653 logsrvd/logsrvd.c:689 logsrvd/logsrvd.c:725 +#, c-format +msgid "%s: unexpected IoBuffer" +msgstr "" + +#: logsrvd/logsrvd.c:654 logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:726 +msgid "protocol error" +msgstr "" + +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:661 +msgid "invalid IoBuffer" +msgstr "" + +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:697 +msgid "invalid ChangeWindowSize" +msgstr "" + +#: logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:733 +msgid "invalid CommandSuspend" +msgstr "" + +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 +#: plugins/sudoers/log_client.c:1583 +#, fuzzy, c-format +#| msgid "unable to initialize PAM" +msgid "unable to unpack %s size %zu" +msgstr "не удаётся инициализировать PAM" + +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd_relay.c:676 +#, c-format +msgid "unexpected type_case value %d in %s from %s" +msgstr "" + +#: logsrvd/logsrvd.c:829 +msgid "unrecognized ClientMessage type" +msgstr "" + +#: logsrvd/logsrvd.c:919 +#, c-format +msgid "timed out writing to client %s" +msgstr "" + +#: logsrvd/logsrvd.c:924 logsrvd/logsrvd_relay.c:914 logsrvd/sendlog.c:1395 +#, c-format +msgid "missing write buffer for client %s" +msgstr "" + +#: logsrvd/logsrvd.c:1020 +#, c-format +msgid "timed out reading from client %s" +msgstr "" + +#: logsrvd/logsrvd.c:1061 logsrvd/logsrvd_relay.c:777 +#, c-format +msgid "EOF from %s without proper TLS shutdown" +msgstr "" + +#: logsrvd/logsrvd.c:1105 logsrvd/logsrvd_relay.c:205 logsrvd/sendlog.c:322 +#: plugins/sudoers/log_client.c:721 +#, c-format +msgid "client message too large: %zu" +msgstr "" + +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 +#: logsrvd/logsrvd_journal.c:257 +msgid "client message too large" +msgstr "" + +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1125 +msgid "invalid ClientMessage" +msgstr "" + +#: logsrvd/logsrvd.c:1425 +#, fuzzy +#| msgid "unable to allocate memory" +msgid "unable to get remote IP addr" +msgstr "не удаётся выделить память" + +#: logsrvd/logsrvd.c:1456 logsrvd/tls_client.c:203 +#: plugins/sudoers/log_client.c:281 +#, c-format +msgid "Unable to attach user data to the ssl object: %s" +msgstr "" + +#: logsrvd/logsrvd.c:1639 logsrvd/logsrvd.c:1992 +#, fuzzy +#| msgid "unable to read the clock" +msgid "unable to setup listen socket" +msgstr "не удаётся прочитать часы" + +#: logsrvd/logsrvd.c:1756 +#, c-format +msgid "unexpected signal %d" +msgstr "" + +#: logsrvd/logsrvd.c:1894 +msgid "sudo log server" +msgstr "" + +#: logsrvd/logsrvd.c:1896 logsrvd/sendlog.c:121 +msgid "Options:" +msgstr "" + +#: logsrvd/logsrvd.c:1898 +msgid "path to configuration file" +msgstr "" + +#: logsrvd/logsrvd.c:1900 logsrvd/sendlog.c:123 +msgid "display help message and exit" +msgstr "" + +#: logsrvd/logsrvd.c:1902 +msgid "do not fork, run in the foreground" +msgstr "" + +#: logsrvd/logsrvd.c:1904 +msgid "percent chance connections will drop" +msgstr "" + +#: logsrvd/logsrvd.c:1906 logsrvd/sendlog.c:153 +msgid "display version information and exit" +msgstr "" + +#: logsrvd/logsrvd.c:1956 logsrvd/sendlog.c:1702 +msgid "Protobuf-C version 1.3 or higher required" +msgstr "" + +#: logsrvd/logsrvd.c:1972 +#, fuzzy, c-format +#| msgid "invalid sudoOrder attribute: %s" +msgid "invalid random drop value: %s" +msgstr "недопустимый атрибут sudoOrder: %s" + +#: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/visudo.c:182 +#, c-format +msgid "%s version %s\n" +msgstr "" + +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 +#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/testsudoers.c:382 +#, fuzzy, c-format +#| msgid "unknown user: %s" +msgid "unknown user %s" +msgstr "неизвестный пользователь: %s" + +#: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 +#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/testsudoers.c:406 +#, fuzzy, c-format +#| msgid "unknown user: %s" +msgid "unknown group %s" +msgstr "неизвестный пользователь: %s" + +#: logsrvd/logsrvd_conf.c:457 +#, fuzzy, c-format +#| msgid "unable to open log file: %s: %s" +msgid "unable to parse iolog mode %s" +msgstr "не удаётся открыть файл журнала: %s: %s" + +#: logsrvd/logsrvd_conf.c:474 logsrvd/logsrvd_conf.c:1243 +#, c-format +msgid "invalid value for %s: %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:527 +msgid "TLS not supported" +msgstr "" + +#: logsrvd/logsrvd_conf.c:549 +#, c-format +msgid "%s:%s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:622 logsrvd/logsrvd_conf.c:1032 +#, c-format +msgid "%s: not a fully qualified path" +msgstr "" + +#: logsrvd/logsrvd_conf.c:951 logsrvd/logsrvd_conf.c:967 +#: logsrvd/logsrvd_conf.c:1676 +#, c-format +msgid "unknown syslog facility %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:983 logsrvd/logsrvd_conf.c:999 +#: logsrvd/logsrvd_conf.c:1015 logsrvd/logsrvd_conf.c:1680 +#: logsrvd/logsrvd_conf.c:1684 logsrvd/logsrvd_conf.c:1688 +#, fuzzy, c-format +#| msgid "unknown user: %s" +msgid "unknown syslog priority %s" +msgstr "неизвестный пользователь: %s" + +#: logsrvd/logsrvd_conf.c:1197 +#, fuzzy, c-format +#| msgid "%s: unable to parse '%s': %s" +msgid "%s:%d unmatched '[': %s" +msgstr "%s: не удаётся прочитать '%s': %s" + +#: logsrvd/logsrvd_conf.c:1203 +#, fuzzy, c-format +#| msgid "%s: unable to parse '%s': %s" +msgid "%s:%d garbage after ']': %s" +msgstr "%s: не удаётся прочитать '%s': %s" + +#: logsrvd/logsrvd_conf.c:1215 +#, c-format +msgid "%s:%d invalid config section: %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1223 +#, c-format +msgid "%s:%d invalid configuration line: %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1229 +#, c-format +msgid "%s:%d expected section name: %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1251 +#, c-format +msgid "%s:%d [%s] illegal key: %s" +msgstr "" + +#: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 +#: plugins/sudoers/logging.c:1029 +#, fuzzy, c-format +#| msgid "unable to open log file: %s: %s" +msgid "unable to open log file %s" +msgstr "не удаётся открыть файл журнала: %s: %s" + +#: logsrvd/logsrvd_conf.c:1763 +#, fuzzy +#| msgid "unable to initialize SIA session" +msgid "unable to initialize server TLS context" +msgstr "не удаётся инициализировать сеанс SIA" + +#: logsrvd/logsrvd_conf.c:1783 +#, fuzzy +#| msgid "unable to initialize SIA session" +msgid "unable to initialize relay TLS context" +msgstr "не удаётся инициализировать сеанс SIA" + +#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 +#: logsrvd/logsrvd_journal.c:426 +#, fuzzy +#| msgid "unable to read fwtk config" +msgid "unable to create journal file" +msgstr "не удаётся прочитать конфигурацию ftwk" + +#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1026 +#, fuzzy, c-format +#| msgid "unable to lock log file: %s: %s" +msgid "unable to lock %s" +msgstr "не удаётся заблокировать файл журнала: %s: %s" + +#: logsrvd/logsrvd_journal.c:153 +#, fuzzy +#| msgid "unable to lock log file: %s: %s" +msgid "unable to lock journal file" +msgstr "не удаётся заблокировать файл журнала: %s: %s" + +#: logsrvd/logsrvd_journal.c:161 +#, fuzzy +#| msgid "unable to open log file: %s: %s" +msgid "unable to open journal file" +msgstr "не удаётся открыть файл журнала: %s: %s" + +#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 +#: logsrvd/logsrvd_journal.c:462 +#, fuzzy +#| msgid "unable to read fwtk config" +msgid "unable to write journal file" +msgstr "не удаётся прочитать конфигурацию ftwk" + +#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#, fuzzy +#| msgid "unable to read fwtk config" +msgid "unable to rename journal file" +msgstr "не удаётся прочитать конфигурацию ftwk" + +#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 +#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +msgid "unexpected EOF reading journal file" +msgstr "" + +#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 +#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +msgid "error reading journal file" +msgstr "" + +#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +msgid "invalid journal file, unable to restart" +msgstr "" + +#: logsrvd/logsrvd_journal.c:440 +#, c-format +msgid "unable to seek to [%lld, %ld] in journal file %s" +msgstr "" + +#: logsrvd/logsrvd_local.c:166 +#, c-format +msgid "unexpected value_case %d in %s from %s" +msgstr "" + +#: logsrvd/logsrvd_local.c:194 +msgid "error parsing AcceptMessage" +msgstr "" + +#: logsrvd/logsrvd_local.c:205 +msgid "error creating I/O log" +msgstr "" + +#: logsrvd/logsrvd_local.c:228 +msgid "error logging accept event" +msgstr "" + +#: logsrvd/logsrvd_local.c:267 +msgid "error parsing RejectMessage" +msgstr "" + +#: logsrvd/logsrvd_local.c:291 +msgid "error logging reject event" +msgstr "" + +#: logsrvd/logsrvd_local.c:427 logsrvd/logsrvd_local.c:435 +msgid "error logging exit event" +msgstr "" + +#: logsrvd/logsrvd_local.c:492 logsrvd/logsrvd_local.c:493 +msgid "log is already complete, cannot be restarted" +msgstr "" + +#: logsrvd/logsrvd_local.c:523 +#, fuzzy +#| msgid "unable to read the clock" +msgid "unable to restart log" +msgstr "не удаётся прочитать часы" + +#: logsrvd/logsrvd_local.c:539 +msgid "error parsing AlertMessage" +msgstr "" + +#: logsrvd/logsrvd_local.c:549 +msgid "error logging alert event" +msgstr "" + +#: logsrvd/logsrvd_local.c:585 logsrvd/logsrvd_local.c:648 +#: logsrvd/logsrvd_local.c:683 +#, c-format +msgid "unable to format timing buffer, length %d" +msgstr "" + +#: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 +#: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 +#: plugins/sudoers/sudoreplay.c:351 +#, fuzzy, c-format +#| msgid "%s: %s" +msgid "%s/%s: %s" +msgstr "%s: %s" + +#: logsrvd/logsrvd_local.c:618 +msgid "randomly dropping connection" +msgstr "" + +#: logsrvd/logsrvd_local.c:630 +msgid "error writing IoBuffer" +msgstr "" + +#: logsrvd/logsrvd_local.c:665 +msgid "error writing ChangeWindowSize" +msgstr "" + +#: logsrvd/logsrvd_local.c:700 +msgid "error writing CommandSuspend" +msgstr "" + +#: logsrvd/logsrvd_relay.c:435 +msgid "TLS handshake with relay host failed" +msgstr "" + +#: logsrvd/logsrvd_relay.c:463 +#, fuzzy +#| msgid "unable to connect to authentication server" +msgid "unable to connect to relay host" +msgstr "не удаётся связаться с сервером аутентификации" + +#: logsrvd/logsrvd_relay.c:518 +#, c-format +msgid "%s: invalid ServerHello, missing server_id" +msgstr "" + +#: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 +#: plugins/sudoers/log_client.c:1469 +msgid "invalid ServerHello" +msgstr "" + +#: logsrvd/logsrvd_relay.c:679 +msgid "unrecognized ServerMessage type" +msgstr "" -#: confstr.sh:1 -msgid "syntax error" -msgstr "ошибка синтаксиса" +#: logsrvd/logsrvd_relay.c:708 +#, c-format +msgid "timed out reading from relay %s (%s)" +msgstr "" -#: confstr.sh:2 -msgid "%p's password: " -msgstr "пароль %p: " +#: logsrvd/logsrvd_relay.c:710 +msgid "timeout reading from relay" +msgstr "" -#: confstr.sh:3 -msgid "[sudo] password for %p: " -msgstr "[sudo] пароль для %p: " +#: logsrvd/logsrvd_relay.c:762 +msgid "relay host name does not match certificate" +msgstr "" -#: confstr.sh:4 -msgid "Password: " -msgstr "Пароль: " +#: logsrvd/logsrvd_relay.c:768 logsrvd/logsrvd_relay.c:782 +#: logsrvd/logsrvd_relay.c:789 +msgid "error reading from relay" +msgstr "" -#: confstr.sh:5 -msgid "*** SECURITY information for %h ***" -msgstr "*** Данные БЕЗОПАСНОСТИ для %h ***" +#: logsrvd/logsrvd_relay.c:810 +#, fuzzy +#| msgid "unable to read the clock" +msgid "unable to read from relay" +msgstr "не удаётся прочитать часы" -#: confstr.sh:6 -msgid "Sorry, try again." -msgstr "Попробуйте ещё раз." +#: logsrvd/logsrvd_relay.c:825 logsrvd/logsrvd_relay.c:943 +msgid "relay server closed connection" +msgstr "" -#: gram.y:181 gram.y:199 gram.y:205 gram.y:211 gram.y:217 gram.y:223 -#: gram.y:239 gram.y:246 gram.y:253 gram.y:260 gram.y:267 gram.y:283 -#: gram.y:306 gram.y:313 gram.y:320 gram.y:327 gram.y:334 gram.y:387 -#: gram.y:395 gram.y:405 gram.y:435 gram.y:442 gram.y:449 gram.y:456 -#: gram.y:568 gram.y:575 gram.y:584 gram.y:593 gram.y:610 gram.y:661 -#: gram.y:668 gram.y:675 gram.y:683 gram.y:775 gram.y:782 gram.y:789 -#: gram.y:796 gram.y:803 gram.y:829 gram.y:836 gram.y:843 gram.y:1110 -#: gram.y:1117 plugins/sudoers/alias.c:123 plugins/sudoers/alias.c:136 -#: plugins/sudoers/auth/bsdauth.c:141 plugins/sudoers/auth/kerb5.c:119 -#: plugins/sudoers/auth/kerb5.c:145 plugins/sudoers/auth/pam.c:371 -#: plugins/sudoers/auth/rfc1938.c:109 plugins/sudoers/auth/sia.c:110 -#: plugins/sudoers/defaults.c:516 plugins/sudoers/defaults.c:720 -#: plugins/sudoers/defaults.c:880 plugins/sudoers/editor.c:64 -#: plugins/sudoers/editor.c:82 plugins/sudoers/editor.c:92 -#: plugins/sudoers/env.c:233 plugins/sudoers/group_plugin.c:131 -#: plugins/sudoers/iolog.c:582 plugins/sudoers/iolog.c:614 -#: plugins/sudoers/iolog_path.c:167 plugins/sudoers/ldap.c:446 -#: plugins/sudoers/ldap.c:477 plugins/sudoers/ldap.c:529 -#: plugins/sudoers/ldap.c:562 plugins/sudoers/ldap.c:914 -#: plugins/sudoers/ldap.c:1060 plugins/sudoers/ldap.c:1339 -#: plugins/sudoers/ldap.c:1512 plugins/sudoers/ldap.c:1588 -#: plugins/sudoers/ldap.c:1724 plugins/sudoers/ldap.c:1748 -#: plugins/sudoers/ldap.c:1778 plugins/sudoers/ldap.c:1831 -#: plugins/sudoers/ldap.c:1846 plugins/sudoers/ldap.c:1942 -#: plugins/sudoers/ldap.c:1975 plugins/sudoers/ldap.c:2128 -#: plugins/sudoers/ldap.c:2225 plugins/sudoers/ldap.c:3028 -#: plugins/sudoers/ldap.c:3061 plugins/sudoers/ldap.c:3375 -#: plugins/sudoers/ldap.c:3403 plugins/sudoers/ldap.c:3414 -#: plugins/sudoers/ldap.c:3504 plugins/sudoers/ldap.c:3520 -#: plugins/sudoers/linux_audit.c:76 plugins/sudoers/logging.c:188 -#: plugins/sudoers/logging.c:662 plugins/sudoers/logging.c:916 -#: plugins/sudoers/match.c:501 plugins/sudoers/match.c:537 -#: plugins/sudoers/match.c:695 plugins/sudoers/match.c:752 -#: plugins/sudoers/parse.c:235 plugins/sudoers/parse.c:247 -#: plugins/sudoers/parse.c:262 plugins/sudoers/parse.c:274 -#: plugins/sudoers/policy.c:384 plugins/sudoers/policy.c:575 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/sssd.c:160 -#: plugins/sudoers/sssd.c:192 plugins/sudoers/sssd.c:198 -#: plugins/sudoers/sssd.c:236 plugins/sudoers/sssd.c:243 -#: plugins/sudoers/sssd.c:279 plugins/sudoers/sssd.c:324 -#: plugins/sudoers/sssd.c:916 plugins/sudoers/sssd.c:1049 -#: plugins/sudoers/sudoers.c:159 plugins/sudoers/sudoers.c:294 -#: plugins/sudoers/sudoers.c:304 plugins/sudoers/sudoers.c:312 -#: plugins/sudoers/sudoers.c:365 plugins/sudoers/sudoers.c:663 -#: plugins/sudoers/sudoers.c:749 plugins/sudoers/sudoers.c:793 -#: plugins/sudoers/sudoers_debug.c:107 plugins/sudoers/sudoreplay.c:471 -#: plugins/sudoers/sudoreplay.c:667 plugins/sudoers/sudoreplay.c:779 -#: plugins/sudoers/sudoreplay.c:819 plugins/sudoers/sudoreplay.c:828 -#: plugins/sudoers/sudoreplay.c:838 plugins/sudoers/sudoreplay.c:846 -#: plugins/sudoers/sudoreplay.c:850 plugins/sudoers/sudoreplay.c:1006 -#: plugins/sudoers/sudoreplay.c:1010 plugins/sudoers/testsudoers.c:130 -#: plugins/sudoers/testsudoers.c:187 plugins/sudoers/testsudoers.c:214 -#: plugins/sudoers/testsudoers.c:231 plugins/sudoers/visudo.c:155 -#: plugins/sudoers/visudo.c:215 plugins/sudoers/visudo.c:299 -#: plugins/sudoers/visudo.c:305 plugins/sudoers/visudo.c:435 -#: plugins/sudoers/visudo.c:971 plugins/sudoers/visudo.c:1015 -#: plugins/sudoers/visudo.c:1111 -msgid "unable to allocate memory" -msgstr "не удаётся выделить память" +#: logsrvd/logsrvd_relay.c:843 +msgid "server message too large" +msgstr "" -#: gram.y:467 -msgid "a digest requires a path name" -msgstr "для дайджеста нужно указать полный путь" +#: logsrvd/logsrvd_relay.c:907 +#, c-format +msgid "timed out writing to relay %s (%s)" +msgstr "" + +#: logsrvd/logsrvd_relay.c:909 +msgid "timeout writing to relay" +msgstr "" + +#: logsrvd/logsrvd_relay.c:962 logsrvd/logsrvd_relay.c:969 +#: logsrvd/logsrvd_relay.c:981 +msgid "error writing to relay" +msgstr "" + +#: logsrvd/sendlog.c:119 +msgid "send sudo I/O log to remote server" +msgstr "" + +#: logsrvd/sendlog.c:125 +msgid "only send an accept event (no I/O)" +msgstr "" + +#: logsrvd/sendlog.c:128 +msgid "certificate bundle file to verify server's cert against" +msgstr "" + +#: logsrvd/sendlog.c:130 +msgid "certificate file for TLS handshake" +msgstr "" + +#: logsrvd/sendlog.c:133 +msgid "host to send logs to" +msgstr "" + +#: logsrvd/sendlog.c:135 +msgid "remote ID of I/O log to be resumed" +msgstr "" + +#: logsrvd/sendlog.c:138 +msgid "private key file" +msgstr "" + +#: logsrvd/sendlog.c:140 +msgid "do not verify server certificate" +msgstr "" + +#: logsrvd/sendlog.c:143 +msgid "port to use when connecting to host" +msgstr "" + +#: logsrvd/sendlog.c:145 +msgid "restart previous I/O log transfer" +msgstr "" + +#: logsrvd/sendlog.c:147 +msgid "reject the command with the given reason" +msgstr "" + +#: logsrvd/sendlog.c:149 +msgid "stop transfer after reaching this time" +msgstr "" + +#: logsrvd/sendlog.c:151 +msgid "test audit server by sending selected I/O log n times in parallel" +msgstr "" + +#: logsrvd/sendlog.c:176 plugins/sudoers/log_client.c:453 +#, fuzzy, c-format +#| msgid "unable to lock log file: %s: %s" +msgid "unable to look up %s:%s: %s" +msgstr "не удаётся заблокировать файл журнала: %s: %s" + +#: logsrvd/sendlog.c:214 +msgid "unable to get server IP addr" +msgstr "" + +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#, fuzzy, c-format +#| msgid "%s: unable to parse '%s': %s" +msgid "unable to read %s/%s: %s" +msgstr "%s: не удаётся прочитать '%s': %s" -#: gram.y:1110 gram.y:1117 plugins/sudoers/auth/pam.c:371 -#: plugins/sudoers/auth/rfc1938.c:109 plugins/sudoers/defaults.c:516 -#: plugins/sudoers/defaults.c:720 plugins/sudoers/defaults.c:880 -#: plugins/sudoers/editor.c:64 plugins/sudoers/editor.c:82 -#: plugins/sudoers/editor.c:92 plugins/sudoers/env.c:233 -#: plugins/sudoers/group_plugin.c:131 plugins/sudoers/iolog.c:582 -#: plugins/sudoers/iolog.c:614 plugins/sudoers/iolog_path.c:167 -#: plugins/sudoers/ldap.c:446 plugins/sudoers/ldap.c:477 -#: plugins/sudoers/ldap.c:529 plugins/sudoers/ldap.c:562 -#: plugins/sudoers/ldap.c:914 plugins/sudoers/ldap.c:1060 -#: plugins/sudoers/ldap.c:1339 plugins/sudoers/ldap.c:1512 -#: plugins/sudoers/ldap.c:1588 plugins/sudoers/ldap.c:1724 -#: plugins/sudoers/ldap.c:1748 plugins/sudoers/ldap.c:1778 -#: plugins/sudoers/ldap.c:1831 plugins/sudoers/ldap.c:1846 -#: plugins/sudoers/ldap.c:1942 plugins/sudoers/ldap.c:1975 -#: plugins/sudoers/ldap.c:2128 plugins/sudoers/ldap.c:2225 -#: plugins/sudoers/ldap.c:3028 plugins/sudoers/ldap.c:3061 -#: plugins/sudoers/ldap.c:3375 plugins/sudoers/ldap.c:3403 -#: plugins/sudoers/ldap.c:3414 plugins/sudoers/ldap.c:3504 -#: plugins/sudoers/ldap.c:3520 plugins/sudoers/linux_audit.c:76 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:916 -#: plugins/sudoers/match.c:501 plugins/sudoers/match.c:537 -#: plugins/sudoers/match.c:695 plugins/sudoers/match.c:752 -#: plugins/sudoers/parse.c:235 plugins/sudoers/parse.c:247 -#: plugins/sudoers/parse.c:262 plugins/sudoers/parse.c:274 -#: plugins/sudoers/policy.c:97 plugins/sudoers/policy.c:106 -#: plugins/sudoers/policy.c:115 plugins/sudoers/policy.c:139 -#: plugins/sudoers/policy.c:250 plugins/sudoers/policy.c:271 -#: plugins/sudoers/policy.c:280 plugins/sudoers/policy.c:319 -#: plugins/sudoers/policy.c:329 plugins/sudoers/policy.c:338 -#: plugins/sudoers/policy.c:384 plugins/sudoers/policy.c:575 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/set_perms.c:356 -#: plugins/sudoers/set_perms.c:695 plugins/sudoers/set_perms.c:1054 -#: plugins/sudoers/set_perms.c:1350 plugins/sudoers/set_perms.c:1514 -#: plugins/sudoers/sssd.c:160 plugins/sudoers/sssd.c:192 -#: plugins/sudoers/sssd.c:198 plugins/sudoers/sssd.c:236 -#: plugins/sudoers/sssd.c:243 plugins/sudoers/sssd.c:279 -#: plugins/sudoers/sssd.c:324 plugins/sudoers/sssd.c:916 -#: plugins/sudoers/sssd.c:1049 plugins/sudoers/sudoers.c:159 -#: plugins/sudoers/sudoers.c:294 plugins/sudoers/sudoers.c:304 -#: plugins/sudoers/sudoers.c:312 plugins/sudoers/sudoers.c:365 -#: plugins/sudoers/sudoers.c:663 plugins/sudoers/sudoers.c:749 -#: plugins/sudoers/sudoers.c:793 plugins/sudoers/sudoers_debug.c:106 -#: plugins/sudoers/sudoreplay.c:471 plugins/sudoers/sudoreplay.c:667 -#: plugins/sudoers/sudoreplay.c:779 plugins/sudoers/sudoreplay.c:819 -#: plugins/sudoers/sudoreplay.c:828 plugins/sudoers/sudoreplay.c:838 -#: plugins/sudoers/sudoreplay.c:846 plugins/sudoers/sudoreplay.c:850 -#: plugins/sudoers/sudoreplay.c:1006 plugins/sudoers/sudoreplay.c:1010 -#: plugins/sudoers/testsudoers.c:130 plugins/sudoers/testsudoers.c:187 -#: plugins/sudoers/testsudoers.c:214 plugins/sudoers/testsudoers.c:231 -#: plugins/sudoers/visudo.c:155 plugins/sudoers/visudo.c:215 -#: plugins/sudoers/visudo.c:299 plugins/sudoers/visudo.c:305 -#: plugins/sudoers/visudo.c:435 plugins/sudoers/visudo.c:971 -#: plugins/sudoers/visudo.c:1015 plugins/sudoers/visudo.c:1111 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 +#: plugins/sudoers/iolog.c:1026 #, c-format -msgid "%s: %s" -msgstr "%s: %s" +msgid "unexpected I/O event %d" +msgstr "" -#: plugins/sudoers/alias.c:132 +#: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 +#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 #, c-format -msgid "Alias `%s' already defined" -msgstr "Псевдоним «%s» уже определён" +msgid "%s: unexpected state %d" +msgstr "" + +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#, c-format +msgid "error message received from server: %s" +msgstr "" + +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#, c-format +msgid "abort message received from server: %s" +msgstr "" + +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#, c-format +msgid "%s: unexpected type_case value %d" +msgstr "" + +#: logsrvd/sendlog.c:1261 +msgid "timeout reading from server" +msgstr "" + +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +msgid "host name does not match certificate" +msgstr "" + +#: logsrvd/sendlog.c:1343 +msgid "premature EOF" +msgstr "" + +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#, c-format +msgid "server message too large: %u" +msgstr "" + +#: logsrvd/sendlog.c:1412 +msgid "timeout writing to server" +msgstr "" + +#: logsrvd/sendlog.c:1779 +msgid "both restart point and iolog ID must be specified" +msgstr "" + +#: logsrvd/sendlog.c:1783 +msgid "a restart point may not be set when no I/O is sent" +msgstr "" + +#: logsrvd/sendlog.c:1859 +#, c-format +msgid "exited prematurely with state %d" +msgstr "" + +#: logsrvd/sendlog.c:1860 +#, c-format +msgid "elapsed time sent to server [%lld, %ld]" +msgstr "" + +#: logsrvd/sendlog.c:1862 +#, c-format +msgid "commit point received from server [%lld, %ld]" +msgstr "" + +#: logsrvd/tls_client.c:111 plugins/sudoers/log_client.c:315 +msgid "TLS handshake timeout occurred" +msgstr "" + +#: logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 +#: plugins/sudoers/log_client.c:337 plugins/sudoers/log_client.c:353 +#, fuzzy +#| msgid "unable to rebuild the environment" +msgid "unable to set event" +msgstr "не удаётся перестроить среду" + +#: logsrvd/tls_client.c:157 logsrvd/tls_client.c:161 +#, fuzzy, c-format +#| msgid "SecurID communication failed" +msgid "TLS connection failed: %s" +msgstr "ошибка связи с SecurID" + +#: logsrvd/tls_client.c:196 +#, fuzzy, c-format +#| msgid "%s: unable to allocate options: %s" +msgid "unable to allocate ssl object: %s" +msgstr "%s: не удаётся выделить параметры: %s" + +#: logsrvd/tls_client.c:210 +#, c-format +msgid "Unable to attach socket to the ssl object: %s" +msgstr "" + +#: logsrvd/tls_client.c:238 +#, fuzzy +#| msgid "unable to initialize SIA session" +msgid "unable to initialize TLS context" +msgstr "не удаётся инициализировать сеанс SIA" + +#: logsrvd/tls_init.c:138 logsrvd/tls_init.c:146 +#, c-format +msgid "unable to set TLS 1.2 ciphersuite to %s: %s" +msgstr "" + +#: logsrvd/tls_init.c:166 logsrvd/tls_init.c:174 +#, c-format +msgid "unable to set TLS 1.3 ciphersuite to %s: %s" +msgstr "" + +#: logsrvd/tls_init.c:206 logsrvd/tls_init.c:227 +#, c-format +msgid "unable to set diffie-hellman parameters: %s" +msgstr "" + +#: logsrvd/tls_init.c:283 +#, fuzzy, c-format +#| msgid "unable to read the clock" +msgid "unable to create TLS context: %s" +msgstr "не удаётся прочитать часы" + +#: logsrvd/tls_init.c:290 +#, c-format +msgid "unable to set minimum protocol version to TLS 1.2: %s" +msgstr "" + +#: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 +#: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 +#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 +#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 +#: plugins/sudoers/policy.c:124 +#, fuzzy +#| msgid "unable to read the clock" +msgid "unable to get time of day" +msgstr "не удаётся прочитать часы" + +#: plugins/sudoers/auth/aix_auth.c:280 +#, fuzzy, c-format +#| msgid "unable to change expired password: %s" +msgid "unable to change password for %s" +msgstr "не удаётся сменить устаревший пароль: %s" -#: plugins/sudoers/auth/bsdauth.c:68 +#: plugins/sudoers/auth/bsdauth.c:74 #, c-format msgid "unable to get login class for user %s" msgstr "не удаётся получить класс логина для пользователя %s" -#: plugins/sudoers/auth/bsdauth.c:73 +#: plugins/sudoers/auth/bsdauth.c:79 msgid "unable to begin bsd authentication" msgstr "не удаётся начать BSD-аутентификацию" -#: plugins/sudoers/auth/bsdauth.c:81 +#: plugins/sudoers/auth/bsdauth.c:87 msgid "invalid authentication type" msgstr "некорректный тип аутентификации" -#: plugins/sudoers/auth/bsdauth.c:90 +#: plugins/sudoers/auth/bsdauth.c:96 msgid "unable to initialize BSD authentication" msgstr "не удаётся запустить BSD-аутентификацию" -#: plugins/sudoers/auth/fwtk.c:52 +#: plugins/sudoers/auth/bsdauth.c:186 +msgid "your account has expired" +msgstr "" + +#: plugins/sudoers/auth/bsdauth.c:188 +msgid "approval failed" +msgstr "" + +#: plugins/sudoers/auth/fwtk.c:61 msgid "unable to read fwtk config" msgstr "не удаётся прочитать конфигурацию ftwk" -#: plugins/sudoers/auth/fwtk.c:57 +#: plugins/sudoers/auth/fwtk.c:66 msgid "unable to connect to authentication server" msgstr "не удаётся связаться с сервером аутентификации" -#: plugins/sudoers/auth/fwtk.c:63 plugins/sudoers/auth/fwtk.c:87 -#: plugins/sudoers/auth/fwtk.c:120 +#: plugins/sudoers/auth/fwtk.c:72 plugins/sudoers/auth/fwtk.c:97 +#: plugins/sudoers/auth/fwtk.c:129 msgid "lost connection to authentication server" msgstr "потеряно соединение с сервером аутентификации" -#: plugins/sudoers/auth/fwtk.c:67 +#: plugins/sudoers/auth/fwtk.c:76 #, c-format msgid "" "authentication server error:\n" @@ -210,155 +1549,173 @@ msgstr "" "ошибка сервера аутентификации:\n" "%s" -#: plugins/sudoers/auth/kerb5.c:111 +#: plugins/sudoers/auth/kerb5.c:115 #, c-format msgid "%s: unable to convert principal to string ('%s'): %s" msgstr "%s: не удаётся преобразовать принципал в строку ('%s'): %s" -#: plugins/sudoers/auth/kerb5.c:161 +#: plugins/sudoers/auth/kerb5.c:164 #, c-format msgid "%s: unable to parse '%s': %s" msgstr "%s: не удаётся прочитать '%s': %s" -#: plugins/sudoers/auth/kerb5.c:170 +#: plugins/sudoers/auth/kerb5.c:173 #, c-format msgid "%s: unable to resolve credential cache: %s" msgstr "%s: не удаётся разрешить кэш учётных данных: %s" -#: plugins/sudoers/auth/kerb5.c:217 +#: plugins/sudoers/auth/kerb5.c:222 #, c-format msgid "%s: unable to allocate options: %s" msgstr "%s: не удаётся выделить параметры: %s" -#: plugins/sudoers/auth/kerb5.c:232 +#: plugins/sudoers/auth/kerb5.c:237 #, c-format msgid "%s: unable to get credentials: %s" msgstr "%s: не удаётся получить учётные данные: %s" -#: plugins/sudoers/auth/kerb5.c:245 +#: plugins/sudoers/auth/kerb5.c:250 #, c-format msgid "%s: unable to initialize credential cache: %s" msgstr "%s: не удаётся инициализировать кэш учётных данных: %s" -#: plugins/sudoers/auth/kerb5.c:248 +#: plugins/sudoers/auth/kerb5.c:253 #, c-format msgid "%s: unable to store credential in cache: %s" msgstr "%s: не удаётся сохранить учётные данные в кэше: %s" -#: plugins/sudoers/auth/kerb5.c:312 +#: plugins/sudoers/auth/kerb5.c:317 #, c-format msgid "%s: unable to get host principal: %s" msgstr "%s: не удаётся получить принципал хоста: %s" -#: plugins/sudoers/auth/kerb5.c:326 +#: plugins/sudoers/auth/kerb5.c:331 #, c-format msgid "%s: Cannot verify TGT! Possible attack!: %s" msgstr "%s: Не удаётся проверить TGT. Нас атакуют?!: %s" -#: plugins/sudoers/auth/pam.c:90 -msgid "unable to initialize PAM" +#: plugins/sudoers/auth/pam.c:224 +#, fuzzy, c-format +#| msgid "unable to initialize PAM" +msgid "unable to initialize PAM: %s" msgstr "не удаётся инициализировать PAM" -#: plugins/sudoers/auth/pam.c:146 +#: plugins/sudoers/auth/pam.c:337 +#, c-format +msgid "PAM authentication error: %s" +msgstr "Ошибка PAM-аутентификации: %s" + +#: plugins/sudoers/auth/pam.c:356 msgid "account validation failure, is your account locked?" msgstr "ошибка проверки учётной записи. Она заблокирована?" -#: plugins/sudoers/auth/pam.c:150 +#: plugins/sudoers/auth/pam.c:367 msgid "Account or password is expired, reset your password and try again" msgstr "Учётные данные устарели. Сбросьте пароль и попробуйте ещё раз" -#: plugins/sudoers/auth/pam.c:158 +#: plugins/sudoers/auth/pam.c:373 #, c-format msgid "unable to change expired password: %s" msgstr "не удаётся сменить устаревший пароль: %s" -#: plugins/sudoers/auth/pam.c:163 +#: plugins/sudoers/auth/pam.c:384 msgid "Password expired, contact your system administrator" msgstr "Пароль устарел. Обратитесь к системному администратору" -#: plugins/sudoers/auth/pam.c:167 +#: plugins/sudoers/auth/pam.c:389 msgid "Account expired or PAM config lacks an \"account\" section for sudo, contact your system administrator" msgstr "Срок действия учётной записи истёк или в настройках PAM нет раздела «account» для sudo. Обратитесь к системному администратору" -#: plugins/sudoers/auth/pam.c:179 -#, c-format -msgid "PAM authentication error: %s" +#: plugins/sudoers/auth/pam.c:397 plugins/sudoers/auth/pam.c:402 +#, fuzzy, c-format +#| msgid "PAM authentication error: %s" +msgid "PAM account management error: %s" msgstr "Ошибка PAM-аутентификации: %s" -#: plugins/sudoers/auth/rfc1938.c:97 plugins/sudoers/visudo.c:220 +#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:271 #, c-format msgid "you do not exist in the %s database" -msgstr "Вы не существуете в базе данных %s" +msgstr "вы не существуете в базе данных %s" -#: plugins/sudoers/auth/securid5.c:73 +#: plugins/sudoers/auth/securid5.c:75 msgid "failed to initialise the ACE API library" msgstr "не удалось инициализировать библиотеку API для ACE" -#: plugins/sudoers/auth/securid5.c:99 +#: plugins/sudoers/auth/securid5.c:106 msgid "unable to contact the SecurID server" msgstr "не удалось связаться с сервером SecurID" -#: plugins/sudoers/auth/securid5.c:108 +#: plugins/sudoers/auth/securid5.c:115 msgid "User ID locked for SecurID Authentication" msgstr "ID пользователя заблокирован для аутентификации SecurID" -#: plugins/sudoers/auth/securid5.c:112 plugins/sudoers/auth/securid5.c:163 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 msgid "invalid username length for SecurID" msgstr "недопустимая длина имени пользователя для SecurID" -#: plugins/sudoers/auth/securid5.c:116 plugins/sudoers/auth/securid5.c:168 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 msgid "invalid Authentication Handle for SecurID" msgstr "недопустимый обработчик аутентификации для SecurID" -#: plugins/sudoers/auth/securid5.c:120 +#: plugins/sudoers/auth/securid5.c:127 msgid "SecurID communication failed" -msgstr "ошибка связи с SecurID" +msgstr "Ошибка связи с SecurID" -#: plugins/sudoers/auth/securid5.c:124 plugins/sudoers/auth/securid5.c:207 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 msgid "unknown SecurID error" msgstr "неизвестная ошибка SecurID" -#: plugins/sudoers/auth/securid5.c:158 +#: plugins/sudoers/auth/securid5.c:165 msgid "invalid passcode length for SecurID" msgstr "недопустимая длина пароля для SecurID" -#: plugins/sudoers/auth/sia.c:120 +#: plugins/sudoers/auth/sia.c:69 plugins/sudoers/auth/sia.c:126 msgid "unable to initialize SIA session" msgstr "не удаётся инициализировать сеанс SIA" -#: plugins/sudoers/auth/sudo_auth.c:126 +#: plugins/sudoers/auth/sudo_auth.c:135 msgid "invalid authentication methods" msgstr "недопустимые методы аутентификации" -#: plugins/sudoers/auth/sudo_auth.c:128 +#: plugins/sudoers/auth/sudo_auth.c:137 msgid "Invalid authentication methods compiled into sudo! You may not mix standalone and non-standalone authentication." -msgstr "sudo скомпилирован с неверными методами аутентификации! Нельзя смешивать зависимую и независимую аутентификацию." +msgstr "Приложение sudo скомпилировано с неверными методами аутентификации. Нельзя смешивать зависимую и независимую аутентификацию." -#: plugins/sudoers/auth/sudo_auth.c:224 plugins/sudoers/auth/sudo_auth.c:273 +#: plugins/sudoers/auth/sudo_auth.c:258 plugins/sudoers/auth/sudo_auth.c:310 msgid "no authentication methods" msgstr "методы аутентификации отсутствуют" -#: plugins/sudoers/auth/sudo_auth.c:226 +#: plugins/sudoers/auth/sudo_auth.c:260 msgid "There are no authentication methods compiled into sudo! If you want to turn off authentication, use the --disable-authentication configure option." -msgstr "sudo скомпилирован без методов аутентификации! Если нужно отключить аутентификацию, используйте параметр --disable-authentication." +msgstr "Приложение sudo скомпилировано без методов аутентификации! Чтобы отключить аутентификацию, используйте параметр --disable-authentication." -#: plugins/sudoers/auth/sudo_auth.c:275 +#: plugins/sudoers/auth/sudo_auth.c:312 msgid "Unable to initialize authentication methods." msgstr "Не удаётся инициализировать методы аутентификации." -#: plugins/sudoers/auth/sudo_auth.c:433 +#: plugins/sudoers/auth/sudo_auth.c:486 msgid "Authentication methods:" msgstr "Методы аутентификации:" -#: plugins/sudoers/bsm_audit.c:111 plugins/sudoers/bsm_audit.c:200 +#: plugins/sudoers/bsm_audit.c:123 plugins/sudoers/bsm_audit.c:214 msgid "Could not determine audit condition" msgstr "Не удалось определить состояние аудита" -#: plugins/sudoers/bsm_audit.c:172 plugins/sudoers/bsm_audit.c:260 +#: plugins/sudoers/bsm_audit.c:188 plugins/sudoers/bsm_audit.c:277 msgid "unable to commit audit record" msgstr "не удаётся отправить запись аудита" -#: plugins/sudoers/check.c:200 +#: plugins/sudoers/check.c:285 +#, c-format +msgid "error reading lecture file %s" +msgstr "" + +#: plugins/sudoers/check.c:288 +#, c-format +msgid "ignoring lecture file %s: not a regular file" +msgstr "" + +#: plugins/sudoers/check.c:301 msgid "" "\n" "We trust you have received the usual lecture from the local System\n" @@ -369,730 +1726,1279 @@ msgid "" " #3) With great power comes great responsibility.\n" "\n" msgstr "" -"\n" -"Мы полагаем, что ваш системный администратор изложил вам основы\n" -"безопасности. Как правило, всё сводится к трём следующим правилам:\n" -"\n" -" №1) Уважайте частную жизнь других.\n" -" №2) Думайте, прежде что-то вводить.\n" -" №3) С большой властью приходит большая ответственность.\n" -"\n" +"\n" +"Мы полагаем, что ваш системный администратор изложил вам основы\n" +"безопасности. Как правило, всё сводится к трём следующим правилам:\n" +"\n" +" №1) Уважайте частную жизнь других.\n" +" №2) Думайте, прежде чем что-то вводить.\n" +" №3) С большой властью приходит большая ответственность.\n" +"\n" + +#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 +#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 +#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#, c-format +msgid "unknown uid %u" +msgstr "неизвестный uid %u" + +#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1279 +#, c-format +msgid "%s: %s\n" +msgstr "%s: %s\n" + +#: plugins/sudoers/check_aliases.c:133 +#, c-format +msgid "cycle in %s \"%s\"" +msgstr "" + +#: plugins/sudoers/check_aliases.c:136 +#, c-format +msgid "%s \"%s\" referenced but not defined" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:209 +#, c-format +msgid "order increment: %s: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:228 +#, c-format +msgid "starting order: %s: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:238 +#, c-format +msgid "order padding: %s: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:184 +#, c-format +msgid "%s grammar version %d\n" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:277 plugins/sudoers/testsudoers.c:159 +#, c-format +msgid "unsupported input format %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:295 +#, c-format +msgid "unsupported output format %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:385 +#, c-format +msgid "%s: input and output files must be different" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 +#: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 +#: plugins/sudoers/visudo.c:975 +msgid "unable to initialize sudoers default values" +msgstr "не удаётся инициализировать значения по умолчанию для sudoers" + +#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:434 +#, c-format +msgid "%s: %s: %s: %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:584 +#, fuzzy, c-format +#| msgid "unknown user: %s" +msgid "%s: unknown key word %s" +msgstr "неизвестный пользователь: %s" + +#: plugins/sudoers/cvtsudoers.c:630 +#, fuzzy, c-format +#| msgid "invalid sudoOrder attribute: %s" +msgid "invalid defaults type: %s" +msgstr "недопустимый атрибут sudoOrder: %s" + +#: plugins/sudoers/cvtsudoers.c:653 +#, fuzzy, c-format +#| msgid "invalid authentication type" +msgid "invalid suppression type: %s" +msgstr "некорректный тип аутентификации" + +#: plugins/sudoers/cvtsudoers.c:694 plugins/sudoers/cvtsudoers.c:710 +#, fuzzy, c-format +#| msgid "invalid sudoOrder attribute: %s" +msgid "invalid filter: %s" +msgstr "недопустимый атрибут sudoOrder: %s" + +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#, c-format +msgid "failed to parse %s file, unknown error" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 +#, c-format +msgid "unable to write to %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:1506 +#, c-format +msgid "" +"%s - convert between sudoers file formats\n" +"\n" +msgstr "" + +#: plugins/sudoers/cvtsudoers.c:1508 +msgid "" +"\n" +"Options:\n" +" -b, --base=dn the base DN for sudo LDAP queries\n" +" -c, --config=conf_file the path to the configuration file\n" +" -d, --defaults=deftypes only convert Defaults of the specified types\n" +" -e, --expand-aliases expand aliases when converting\n" +" -f, --output-format=format set output format: JSON, LDIF or sudoers\n" +" -i, --input-format=format set input format: LDIF or sudoers\n" +" -I, --increment=num amount to increase each sudoOrder by\n" +" -h, --help display help message and exit\n" +" -m, --match=filter only convert entries that match the filter\n" +" -M, --match-local match filter uses passwd and group databases\n" +" -o, --output=output_file write converted sudoers to output_file\n" +" -O, --order-start=num starting point for first sudoOrder\n" +" -p, --prune-matches prune non-matching users, groups and hosts\n" +" -P, --padding=num base padding for sudoOrder increment\n" +" -s, --suppress=sections suppress output of certain sections\n" +" -V, --version display version information and exit" +msgstr "" + +#: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 +#: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 +#: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 +#: plugins/sudoers/ldap.c:510 +msgid "unable to get GMT time" +msgstr "" + +#: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 +#: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 +#: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 +#: plugins/sudoers/ldap.c:518 +msgid "unable to format timestamp" +msgstr "" + +#: plugins/sudoers/cvtsudoers_json.c:480 plugins/sudoers/cvtsudoers_json.c:515 +#: plugins/sudoers/cvtsudoers_json.c:728 +#, c-format +msgid "%s:%d:%d: unknown defaults entry \"%s\"" +msgstr "" + +#: plugins/sudoers/cvtsudoers_ldif.c:661 +#, c-format +msgid "too many sudoers entries, maximum %u" +msgstr "" + +#: plugins/sudoers/cvtsudoers_ldif.c:704 +msgid "the SUDOERS_BASE environment variable is not set and the -b option was not specified." +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:273 +#: plugins/sudoers/cvtsudoers_merge.c:309 +#, c-format +msgid "%s:%d:%d: converting host list to ALL" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:545 +#, fuzzy, c-format +#| msgid "unable to initialize LDAP: %s" +msgid "unable to find alias %s" +msgstr "не удаётся инициализировать LDAP: %s" + +#: plugins/sudoers/cvtsudoers_merge.c:548 +#, c-format +msgid "%s:%d:%d: renaming alias %s to %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:605 +#, c-format +msgid "%s:%d:%d: removing duplicate alias %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:830 +#, c-format +msgid "%s:%d:%d: conflicting Defaults entry \"%s\" host-specific in %s:%d:%d" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:864 +#, c-format +msgid "%s:%d:%d: made Defaults \"%s\" specific to host %s" +msgstr "" + +#: plugins/sudoers/cvtsudoers_merge.c:882 +#, c-format +msgid "%s:%d:%d: unable to make Defaults \"%s\" host-specific" +msgstr "" -#: plugins/sudoers/check.c:243 plugins/sudoers/check.c:253 -#: plugins/sudoers/sudoers.c:699 plugins/sudoers/sudoers.c:728 +#: plugins/sudoers/cvtsudoers_merge.c:892 #, c-format -msgid "unknown uid: %u" -msgstr "неизвестный uid: %u" +msgid "%s:%d:%d: removing Defaults \"%s\" overridden by subsequent entries" +msgstr "" -#: plugins/sudoers/check.c:248 plugins/sudoers/policy.c:747 -#: plugins/sudoers/sudoers.c:1095 plugins/sudoers/testsudoers.c:205 -#: plugins/sudoers/testsudoers.c:360 +#: plugins/sudoers/cvtsudoers_merge.c:1088 #, c-format -msgid "unknown user: %s" -msgstr "неизвестный пользователь: %s" +msgid "%s:%d:%d: merging userspec into %s:%d:%d" +msgstr "" -#: plugins/sudoers/def_data.c:27 +#: plugins/sudoers/cvtsudoers_merge.c:1182 +#, c-format +msgid "%s:%d:%d: removing userspec overridden by subsequent entries" +msgstr "" + +#: plugins/sudoers/def_data.c:56 #, c-format msgid "Syslog facility if syslog is being used for logging: %s" msgstr "" -#: plugins/sudoers/def_data.c:31 +#: plugins/sudoers/def_data.c:60 #, c-format msgid "Syslog priority to use when user authenticates successfully: %s" msgstr "" -#: plugins/sudoers/def_data.c:35 +#: plugins/sudoers/def_data.c:64 #, c-format msgid "Syslog priority to use when user authenticates unsuccessfully: %s" msgstr "" -#: plugins/sudoers/def_data.c:39 +#: plugins/sudoers/def_data.c:68 msgid "Put OTP prompt on its own line" msgstr "" -#: plugins/sudoers/def_data.c:43 +#: plugins/sudoers/def_data.c:72 msgid "Ignore '.' in $PATH" msgstr "Игнорировать '.' в переменной $PATH" -#: plugins/sudoers/def_data.c:47 +#: plugins/sudoers/def_data.c:76 msgid "Always send mail when sudo is run" msgstr "Отправлять письмо при каждом запуске sudo" -#: plugins/sudoers/def_data.c:51 +#: plugins/sudoers/def_data.c:80 msgid "Send mail if user authentication fails" msgstr "Отправлять письмо при ошибке аутентификации" -#: plugins/sudoers/def_data.c:55 +#: plugins/sudoers/def_data.c:84 msgid "Send mail if the user is not in sudoers" msgstr "Отправлять письмо, если пользователя нет в группе sudoers" -#: plugins/sudoers/def_data.c:59 +#: plugins/sudoers/def_data.c:88 msgid "Send mail if the user is not in sudoers for this host" msgstr "Отправлять письмо, если пользователя нет в группе sudoers для данного компьютера" -#: plugins/sudoers/def_data.c:63 +#: plugins/sudoers/def_data.c:92 msgid "Send mail if the user is not allowed to run a command" msgstr "Отправлять письмо, если пользователю не разрешено выполнять команду" -#: plugins/sudoers/def_data.c:67 +#: plugins/sudoers/def_data.c:96 msgid "Send mail if the user tries to run a command" msgstr "Отправлять письмо, если пользователь пытается выполнить команду" -#: plugins/sudoers/def_data.c:71 +#: plugins/sudoers/def_data.c:100 msgid "Use a separate timestamp for each user/tty combo" msgstr "" -#: plugins/sudoers/def_data.c:75 +#: plugins/sudoers/def_data.c:104 msgid "Lecture user the first time they run sudo" msgstr "" -#: plugins/sudoers/def_data.c:79 +#: plugins/sudoers/def_data.c:108 #, c-format msgid "File containing the sudo lecture: %s" msgstr "" -#: plugins/sudoers/def_data.c:83 +#: plugins/sudoers/def_data.c:112 msgid "Require users to authenticate by default" msgstr "" -#: plugins/sudoers/def_data.c:87 +#: plugins/sudoers/def_data.c:116 msgid "Root may run sudo" msgstr "" -#: plugins/sudoers/def_data.c:91 +#: plugins/sudoers/def_data.c:120 msgid "Log the hostname in the (non-syslog) log file" msgstr "" -#: plugins/sudoers/def_data.c:95 +#: plugins/sudoers/def_data.c:124 msgid "Log the year in the (non-syslog) log file" msgstr "" -#: plugins/sudoers/def_data.c:99 +#: plugins/sudoers/def_data.c:128 msgid "If sudo is invoked with no arguments, start a shell" msgstr "" -#: plugins/sudoers/def_data.c:103 +#: plugins/sudoers/def_data.c:132 msgid "Set $HOME to the target user when starting a shell with -s" msgstr "" -#: plugins/sudoers/def_data.c:107 +#: plugins/sudoers/def_data.c:136 msgid "Always set $HOME to the target user's home directory" msgstr "" -#: plugins/sudoers/def_data.c:111 +#: plugins/sudoers/def_data.c:140 msgid "Allow some information gathering to give useful error messages" msgstr "" -#: plugins/sudoers/def_data.c:115 +#: plugins/sudoers/def_data.c:144 msgid "Require fully-qualified hostnames in the sudoers file" msgstr "" -#: plugins/sudoers/def_data.c:119 +#: plugins/sudoers/def_data.c:148 msgid "Insult the user when they enter an incorrect password" msgstr "" -#: plugins/sudoers/def_data.c:123 +#: plugins/sudoers/def_data.c:152 msgid "Only allow the user to run sudo if they have a tty" msgstr "" -#: plugins/sudoers/def_data.c:127 +#: plugins/sudoers/def_data.c:156 msgid "Visudo will honor the EDITOR environment variable" msgstr "" -#: plugins/sudoers/def_data.c:131 +#: plugins/sudoers/def_data.c:160 msgid "Prompt for root's password, not the users's" msgstr "" -#: plugins/sudoers/def_data.c:135 +#: plugins/sudoers/def_data.c:164 msgid "Prompt for the runas_default user's password, not the users's" msgstr "" -#: plugins/sudoers/def_data.c:139 +#: plugins/sudoers/def_data.c:168 msgid "Prompt for the target user's password, not the users's" msgstr "" -#: plugins/sudoers/def_data.c:143 +#: plugins/sudoers/def_data.c:172 msgid "Apply defaults in the target user's login class if there is one" msgstr "" -#: plugins/sudoers/def_data.c:147 +#: plugins/sudoers/def_data.c:176 msgid "Set the LOGNAME and USER environment variables" msgstr "" -#: plugins/sudoers/def_data.c:151 +#: plugins/sudoers/def_data.c:180 msgid "Only set the effective uid to the target user, not the real uid" msgstr "" -#: plugins/sudoers/def_data.c:155 +#: plugins/sudoers/def_data.c:184 msgid "Don't initialize the group vector to that of the target user" msgstr "" -#: plugins/sudoers/def_data.c:159 +#: plugins/sudoers/def_data.c:188 #, c-format msgid "Length at which to wrap log file lines (0 for no wrap): %u" msgstr "" -#: plugins/sudoers/def_data.c:163 +#: plugins/sudoers/def_data.c:192 #, c-format msgid "Authentication timestamp timeout: %.1f minutes" msgstr "" -#: plugins/sudoers/def_data.c:167 +#: plugins/sudoers/def_data.c:196 #, c-format msgid "Password prompt timeout: %.1f minutes" msgstr "" -#: plugins/sudoers/def_data.c:171 +#: plugins/sudoers/def_data.c:200 #, c-format msgid "Number of tries to enter a password: %u" msgstr "" -#: plugins/sudoers/def_data.c:175 +#: plugins/sudoers/def_data.c:204 #, c-format msgid "Umask to use or 0777 to use user's: 0%o" msgstr "" -#: plugins/sudoers/def_data.c:179 +#: plugins/sudoers/def_data.c:208 #, c-format msgid "Path to log file: %s" msgstr "" -#: plugins/sudoers/def_data.c:183 +#: plugins/sudoers/def_data.c:212 #, c-format msgid "Path to mail program: %s" msgstr "" -#: plugins/sudoers/def_data.c:187 +#: plugins/sudoers/def_data.c:216 #, c-format msgid "Flags for mail program: %s" msgstr "" -#: plugins/sudoers/def_data.c:191 +#: plugins/sudoers/def_data.c:220 #, c-format msgid "Address to send mail to: %s" msgstr "" -#: plugins/sudoers/def_data.c:195 +#: plugins/sudoers/def_data.c:224 #, c-format msgid "Address to send mail from: %s" msgstr "" -#: plugins/sudoers/def_data.c:199 +#: plugins/sudoers/def_data.c:228 #, c-format msgid "Subject line for mail messages: %s" msgstr "" -#: plugins/sudoers/def_data.c:203 +#: plugins/sudoers/def_data.c:232 #, c-format msgid "Incorrect password message: %s" msgstr "" -#: plugins/sudoers/def_data.c:207 +#: plugins/sudoers/def_data.c:236 #, c-format msgid "Path to lecture status dir: %s" msgstr "" -#: plugins/sudoers/def_data.c:211 +#: plugins/sudoers/def_data.c:240 #, c-format msgid "Path to authentication timestamp dir: %s" msgstr "" -#: plugins/sudoers/def_data.c:215 +#: plugins/sudoers/def_data.c:244 #, c-format msgid "Owner of the authentication timestamp dir: %s" msgstr "" -#: plugins/sudoers/def_data.c:219 +#: plugins/sudoers/def_data.c:248 #, c-format msgid "Users in this group are exempt from password and PATH requirements: %s" msgstr "" -#: plugins/sudoers/def_data.c:223 +#: plugins/sudoers/def_data.c:252 #, c-format msgid "Default password prompt: %s" msgstr "" -#: plugins/sudoers/def_data.c:227 +#: plugins/sudoers/def_data.c:256 msgid "If set, passprompt will override system prompt in all cases." msgstr "" -#: plugins/sudoers/def_data.c:231 +#: plugins/sudoers/def_data.c:260 #, c-format msgid "Default user to run commands as: %s" msgstr "" -#: plugins/sudoers/def_data.c:235 +#: plugins/sudoers/def_data.c:264 #, c-format msgid "Value to override user's $PATH with: %s" msgstr "" -#: plugins/sudoers/def_data.c:239 +#: plugins/sudoers/def_data.c:268 #, c-format msgid "Path to the editor for use by visudo: %s" msgstr "" -#: plugins/sudoers/def_data.c:243 +#: plugins/sudoers/def_data.c:272 #, c-format msgid "When to require a password for 'list' pseudocommand: %s" msgstr "" -#: plugins/sudoers/def_data.c:247 +#: plugins/sudoers/def_data.c:276 #, c-format msgid "When to require a password for 'verify' pseudocommand: %s" msgstr "" -#: plugins/sudoers/def_data.c:251 -msgid "Preload the dummy exec functions contained in the sudo_noexec library" +#: plugins/sudoers/def_data.c:280 +msgid "Preload the sudo_noexec library which replaces the exec functions" msgstr "" -#: plugins/sudoers/def_data.c:255 +#: plugins/sudoers/def_data.c:284 msgid "If LDAP directory is up, do we ignore local sudoers file" msgstr "" -#: plugins/sudoers/def_data.c:259 +#: plugins/sudoers/def_data.c:288 #, c-format msgid "File descriptors >= %d will be closed before executing a command" msgstr "" -#: plugins/sudoers/def_data.c:263 -msgid "If set, users may override the value of `closefrom' with the -C option" +#: plugins/sudoers/def_data.c:292 +msgid "If set, users may override the value of \"closefrom\" with the -C option" msgstr "" -#: plugins/sudoers/def_data.c:267 +#: plugins/sudoers/def_data.c:296 msgid "Allow users to set arbitrary environment variables" msgstr "" -#: plugins/sudoers/def_data.c:271 +#: plugins/sudoers/def_data.c:300 msgid "Reset the environment to a default set of variables" msgstr "" -#: plugins/sudoers/def_data.c:275 -msgid "Environment variables to check for sanity:" +#: plugins/sudoers/def_data.c:304 +msgid "Environment variables to check for safety:" msgstr "" -#: plugins/sudoers/def_data.c:279 +#: plugins/sudoers/def_data.c:308 msgid "Environment variables to remove:" msgstr "" -#: plugins/sudoers/def_data.c:283 +#: plugins/sudoers/def_data.c:312 msgid "Environment variables to preserve:" msgstr "" -#: plugins/sudoers/def_data.c:287 +#: plugins/sudoers/def_data.c:316 #, c-format msgid "SELinux role to use in the new security context: %s" msgstr "" -#: plugins/sudoers/def_data.c:291 +#: plugins/sudoers/def_data.c:320 #, c-format msgid "SELinux type to use in the new security context: %s" msgstr "" -#: plugins/sudoers/def_data.c:295 +#: plugins/sudoers/def_data.c:324 #, c-format msgid "Path to the sudo-specific environment file: %s" msgstr "" -#: plugins/sudoers/def_data.c:299 +#: plugins/sudoers/def_data.c:328 +#, c-format +msgid "Path to the restricted sudo-specific environment file: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:332 #, c-format msgid "Locale to use while parsing sudoers: %s" msgstr "" -#: plugins/sudoers/def_data.c:303 +#: plugins/sudoers/def_data.c:336 msgid "Allow sudo to prompt for a password even if it would be visible" msgstr "" -#: plugins/sudoers/def_data.c:307 +#: plugins/sudoers/def_data.c:340 msgid "Provide visual feedback at the password prompt when there is user input" msgstr "" -#: plugins/sudoers/def_data.c:311 +#: plugins/sudoers/def_data.c:344 msgid "Use faster globbing that is less accurate but does not access the filesystem" msgstr "" -#: plugins/sudoers/def_data.c:315 +#: plugins/sudoers/def_data.c:348 msgid "The umask specified in sudoers will override the user's, even if it is more permissive" msgstr "" -#: plugins/sudoers/def_data.c:319 +#: plugins/sudoers/def_data.c:352 msgid "Log user's input for the command being run" msgstr "" -#: plugins/sudoers/def_data.c:323 +#: plugins/sudoers/def_data.c:356 +msgid "Log the command's standard input if not connected to a terminal" +msgstr "" + +#: plugins/sudoers/def_data.c:360 +msgid "Log the user's terminal input for the command being run" +msgstr "" + +#: plugins/sudoers/def_data.c:364 msgid "Log the output of the command being run" msgstr "" -#: plugins/sudoers/def_data.c:327 +#: plugins/sudoers/def_data.c:368 +msgid "Log the command's standard output if not connected to a terminal" +msgstr "" + +#: plugins/sudoers/def_data.c:372 +msgid "Log the command's standard error if not connected to a terminal" +msgstr "" + +#: plugins/sudoers/def_data.c:376 +msgid "Log the terminal output of the command being run" +msgstr "" + +#: plugins/sudoers/def_data.c:380 msgid "Compress I/O logs using zlib" msgstr "" -#: plugins/sudoers/def_data.c:331 +#: plugins/sudoers/def_data.c:384 msgid "Always run commands in a pseudo-tty" msgstr "" -#: plugins/sudoers/def_data.c:335 +#: plugins/sudoers/def_data.c:388 #, c-format msgid "Plugin for non-Unix group support: %s" msgstr "" -#: plugins/sudoers/def_data.c:339 +#: plugins/sudoers/def_data.c:392 #, c-format msgid "Directory in which to store input/output logs: %s" msgstr "" -#: plugins/sudoers/def_data.c:343 +#: plugins/sudoers/def_data.c:396 #, c-format msgid "File in which to store the input/output log: %s" msgstr "" -#: plugins/sudoers/def_data.c:347 +#: plugins/sudoers/def_data.c:400 msgid "Add an entry to the utmp/utmpx file when allocating a pty" msgstr "" -#: plugins/sudoers/def_data.c:351 +#: plugins/sudoers/def_data.c:404 msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "" -#: plugins/sudoers/def_data.c:355 -msgid "Set of permitted privileges" +#: plugins/sudoers/def_data.c:408 +#, c-format +msgid "Set of permitted privileges: %s" msgstr "" -#: plugins/sudoers/def_data.c:359 -msgid "Set of limit privileges" +#: plugins/sudoers/def_data.c:412 +#, c-format +msgid "Set of limit privileges: %s" msgstr "" -#: plugins/sudoers/def_data.c:363 +#: plugins/sudoers/def_data.c:416 msgid "Run commands on a pty in the background" msgstr "" -#: plugins/sudoers/def_data.c:367 -msgid "PAM service name to use" +#: plugins/sudoers/def_data.c:420 +#, c-format +msgid "PAM service name to use: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:424 +#, c-format +msgid "PAM service name to use for login shells: %s" msgstr "" -#: plugins/sudoers/def_data.c:371 -msgid "PAM service name to use for login shells" +#: plugins/sudoers/def_data.c:428 +#, c-format +msgid "PAM service name to use when sudo is run with the -A option: %s" msgstr "" -#: plugins/sudoers/def_data.c:375 +#: plugins/sudoers/def_data.c:432 msgid "Attempt to establish PAM credentials for the target user" msgstr "" -#: plugins/sudoers/def_data.c:379 +#: plugins/sudoers/def_data.c:436 msgid "Create a new PAM session for the command to run in" msgstr "" -#: plugins/sudoers/def_data.c:383 +#: plugins/sudoers/def_data.c:440 +msgid "Perform PAM account validation management" +msgstr "" + +#: plugins/sudoers/def_data.c:444 #, c-format -msgid "Maximum I/O log sequence number: %u" +msgid "Maximum I/O log sequence number: %s" msgstr "" -#: plugins/sudoers/def_data.c:387 +#: plugins/sudoers/def_data.c:448 msgid "Enable sudoers netgroup support" msgstr "" -#: plugins/sudoers/defaults.c:199 plugins/sudoers/defaults.c:608 -#: plugins/sudoers/visudo_json.c:633 plugins/sudoers/visudo_json.c:668 +#: plugins/sudoers/def_data.c:452 +msgid "Check parent directories for writability when editing files with sudoedit" +msgstr "" + +#: plugins/sudoers/def_data.c:456 +msgid "Follow symbolic links when editing files with sudoedit" +msgstr "" + +#: plugins/sudoers/def_data.c:460 +msgid "Query the group plugin for unknown system groups" +msgstr "" + +#: plugins/sudoers/def_data.c:464 +msgid "Match netgroups based on the entire tuple: user, host and domain" +msgstr "" + +#: plugins/sudoers/def_data.c:468 +msgid "Allow commands to be run even if sudo cannot write to the audit log" +msgstr "" + +#: plugins/sudoers/def_data.c:472 +msgid "Allow commands to be run even if sudo cannot write to the I/O log" +msgstr "" + +#: plugins/sudoers/def_data.c:476 +msgid "Allow commands to be run even if sudo cannot write to the log file" +msgstr "" + +#: plugins/sudoers/def_data.c:480 +msgid "Resolve groups in sudoers and match on the group ID, not the name" +msgstr "" + +#: plugins/sudoers/def_data.c:484 #, c-format -msgid "unknown defaults entry `%s'" +msgid "Log entries larger than this value will be split into multiple syslog messages: %u" msgstr "" -#: plugins/sudoers/defaults.c:207 plugins/sudoers/defaults.c:217 -#: plugins/sudoers/defaults.c:241 plugins/sudoers/defaults.c:256 -#: plugins/sudoers/defaults.c:269 plugins/sudoers/defaults.c:282 -#: plugins/sudoers/defaults.c:295 plugins/sudoers/defaults.c:315 -#: plugins/sudoers/defaults.c:325 +#: plugins/sudoers/def_data.c:488 #, c-format -msgid "value `%s' is invalid for option `%s'" +msgid "User that will own the I/O log files: %s" msgstr "" -#: plugins/sudoers/defaults.c:210 plugins/sudoers/defaults.c:220 -#: plugins/sudoers/defaults.c:228 plugins/sudoers/defaults.c:251 -#: plugins/sudoers/defaults.c:264 plugins/sudoers/defaults.c:277 -#: plugins/sudoers/defaults.c:290 plugins/sudoers/defaults.c:310 -#: plugins/sudoers/defaults.c:321 +#: plugins/sudoers/def_data.c:492 #, c-format -msgid "no value specified for `%s'" +msgid "Group that will own the I/O log files: %s" msgstr "" -#: plugins/sudoers/defaults.c:233 +#: plugins/sudoers/def_data.c:496 #, c-format -msgid "values for `%s' must start with a '/'" +msgid "File mode to use for the I/O log files: 0%o" msgstr "" -#: plugins/sudoers/defaults.c:301 +#: plugins/sudoers/def_data.c:500 #, c-format -msgid "option `%s' does not take a value" +msgid "Execute commands by file descriptor instead of by path: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:504 +msgid "Ignore unknown Defaults entries in sudoers instead of producing a warning" msgstr "" -#: plugins/sudoers/env.c:295 plugins/sudoers/env.c:302 -#: plugins/sudoers/env.c:404 plugins/sudoers/ldap.c:450 -#: plugins/sudoers/ldap.c:540 plugins/sudoers/ldap.c:1143 -#: plugins/sudoers/ldap.c:1345 plugins/sudoers/ldap.c:1517 -#: plugins/sudoers/ldap.c:1673 plugins/sudoers/linux_audit.c:82 -#: plugins/sudoers/logging.c:921 plugins/sudoers/policy.c:494 -#: plugins/sudoers/policy.c:503 plugins/sudoers/prompt.c:161 -#: plugins/sudoers/sudoers.c:815 plugins/sudoers/testsudoers.c:235 -#: plugins/sudoers/toke_util.c:160 +#: plugins/sudoers/def_data.c:508 #, c-format -msgid "internal error, %s overflow" +msgid "Time in seconds after which the command will be terminated: %u" msgstr "" -#: plugins/sudoers/env.c:376 -msgid "sudo_putenv: corrupted envp, length mismatch" +#: plugins/sudoers/def_data.c:512 +msgid "Allow the user to specify a timeout on the command line" msgstr "" -#: plugins/sudoers/env.c:1047 -msgid "unable to rebuild the environment" -msgstr "не удаётся перестроить среду" +#: plugins/sudoers/def_data.c:516 +msgid "Flush I/O log data to disk immediately instead of buffering it" +msgstr "" + +#: plugins/sudoers/def_data.c:520 +msgid "Include the process ID when logging via syslog" +msgstr "" + +#: plugins/sudoers/def_data.c:524 +#, fuzzy, c-format +#| msgid "no authentication methods" +msgid "Type of authentication timestamp record: %s" +msgstr "методы аутентификации отсутствуют" -#: plugins/sudoers/env.c:1121 +#: plugins/sudoers/def_data.c:528 +#, fuzzy, c-format +#| msgid "Authentication methods:" +msgid "Authentication failure message: %s" +msgstr "Методы аутентификации:" + +#: plugins/sudoers/def_data.c:532 +msgid "Ignore case when matching user names" +msgstr "" + +#: plugins/sudoers/def_data.c:536 +msgid "Ignore case when matching group names" +msgstr "" + +#: plugins/sudoers/def_data.c:540 +msgid "Log when a command is allowed by sudoers" +msgstr "" + +#: plugins/sudoers/def_data.c:544 +msgid "Log when a command is denied by sudoers" +msgstr "" + +#: plugins/sudoers/def_data.c:548 +msgid "Sudo log server(s) to connect to with optional port" +msgstr "" + +#: plugins/sudoers/def_data.c:552 #, c-format -msgid "sorry, you are not allowed to set the following environment variables: %s" +msgid "Sudo log server timeout in seconds: %u" +msgstr "" + +#: plugins/sudoers/def_data.c:556 +msgid "Enable SO_KEEPALIVE socket option on the socket connected to the logserver" msgstr "" -#: plugins/sudoers/group_plugin.c:85 +#: plugins/sudoers/def_data.c:560 #, c-format -msgid "%s must be owned by uid %d" +msgid "Path to the audit server's CA bundle file: %s" msgstr "" -#: plugins/sudoers/group_plugin.c:89 +#: plugins/sudoers/def_data.c:564 #, c-format -msgid "%s must only be writable by owner" +msgid "Path to the sudoers certificate file: %s" msgstr "" -#: plugins/sudoers/group_plugin.c:96 plugins/sudoers/sssd.c:331 +#: plugins/sudoers/def_data.c:568 #, c-format -msgid "unable to load %s: %s" +msgid "Path to the sudoers private key file: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:572 +msgid "Verify that the log server's certificate is valid" +msgstr "" + +#: plugins/sudoers/def_data.c:576 +msgid "Allow the use of unknown runas user and/or group ID" +msgstr "" + +#: plugins/sudoers/def_data.c:580 +msgid "Only permit running commands as a user with a valid shell" msgstr "" -#: plugins/sudoers/group_plugin.c:101 +#: plugins/sudoers/def_data.c:584 +msgid "Set the pam remote user to the user running sudo" +msgstr "" + +#: plugins/sudoers/def_data.c:588 +msgid "Set the pam remote host to the local host name" +msgstr "" + +#: plugins/sudoers/def_data.c:592 #, c-format -msgid "unable to find symbol \"group_plugin\" in %s" +msgid "Working directory to change to before executing the command: %s" msgstr "" -#: plugins/sudoers/group_plugin.c:106 +#: plugins/sudoers/def_data.c:596 #, c-format -msgid "%s: incompatible group plugin major version %d, expected %d" +msgid "Root directory to change to before executing the command: %s" msgstr "" -#: plugins/sudoers/interfaces.c:110 -msgid "Local IP address and netmask pairs:\n" +#: plugins/sudoers/def_data.c:600 +#, c-format +msgid "The format of logs to produce: %s" msgstr "" -#: plugins/sudoers/iolog.c:92 plugins/sudoers/iolog.c:110 -#: plugins/sudoers/timestamp.c:218 +#: plugins/sudoers/def_data.c:604 +msgid "Enable SELinux RBAC support" +msgstr "" + +#: plugins/sudoers/def_data.c:608 #, c-format -msgid "%s exists but is not a directory (0%o)" +msgid "Path to the file that is created the first time sudo is run: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:612 +msgid "Intercept further commands and apply sudoers restrictions to them" +msgstr "" + +#: plugins/sudoers/def_data.c:616 +msgid "Log sub-commands run by the original command" +msgstr "" + +#: plugins/sudoers/def_data.c:620 +msgid "Log the exit status of commands" +msgstr "" + +#: plugins/sudoers/def_data.c:624 +msgid "Subsequent commands in an intercepted session must be authenticated" +msgstr "" + +#: plugins/sudoers/def_data.c:628 +msgid "Allow an intercepted command to run set setuid or setgid programs" msgstr "" -#: plugins/sudoers/iolog.c:103 plugins/sudoers/iolog.c:124 -#: plugins/sudoers/iolog.c:131 plugins/sudoers/timestamp.c:212 -#: plugins/sudoers/timestamp.c:233 +#: plugins/sudoers/def_data.c:632 #, c-format -msgid "unable to mkdir %s" +msgid "The maximum size to which the process's address space may grow (in bytes): %s" msgstr "" -#: plugins/sudoers/iolog.c:200 plugins/sudoers/sudoers.c:871 -#: plugins/sudoers/sudoreplay.c:302 plugins/sudoers/sudoreplay.c:768 -#: plugins/sudoers/sudoreplay.c:972 plugins/sudoers/timestamp.c:370 -#: plugins/sudoers/visudo.c:895 plugins/sudoers/visudo_json.c:1026 -#: plugins/sudoers/visudo_json.c:1039 +#: plugins/sudoers/def_data.c:636 #, c-format -msgid "unable to open %s" +msgid "The largest size core dump file that may be created (in bytes): %s" msgstr "" -#: plugins/sudoers/iolog.c:241 plugins/sudoers/sudoers.c:875 -#: plugins/sudoers/sudoreplay.c:1083 +#: plugins/sudoers/def_data.c:640 #, c-format -msgid "unable to read %s" +msgid "The maximum amount of CPU time that the process may use (in seconds): %s" msgstr "" -#: plugins/sudoers/iolog.c:273 plugins/sudoers/sudoreplay.c:549 -#: plugins/sudoers/timestamp.c:171 plugins/sudoers/timestamp.c:174 +#: plugins/sudoers/def_data.c:644 #, c-format -msgid "unable to write to %s" +msgid "The maximum size of the data segment for the process (in bytes): %s" msgstr "" -#: plugins/sudoers/iolog.c:338 plugins/sudoers/iolog.c:536 +#: plugins/sudoers/def_data.c:648 #, c-format -msgid "unable to create %s" +msgid "The largest size file that the process may create (in bytes): %s" msgstr "" -#: plugins/sudoers/ldap.c:428 -msgid "sudo_ldap_conf_add_ports: port too large" +#: plugins/sudoers/def_data.c:652 +#, c-format +msgid "The maximum number of locks that the process may establish: %s" msgstr "" -#: plugins/sudoers/ldap.c:488 +#: plugins/sudoers/def_data.c:656 #, c-format -msgid "unsupported LDAP uri type: %s" +msgid "The maximum size that the process may lock in memory (in bytes): %s" msgstr "" -#: plugins/sudoers/ldap.c:515 -msgid "unable to mix ldap and ldaps URIs" +#: plugins/sudoers/def_data.c:660 +#, c-format +msgid "The maximum number of files that the process may have open: %s" msgstr "" -#: plugins/sudoers/ldap.c:519 plugins/sudoers/ldap.c:555 -msgid "starttls not supported when using ldaps" +#: plugins/sudoers/def_data.c:664 +#, c-format +msgid "The maximum number of processes that the user may run simultaneously: %s" msgstr "" -#: plugins/sudoers/ldap.c:626 +#: plugins/sudoers/def_data.c:668 #, c-format -msgid "unable to initialize SSL cert and key db: %s" +msgid "The maximum size to which the process's resident set size may grow (in bytes): %s" msgstr "" -#: plugins/sudoers/ldap.c:629 +#: plugins/sudoers/def_data.c:672 #, c-format -msgid "you must set TLS_CERT in %s to use SSL" +msgid "The maximum size to which the process's stack may grow (in bytes): %s" msgstr "" -#: plugins/sudoers/ldap.c:1129 -msgid "unable to get GMT time" +#: plugins/sudoers/def_data.c:676 +msgid "Attempt authentication even when in non-interactive mode" msgstr "" -#: plugins/sudoers/ldap.c:1135 -msgid "unable to format timestamp" +#: plugins/sudoers/def_data.c:680 +msgid "Store plaintext passwords in I/O log input" +msgstr "" + +#: plugins/sudoers/def_data.c:684 +msgid "List of regular expressions to use when matching a password prompt" msgstr "" -#: plugins/sudoers/ldap.c:1821 +#: plugins/sudoers/def_data.c:688 #, c-format -msgid "%s: %s: %s: %s" +msgid "The mechanism used by the intercept and log_subcmds options: %s" +msgstr "" + +#: plugins/sudoers/def_data.c:692 +msgid "Attempt to verify the command and arguments after execution" msgstr "" -#: plugins/sudoers/ldap.c:2360 +#: plugins/sudoers/def_data.c:696 #, c-format -msgid "" -"\n" -"LDAP Role: %s\n" +msgid "AppArmor profile to use in the new security context: %s" msgstr "" -"\n" -"Роль LDAP: %s\n" -#: plugins/sudoers/ldap.c:2362 +#: plugins/sudoers/defaults.c:191 +#, fuzzy, c-format +#| msgid "unknown user: %s" +msgid "unknown defaults entry \"%s\"" +msgstr "неизвестный пользователь: %s" + +#: plugins/sudoers/defaults.c:234 #, c-format -msgid "" -"\n" -"LDAP Role: UNKNOWN\n" +msgid "no value specified for \"%s\"" msgstr "" -"\n" -"Роль LDAP: НЕИЗВЕСТНО\n" -#: plugins/sudoers/ldap.c:2409 +#: plugins/sudoers/defaults.c:243 #, c-format -msgid " Order: %s\n" -msgstr " Порядок: %s\n" +msgid "invalid operator \"%c=\" for \"%s\"" +msgstr "" -#: plugins/sudoers/ldap.c:2417 plugins/sudoers/parse.c:573 -#: plugins/sudoers/sssd.c:1408 +#: plugins/sudoers/defaults.c:275 #, c-format -msgid " Commands:\n" -msgstr " Команды:\n" +msgid "option \"%s\" does not take a value" +msgstr "" + +#: plugins/sudoers/defaults.c:299 +#, c-format +msgid "invalid Defaults type 0x%x for option \"%s\"" +msgstr "" + +#: plugins/sudoers/defaults.c:306 +#, c-format +msgid "value \"%s\" is invalid for option \"%s\"" +msgstr "" + +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 +#: plugins/sudoers/policy.c:217 +#, c-format +msgid "path name for \"%s\" too long" +msgstr "" + +#: plugins/sudoers/defaults.c:1134 +#, c-format +msgid "values for \"%s\" must start with a '/', '~', or '*'" +msgstr "" + +#: plugins/sudoers/defaults.c:1141 +#, c-format +msgid "values for \"%s\" must start with a '/'" +msgstr "" + +#: plugins/sudoers/env.c:426 +msgid "sudo_putenv: corrupted envp, length mismatch" +msgstr "" + +#: plugins/sudoers/env.c:1109 +msgid "unable to rebuild the environment" +msgstr "не удаётся перестроить среду" + +#: plugins/sudoers/env.c:1183 +#, c-format +msgid "sorry, you are not allowed to set the following environment variables: %s" +msgstr "" + +#: plugins/sudoers/filedigest.c:49 +#, c-format +msgid "unsupported digest type %d for %s" +msgstr "" + +#: plugins/sudoers/filedigest.c:78 +#, c-format +msgid "%s: read error" +msgstr "" + +#: plugins/sudoers/group_plugin.c:169 +#, c-format +msgid "%s must be owned by uid %d" +msgstr "" + +#: plugins/sudoers/group_plugin.c:173 +#, c-format +msgid "%s must only be writable by owner" +msgstr "" + +#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#, c-format +msgid "unable to load %s: %s" +msgstr "" + +#: plugins/sudoers/group_plugin.c:197 +#, c-format +msgid "unable to find symbol \"group_plugin\" in %s" +msgstr "" + +#: plugins/sudoers/group_plugin.c:202 +#, c-format +msgid "%s: incompatible group plugin major version %d, expected %d" +msgstr "" + +#: plugins/sudoers/interfaces.c:76 plugins/sudoers/interfaces.c:93 +#, fuzzy, c-format +#| msgid "%s: unable to parse '%s': %s" +msgid "unable to parse IP address \"%s\"" +msgstr "%s: не удаётся прочитать '%s': %s" + +#: plugins/sudoers/interfaces.c:81 plugins/sudoers/interfaces.c:98 +#, fuzzy, c-format +#| msgid "%s: unable to parse '%s': %s" +msgid "unable to parse netmask \"%s\"" +msgstr "%s: не удаётся прочитать '%s': %s" + +#: plugins/sudoers/interfaces.c:126 +msgid "Local IP address and netmask pairs:\n" +msgstr "" + +#: plugins/sudoers/iolog.c:685 +#, fuzzy +#| msgid "unable to rebuild the environment" +msgid "unable to update sequence file" +msgstr "не удаётся перестроить среду" + +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 +#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 +#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 +#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#, fuzzy, c-format +#| msgid "unable to open log file: %s: %s" +msgid "unable to write to I/O log file: %s" +msgstr "не удаётся открыть файл журнала: %s: %s" + +#: plugins/sudoers/iolog.c:727 +#, fuzzy, c-format +#| msgid "unable to read the clock" +msgid "unable to create %s/%s" +msgstr "не удаётся прочитать часы" + +#: plugins/sudoers/iolog.c:957 +#, c-format +msgid "%s: internal error, I/O log file for event %d not open" +msgstr "" + +#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 +#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 +#: plugins/sudoers/visudo.c:558 +msgid "unable to read the clock" +msgstr "не удаётся прочитать часы" + +#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 +#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#, c-format +msgid "%s: internal error, invalid signal %d" +msgstr "" + +#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:292 +msgid "starttls not supported when using ldaps" +msgstr "" + +#: plugins/sudoers/ldap.c:248 +#, c-format +msgid "unable to initialize SSL cert and key db: %s" +msgstr "" -#: plugins/sudoers/ldap.c:2980 +#: plugins/sudoers/ldap.c:251 +#, c-format +msgid "you must set TLS_CERT in %s to use SSL" +msgstr "" + +#: plugins/sudoers/ldap.c:1712 #, c-format msgid "unable to initialize LDAP: %s" msgstr "не удаётся инициализировать LDAP: %s" -#: plugins/sudoers/ldap.c:3016 +#: plugins/sudoers/ldap.c:1749 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "указано start_tls, но библиотеки LDAP не поддерживают ldap_start_tls_s() или ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:3273 +#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "недопустимый атрибут sudoOrder: %s" -#: plugins/sudoers/linux_audit.c:52 +#: plugins/sudoers/ldap_conf.c:200 +#, c-format +msgid "%s: port too large" +msgstr "" + +#: plugins/sudoers/ldap_conf.c:261 +#, c-format +msgid "unsupported LDAP uri type: %s" +msgstr "" + +#: plugins/sudoers/ldap_conf.c:288 +msgid "unable to mix ldap and ldaps URIs" +msgstr "" + +#: plugins/sudoers/ldap_util.c:499 plugins/sudoers/ldap_util.c:506 +#: plugins/sudoers/ldap_util.c:514 plugins/sudoers/ldap_util.c:523 +#: plugins/sudoers/ldap_util.c:531 plugins/sudoers/ldap_util.c:541 +#: plugins/sudoers/ldap_util.c:549 +#, c-format +msgid "duplicate sudoOption: %s%s%s" +msgstr "" + +#: plugins/sudoers/ldap_util.c:568 plugins/sudoers/ldap_util.c:570 +#, fuzzy, c-format +#| msgid "%s: unable to allocate options: %s" +msgid "unable to convert sudoOption: %s%s%s" +msgstr "%s: не удаётся выделить параметры: %s" + +#: plugins/sudoers/linux_audit.c:58 plugins/sudoers/linux_audit.c:60 msgid "unable to open audit system" msgstr "не удаётся открыть систему аудита" -#: plugins/sudoers/linux_audit.c:93 -msgid "unable to send audit message" -msgstr "не удаётся отправить сообщение аудита" +#: plugins/sudoers/linux_audit.c:103 +msgid "unable to send audit message" +msgstr "не удаётся отправить сообщение аудита" + +#: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 +#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +msgid "error in event loop" +msgstr "" + +#: plugins/sudoers/log_client.c:205 +#, c-format +msgid "Creation of new SSL_CTX object failed: %s" +msgstr "" + +#: plugins/sudoers/log_client.c:230 +#, c-format +msgid "unable to load certificate authority bundle %s" +msgstr "" + +#: plugins/sudoers/log_client.c:252 +#, fuzzy, c-format +#| msgid "%s: unable to store credential in cache: %s" +msgid "unable to load certificate %s" +msgstr "%s: не удаётся сохранить учётные данные в кэше: %s" + +#: plugins/sudoers/log_client.c:266 +#, fuzzy, c-format +#| msgid "unable to allocate memory" +msgid "unable to load private key %s" +msgstr "не удаётся выделить память" -#: plugins/sudoers/logging.c:106 -#, c-format -msgid "%8s : %s" -msgstr "%8s : %s" +#: plugins/sudoers/log_client.c:275 +#, fuzzy, c-format +#| msgid "%s: unable to allocate options: %s" +msgid "Unable to allocate ssl object: %s" +msgstr "%s: не удаётся выделить параметры: %s" -#: plugins/sudoers/logging.c:134 +#: plugins/sudoers/log_client.c:364 plugins/sudoers/log_client.c:369 #, c-format -msgid "%8s : (command continued) %s" -msgstr "%8s : (выполнение команды продолжено) %s" +msgid "TLS connection to %s:%s failed: %s" +msgstr "" -#: plugins/sudoers/logging.c:159 -#, c-format -msgid "unable to open log file: %s: %s" -msgstr "не удаётся открыть файл журнала: %s: %s" +#: plugins/sudoers/log_client.c:543 +msgid "TLS initialization was unsuccessful" +msgstr "" -#: plugins/sudoers/logging.c:162 -#, c-format -msgid "unable to lock log file: %s: %s" -msgstr "не удаётся заблокировать файл журнала: %s: %s" +#: plugins/sudoers/log_client.c:553 +msgid "TLS handshake was unsuccessful" +msgstr "" -#: plugins/sudoers/logging.c:211 -msgid "No user or host" +#: plugins/sudoers/log_client.c:1211 +#, c-format +msgid "%s: internal error, invalid exit status %d" msgstr "" -#: plugins/sudoers/logging.c:213 -msgid "validation failure" +#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#, fuzzy +#| msgid "lost connection to authentication server" +msgid "lost connection to log server" +msgstr "потеряно соединение с сервером аутентификации" + +#: plugins/sudoers/log_client.c:1841 +msgid "missing write buffer" msgstr "" -#: plugins/sudoers/logging.c:220 +#: plugins/sudoers/log_client.c:1995 +#, fuzzy +#| msgid "unable to connect to authentication server" +msgid "unable to connect to log server" +msgstr "не удаётся связаться с сервером аутентификации" + +#: plugins/sudoers/logging.c:290 msgid "user NOT in sudoers" msgstr "" -#: plugins/sudoers/logging.c:222 +#: plugins/sudoers/logging.c:292 msgid "user NOT authorized on host" msgstr "" -#: plugins/sudoers/logging.c:224 +#: plugins/sudoers/logging.c:294 msgid "command not allowed" msgstr "" -#: plugins/sudoers/logging.c:259 +#: plugins/sudoers/logging.c:315 #, c-format -msgid "%s is not in the sudoers file. This incident will be reported.\n" +msgid "%s is not in the sudoers file.\n" msgstr "" -#: plugins/sudoers/logging.c:262 -#, c-format -msgid "%s is not allowed to run sudo on %s. This incident will be reported.\n" -msgstr "" +#: plugins/sudoers/logging.c:318 +#, fuzzy, c-format +#| msgid "Send mail if the user is not allowed to run a command" +msgid "%s is not allowed to run sudo on %s.\n" +msgstr "Отправлять письмо, если пользователю не разрешено выполнять команду" -#: plugins/sudoers/logging.c:266 +#: plugins/sudoers/logging.c:321 #, c-format msgid "Sorry, user %s may not run sudo on %s.\n" msgstr "" -#: plugins/sudoers/logging.c:269 +#: plugins/sudoers/logging.c:324 #, c-format msgid "Sorry, user %s is not allowed to execute '%s%s%s' as %s%s%s on %s.\n" msgstr "" -#: plugins/sudoers/logging.c:306 plugins/sudoers/sudoers.c:471 -#: plugins/sudoers/sudoers.c:473 plugins/sudoers/sudoers.c:475 -#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:1220 -#: plugins/sudoers/sudoers.c:1222 +#: plugins/sudoers/logging.c:334 +msgid "This incident has been reported to the administrator.\n" +msgstr "" + +#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 +#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 +#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 +#: plugins/sudoers/sudoers.c:807 #, c-format msgid "%s: command not found" msgstr "" -#: plugins/sudoers/logging.c:308 plugins/sudoers/sudoers.c:467 +#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 #, c-format msgid "" -"ignoring `%s' found in '.'\n" -"Use `sudo ./%s' if this is the `%s' you wish to run." -msgstr "" - -#: plugins/sudoers/logging.c:325 -msgid "authentication failure" -msgstr "" - -#: plugins/sudoers/logging.c:351 -msgid "a password is required" +"ignoring \"%s\" found in '.'\n" +"Use \"sudo ./%s\" if this is the \"%s\" you wish to run." msgstr "" -#: plugins/sudoers/logging.c:422 plugins/sudoers/logging.c:484 +#: plugins/sudoers/logging.c:387 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" @@ -1100,672 +3006,746 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: plugins/sudoers/logging.c:572 -msgid "unable to fork" +#: plugins/sudoers/logging.c:477 +msgid "authentication failure" msgstr "" -#: plugins/sudoers/logging.c:580 plugins/sudoers/logging.c:636 -#, c-format -msgid "unable to fork: %m" +#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +msgid "a password is required" msgstr "" -#: plugins/sudoers/logging.c:626 -#, c-format -msgid "unable to open pipe: %m" +#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +msgid "problem parsing sudoers" msgstr "" -#: plugins/sudoers/logging.c:651 +#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#, fuzzy, c-format +#| msgid "%s: %s" +msgid "%s:%d:%d: %s" +msgstr "%s: %s" + +#: plugins/sudoers/logging.c:1062 +#, fuzzy, c-format +#| msgid "unable to open log file: %s: %s" +msgid "unable to write log file: %s" +msgstr "не удаётся открыть файл журнала: %s: %s" + +#: plugins/sudoers/match_digest.c:112 #, c-format -msgid "unable to dup stdin: %m" +msgid "digest for %s (%s) bad length %zu, expected %zu" msgstr "" -#: plugins/sudoers/logging.c:689 +#: plugins/sudoers/match_digest.c:131 #, c-format -msgid "unable to execute %s: %m" +msgid "digest for %s (%s) is not in %s form" msgstr "" -#: plugins/sudoers/match.c:606 +#: plugins/sudoers/parse.c:591 #, c-format -msgid "unsupported digest type %d for %s" +msgid "" +"\n" +"LDAP Role: %s\n" msgstr "" +"\n" +"Роль LDAP: %s\n" -#: plugins/sudoers/match.c:635 -#, c-format -msgid "%s: read error" +#: plugins/sudoers/parse.c:594 +msgid "" +"\n" +"Sudoers entry:\n" msgstr "" -#: plugins/sudoers/match.c:649 -#, c-format -msgid "digest for %s (%s) is not in %s form" +#: plugins/sudoers/parse.c:596 +msgid " RunAsUsers: " +msgstr "" + +#: plugins/sudoers/parse.c:611 +msgid " RunAsGroups: " +msgstr "" + +#: plugins/sudoers/parse.c:621 +msgid " Options: " msgstr "" -#: plugins/sudoers/parse.c:114 +#: plugins/sudoers/parse.c:685 +msgid " Commands:\n" +msgstr " Команды:\n" + +#: plugins/sudoers/parse.c:876 #, c-format -msgid "parse error in %s near line %d" +msgid "Matching Defaults entries for %s on %s:\n" msgstr "" -#: plugins/sudoers/parse.c:117 +#: plugins/sudoers/parse.c:894 #, c-format -msgid "parse error in %s" +msgid "Runas and Command-specific defaults for %s:\n" msgstr "" -#: plugins/sudoers/parse.c:520 +#: plugins/sudoers/parse.c:912 #, c-format -msgid "" -"\n" -"Sudoers entry:\n" +msgid "User %s may run the following commands on %s:\n" msgstr "" -#: plugins/sudoers/parse.c:521 +#: plugins/sudoers/parse.c:927 #, c-format -msgid " RunAsUsers: " +msgid "User %s is not allowed to run sudo on %s.\n" msgstr "" -#: plugins/sudoers/parse.c:535 +#: plugins/sudoers/parse_ldif.c:618 #, c-format -msgid " RunAsGroups: " +msgid "ignoring incomplete sudoRole: cn: %s" msgstr "" -#: plugins/sudoers/parse.c:544 +#: plugins/sudoers/parse_ldif.c:678 +#, fuzzy, c-format +#| msgid "invalid sudoOrder attribute: %s" +msgid "invalid LDIF attribute: %s" +msgstr "недопустимый атрибут sudoOrder: %s" + +#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 #, c-format -msgid " Options: " +msgid "invalid %.*s set by sudo front-end" msgstr "" -#: plugins/sudoers/policy.c:240 plugins/sudoers/testsudoers.c:252 +#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "" -#: plugins/sudoers/policy.c:632 plugins/sudoers/visudo.c:836 +#: plugins/sudoers/policy.c:526 +msgid "user name not set by sudo front-end" +msgstr "" + +#: plugins/sudoers/policy.c:530 +msgid "user-ID not set by sudo front-end" +msgstr "" + +#: plugins/sudoers/policy.c:534 +msgid "group-ID not set by sudo front-end" +msgstr "" + +#: plugins/sudoers/policy.c:538 +msgid "host name not set by sudo front-end" +msgstr "" + +#: plugins/sudoers/policy.c:730 +#, fuzzy, c-format +#| msgid "invalid sudoOrder attribute: %s" +msgid "invalid working directory: %s" +msgstr "недопустимый атрибут sudoOrder: %s" + +#: plugins/sudoers/policy.c:914 +#, c-format +msgid "invalid chroot directory: %s" +msgstr "" + +#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:902 #, c-format msgid "unable to execute %s" msgstr "" -#: plugins/sudoers/policy.c:765 +#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 +#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#, c-format +msgid "%s: invalid mode flags from sudo front end: 0x%x" +msgstr "" + +#: plugins/sudoers/policy.c:1292 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "" -#: plugins/sudoers/policy.c:767 +#: plugins/sudoers/policy.c:1294 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "" -#: plugins/sudoers/policy.c:771 +#: plugins/sudoers/policy.c:1298 #, c-format msgid "" "\n" "Sudoers path: %s\n" msgstr "" -#: plugins/sudoers/policy.c:774 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "nsswitch path: %s\n" msgstr "" -#: plugins/sudoers/policy.c:776 +#: plugins/sudoers/policy.c:1303 #, c-format msgid "ldap.conf path: %s\n" msgstr "" -#: plugins/sudoers/policy.c:777 +#: plugins/sudoers/policy.c:1304 #, c-format msgid "ldap.secret path: %s\n" msgstr "" -#: plugins/sudoers/policy.c:810 +#: plugins/sudoers/policy.c:1337 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "" -#: plugins/sudoers/pwutil.c:136 plugins/sudoers/pwutil.c:153 +#: plugins/sudoers/policy.c:1355 #, c-format -msgid "unable to cache uid %u, out of memory" +msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "" -#: plugins/sudoers/pwutil.c:147 +#: plugins/sudoers/pwutil.c:222 plugins/sudoers/pwutil.c:240 +#, fuzzy, c-format +#| msgid "unable to contact the SecurID server" +msgid "unable to cache uid %u" +msgstr "не удалось связаться с сервером SecurID" + +#: plugins/sudoers/pwutil.c:234 #, c-format msgid "unable to cache uid %u, already exists" msgstr "" -#: plugins/sudoers/pwutil.c:191 plugins/sudoers/pwutil.c:207 -#: plugins/sudoers/pwutil.c:250 plugins/sudoers/pwutil.c:294 -#, c-format -msgid "unable to cache user %s, out of memory" -msgstr "" +#: plugins/sudoers/pwutil.c:294 plugins/sudoers/pwutil.c:312 +#: plugins/sudoers/pwutil.c:375 plugins/sudoers/pwutil.c:420 +#, fuzzy, c-format +#| msgid "unable to contact the SecurID server" +msgid "unable to cache user %s" +msgstr "не удалось связаться с сервером SecurID" -#: plugins/sudoers/pwutil.c:202 +#: plugins/sudoers/pwutil.c:307 #, c-format msgid "unable to cache user %s, already exists" msgstr "" -#: plugins/sudoers/pwutil.c:427 plugins/sudoers/pwutil.c:444 -#, c-format -msgid "unable to cache gid %u, out of memory" -msgstr "" +#: plugins/sudoers/pwutil.c:539 plugins/sudoers/pwutil.c:557 +#, fuzzy, c-format +#| msgid "unable to change expired password: %s" +msgid "unable to cache gid %u" +msgstr "не удаётся сменить устаревший пароль: %s" -#: plugins/sudoers/pwutil.c:438 +#: plugins/sudoers/pwutil.c:551 #, c-format msgid "unable to cache gid %u, already exists" msgstr "" -#: plugins/sudoers/pwutil.c:476 plugins/sudoers/pwutil.c:492 -#: plugins/sudoers/pwutil.c:524 plugins/sudoers/pwutil.c:565 -#, c-format -msgid "unable to cache group %s, out of memory" -msgstr "" +#: plugins/sudoers/pwutil.c:605 plugins/sudoers/pwutil.c:623 +#: plugins/sudoers/pwutil.c:684 plugins/sudoers/pwutil.c:733 +#, fuzzy, c-format +#| msgid "%s: unable to allocate options: %s" +msgid "unable to cache group %s" +msgstr "%s: не удаётся выделить параметры: %s" -#: plugins/sudoers/pwutil.c:487 +#: plugins/sudoers/pwutil.c:618 #, c-format msgid "unable to cache group %s, already exists" msgstr "" -#: plugins/sudoers/pwutil.c:676 plugins/sudoers/pwutil.c:710 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 +#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "" -#: plugins/sudoers/pwutil.c:682 plugins/sudoers/pwutil.c:715 -#, c-format -msgid "unable to cache group list for %s, out of memory" -msgstr "" +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 +#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#, fuzzy, c-format +#| msgid "unable to get login class for user %s" +msgid "unable to cache group list for %s" +msgstr "не удаётся получить класс логина для пользователя %s" -#: plugins/sudoers/pwutil.c:705 +#: plugins/sudoers/pwutil.c:925 #, c-format msgid "unable to parse groups for %s" msgstr "" -#: plugins/sudoers/set_perms.c:113 plugins/sudoers/set_perms.c:438 -#: plugins/sudoers/set_perms.c:841 plugins/sudoers/set_perms.c:1138 -#: plugins/sudoers/set_perms.c:1430 +#: plugins/sudoers/pwutil.c:1027 +#, fuzzy, c-format +#| msgid "%s: unable to parse '%s': %s" +msgid "unable to parse gids for %s" +msgstr "%s: не удаётся прочитать '%s': %s" + +#: plugins/sudoers/set_perms.c:114 plugins/sudoers/set_perms.c:445 +#: plugins/sudoers/set_perms.c:852 plugins/sudoers/set_perms.c:1162 +#: plugins/sudoers/set_perms.c:1460 msgid "perm stack overflow" msgstr "" -#: plugins/sudoers/set_perms.c:121 plugins/sudoers/set_perms.c:369 -#: plugins/sudoers/set_perms.c:446 plugins/sudoers/set_perms.c:708 -#: plugins/sudoers/set_perms.c:849 plugins/sudoers/set_perms.c:1067 -#: plugins/sudoers/set_perms.c:1146 plugins/sudoers/set_perms.c:1363 -#: plugins/sudoers/set_perms.c:1438 plugins/sudoers/set_perms.c:1527 +#: plugins/sudoers/set_perms.c:125 plugins/sudoers/set_perms.c:376 +#: plugins/sudoers/set_perms.c:456 plugins/sudoers/set_perms.c:719 +#: plugins/sudoers/set_perms.c:863 plugins/sudoers/set_perms.c:1086 +#: plugins/sudoers/set_perms.c:1173 plugins/sudoers/set_perms.c:1393 +#: plugins/sudoers/set_perms.c:1471 plugins/sudoers/set_perms.c:1562 msgid "perm stack underflow" msgstr "" -#: plugins/sudoers/set_perms.c:180 plugins/sudoers/set_perms.c:493 -#: plugins/sudoers/set_perms.c:1197 plugins/sudoers/set_perms.c:1470 +#: plugins/sudoers/set_perms.c:185 plugins/sudoers/set_perms.c:503 +#: plugins/sudoers/set_perms.c:1227 plugins/sudoers/set_perms.c:1505 msgid "unable to change to root gid" msgstr "" -#: plugins/sudoers/set_perms.c:269 plugins/sudoers/set_perms.c:590 -#: plugins/sudoers/set_perms.c:978 plugins/sudoers/set_perms.c:1274 +#: plugins/sudoers/set_perms.c:276 plugins/sudoers/set_perms.c:600 +#: plugins/sudoers/set_perms.c:995 plugins/sudoers/set_perms.c:1304 msgid "unable to change to runas gid" msgstr "" -#: plugins/sudoers/set_perms.c:274 plugins/sudoers/set_perms.c:595 -#: plugins/sudoers/set_perms.c:983 plugins/sudoers/set_perms.c:1279 +#: plugins/sudoers/set_perms.c:281 plugins/sudoers/set_perms.c:605 +#: plugins/sudoers/set_perms.c:1000 plugins/sudoers/set_perms.c:1309 msgid "unable to set runas group vector" msgstr "" -#: plugins/sudoers/set_perms.c:285 plugins/sudoers/set_perms.c:606 -#: plugins/sudoers/set_perms.c:992 plugins/sudoers/set_perms.c:1288 +#: plugins/sudoers/set_perms.c:292 plugins/sudoers/set_perms.c:616 +#: plugins/sudoers/set_perms.c:1009 plugins/sudoers/set_perms.c:1318 msgid "unable to change to runas uid" msgstr "" -#: plugins/sudoers/set_perms.c:303 plugins/sudoers/set_perms.c:624 -#: plugins/sudoers/set_perms.c:1008 plugins/sudoers/set_perms.c:1304 +#: plugins/sudoers/set_perms.c:310 plugins/sudoers/set_perms.c:634 +#: plugins/sudoers/set_perms.c:1025 plugins/sudoers/set_perms.c:1334 msgid "unable to change to sudoers gid" msgstr "" -#: plugins/sudoers/set_perms.c:356 plugins/sudoers/set_perms.c:695 -#: plugins/sudoers/set_perms.c:1054 plugins/sudoers/set_perms.c:1350 -#: plugins/sudoers/set_perms.c:1514 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 msgid "too many processes" msgstr "" -#: plugins/sudoers/solaris_audit.c:51 +#: plugins/sudoers/solaris_audit.c:61 msgid "unable to get current working directory" msgstr "" -#: plugins/sudoers/solaris_audit.c:59 +#: plugins/sudoers/solaris_audit.c:69 #, c-format msgid "truncated audit path user_cmnd: %s" msgstr "" -#: plugins/sudoers/solaris_audit.c:66 +#: plugins/sudoers/solaris_audit.c:76 #, c-format msgid "truncated audit path argv[0]: %s" msgstr "" -#: plugins/sudoers/solaris_audit.c:115 -msgid "audit_failure message too long" -msgstr "" - -#: plugins/sudoers/sssd.c:332 +#: plugins/sudoers/sssd.c:579 msgid "unable to initialize SSS source. Is SSSD installed on your machine?" msgstr "" -#: plugins/sudoers/sssd.c:340 plugins/sudoers/sssd.c:349 -#: plugins/sudoers/sssd.c:358 plugins/sudoers/sssd.c:367 -#: plugins/sudoers/sssd.c:376 +#: plugins/sudoers/sssd.c:587 plugins/sudoers/sssd.c:596 +#: plugins/sudoers/sssd.c:605 plugins/sudoers/sssd.c:614 +#: plugins/sudoers/sssd.c:623 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "" -#: plugins/sudoers/sudo_nss.c:290 -#, c-format -msgid "Matching Defaults entries for %s on %s:\n" -msgstr "" +#: plugins/sudoers/sudoers.c:263 +#, fuzzy, c-format +#| msgid "%s: unable to get credentials: %s" +msgid "unable to get defaults from %s" +msgstr "%s: не удаётся получить учётные данные: %s" -#: plugins/sudoers/sudo_nss.c:308 -#, c-format -msgid "Runas and Command-specific defaults for %s:\n" +#: plugins/sudoers/sudoers.c:270 +msgid "no valid sudoers sources found, quitting" msgstr "" -#: plugins/sudoers/sudo_nss.c:326 +#: plugins/sudoers/sudoers.c:346 #, c-format -msgid "User %s may run the following commands on %s:\n" +msgid "user not allowed to change root directory to %s" msgstr "" -#: plugins/sudoers/sudo_nss.c:339 +#: plugins/sudoers/sudoers.c:348 #, c-format -msgid "User %s is not allowed to run sudo on %s.\n" +msgid "you are not permitted to use the -R option with %s" msgstr "" -#: plugins/sudoers/sudoers.c:172 plugins/sudoers/testsudoers.c:244 -#: plugins/sudoers/visudo.c:225 plugins/sudoers/visudo.c:562 -msgid "unable to initialize sudoers default values" -msgstr "не удаётся инициализировать значения по умолчанию для sudoers" +#: plugins/sudoers/sudoers.c:373 +#, fuzzy, c-format +#| msgid "unable to change expired password: %s" +msgid "user not allowed to change directory to %s" +msgstr "не удаётся сменить устаревший пароль: %s" -#: plugins/sudoers/sudoers.c:197 plugins/sudoers/sudoers.c:239 -#: plugins/sudoers/sudoers.c:833 -msgid "problem with defaults entries" +#: plugins/sudoers/sudoers.c:374 +#, c-format +msgid "you are not permitted to use the -D option with %s" msgstr "" -#: plugins/sudoers/sudoers.c:205 -msgid "no valid sudoers sources found, quitting" +#: plugins/sudoers/sudoers.c:401 +msgid "no command specified" msgstr "" -#: plugins/sudoers/sudoers.c:275 +#: plugins/sudoers/sudoers.c:426 msgid "sudoers specifies that root is not allowed to sudo" msgstr "" -#: plugins/sudoers/sudoers.c:332 +#: plugins/sudoers/sudoers.c:476 +msgid "user not allowed to override closefrom limit" +msgstr "" + +#: plugins/sudoers/sudoers.c:477 msgid "you are not permitted to use the -C option" msgstr "" -#: plugins/sudoers/sudoers.c:396 +#: plugins/sudoers/sudoers.c:537 #, c-format msgid "timestamp owner (%s): No such user" msgstr "" -#: plugins/sudoers/sudoers.c:410 +#: plugins/sudoers/sudoers.c:552 msgid "no tty" msgstr "" -#: plugins/sudoers/sudoers.c:411 +#: plugins/sudoers/sudoers.c:553 msgid "sorry, you must have a tty to run sudo" msgstr "" -#: plugins/sudoers/sudoers.c:466 +#: plugins/sudoers/sudoers.c:560 +#, fuzzy, c-format +#| msgid "invalid sudoOrder attribute: %s" +msgid "invalid shell for user %s: %s" +msgstr "недопустимый атрибут sudoOrder: %s" + +#: plugins/sudoers/sudoers.c:643 msgid "command in current directory" msgstr "" -#: plugins/sudoers/sudoers.c:486 +#: plugins/sudoers/sudoers.c:658 +msgid "\"cd\" is a shell built-in command, it cannot be run directly." +msgstr "" + +#: plugins/sudoers/sudoers.c:660 +msgid "the -s option may be used to run a privileged shell." +msgstr "" + +#: plugins/sudoers/sudoers.c:662 +msgid "the -D option may be used to run a command in a specific directory." +msgstr "" + +#: plugins/sudoers/sudoers.c:671 +#, fuzzy +#| msgid "Send mail if the user is not allowed to run a command" +msgid "user not allowed to set a command timeout" +msgstr "Отправлять письмо, если пользователю не разрешено выполнять команду" + +#: plugins/sudoers/sudoers.c:673 +msgid "sorry, you are not allowed set a command timeout" +msgstr "" + +#: plugins/sudoers/sudoers.c:681 +#, fuzzy +#| msgid "unable to rebuild the environment" +msgid "user not allowed to preserve the environment" +msgstr "не удаётся перестроить среду" + +#: plugins/sudoers/sudoers.c:683 msgid "sorry, you are not allowed to preserve the environment" msgstr "" -#: plugins/sudoers/sudoers.c:778 -msgid "command too long" +#: plugins/sudoers/sudoers.c:1073 +msgid "sudoedit doesn't need to be run via sudo" msgstr "" -#: plugins/sudoers/sudoers.c:886 plugins/sudoers/visudo.c:428 -#: plugins/sudoers/visudo.c:662 +#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/tsdump.c:138 #, c-format -msgid "unable to stat %s" +msgid "unable to read %s" msgstr "" -#: plugins/sudoers/sudoers.c:890 +#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 #, c-format msgid "%s is not a regular file" msgstr "" -#: plugins/sudoers/sudoers.c:894 plugins/sudoers/timestamp.c:274 toke.l:933 +#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "" -#: plugins/sudoers/sudoers.c:898 toke.l:940 +#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 #, c-format msgid "%s is world writable" msgstr "" -#: plugins/sudoers/sudoers.c:902 toke.l:945 +#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "" -#: plugins/sudoers/sudoers.c:933 +#: plugins/sudoers/sudoers.c:1194 #, c-format -msgid "only root can use `-c %s'" +msgid "only root can use \"-c %s\"" msgstr "" -#: plugins/sudoers/sudoers.c:952 -#, c-format -msgid "unknown login class: %s" -msgstr "" +#: plugins/sudoers/sudoers.c:1213 +#, fuzzy, c-format +#| msgid "unknown user: %s" +msgid "unknown login class %s" +msgstr "неизвестный пользователь: %s" -#: plugins/sudoers/sudoers.c:1031 plugins/sudoers/sudoers.c:1059 +#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 #, c-format msgid "unable to resolve host %s" msgstr "" -#: plugins/sudoers/sudoers.c:1126 plugins/sudoers/testsudoers.c:384 -#, c-format -msgid "unknown group: %s" -msgstr "" - -#: plugins/sudoers/sudoreplay.c:234 +#: plugins/sudoers/sudoreplay.c:259 #, c-format msgid "invalid filter option: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:247 +#: plugins/sudoers/sudoreplay.c:275 #, c-format msgid "invalid max wait: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:253 +#: plugins/sudoers/sudoreplay.c:298 #, c-format msgid "invalid speed factor: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:256 plugins/sudoers/visudo.c:182 +#: plugins/sudoers/sudoreplay.c:333 #, c-format -msgid "%s version %s\n" +msgid "invalid time offset %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:288 +#: plugins/sudoers/sudoreplay.c:342 #, c-format -msgid "%s/%.2s/%.2s/%.2s/timing: %s" +msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:294 +#: plugins/sudoers/sudoreplay.c:347 +#, fuzzy, c-format +#| msgid "%s: %s" +msgid "%s/timing: %s" +msgstr "%s: %s" + +#: plugins/sudoers/sudoreplay.c:375 #, c-format -msgid "%s/%s/timing: %s" +msgid "Replaying sudo session: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:310 -#, c-format -msgid "Replaying sudo session: %s\n" +#: plugins/sudoers/sudoreplay.c:637 +msgid "unable to set tty to raw mode" msgstr "" -#: plugins/sudoers/sudoreplay.c:316 -#, c-format +#: plugins/sudoers/sudoreplay.c:688 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "" -#: plugins/sudoers/sudoreplay.c:317 +#: plugins/sudoers/sudoreplay.c:689 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "" -#: plugins/sudoers/sudoreplay.c:369 -msgid "unable to set tty to raw mode" -msgstr "" - -#: plugins/sudoers/sudoreplay.c:400 -#, c-format -msgid "invalid timing file line: %s" +#: plugins/sudoers/sudoreplay.c:717 +msgid "Replay finished, press any key to restore the terminal." msgstr "" -#: plugins/sudoers/sudoreplay.c:610 plugins/sudoers/sudoreplay.c:635 +#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 #, c-format msgid "ambiguous expression \"%s\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:657 +#: plugins/sudoers/sudoreplay.c:1271 msgid "unmatched ')' in expression" msgstr "" -#: plugins/sudoers/sudoreplay.c:661 +#: plugins/sudoers/sudoreplay.c:1275 #, c-format msgid "unknown search term \"%s\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:676 +#: plugins/sudoers/sudoreplay.c:1290 #, c-format msgid "%s requires an argument" msgstr "" -#: plugins/sudoers/sudoreplay.c:679 plugins/sudoers/sudoreplay.c:1059 -#, c-format -msgid "invalid regular expression: %s" -msgstr "" - -#: plugins/sudoers/sudoreplay.c:683 +#: plugins/sudoers/sudoreplay.c:1300 #, c-format msgid "could not parse date \"%s\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:692 +#: plugins/sudoers/sudoreplay.c:1309 msgid "unmatched '(' in expression" msgstr "" -#: plugins/sudoers/sudoreplay.c:694 +#: plugins/sudoers/sudoreplay.c:1311 msgid "illegal trailing \"or\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:696 +#: plugins/sudoers/sudoreplay.c:1313 msgid "illegal trailing \"!\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:745 +#: plugins/sudoers/sudoreplay.c:1371 #, c-format msgid "unknown search type %d" msgstr "" -#: plugins/sudoers/sudoreplay.c:783 -#, c-format -msgid "%s: invalid log file" -msgstr "" - -#: plugins/sudoers/sudoreplay.c:801 -#, c-format -msgid "%s: time stamp field is missing" -msgstr "" - -#: plugins/sudoers/sudoreplay.c:808 -#, c-format -msgid "%s: time stamp %s: %s" -msgstr "" - -#: plugins/sudoers/sudoreplay.c:815 -#, c-format -msgid "%s: user field is missing" -msgstr "" - -#: plugins/sudoers/sudoreplay.c:824 -#, c-format -msgid "%s: runas user field is missing" -msgstr "" - -#: plugins/sudoers/sudoreplay.c:833 -#, c-format -msgid "%s: runas group field is missing" -msgstr "" - -#: plugins/sudoers/sudoreplay.c:1196 +#: plugins/sudoers/sudoreplay.c:1650 #, c-format -msgid "usage: %s [-h] [-d dir] [-m num] [-s num] ID\n" +msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "" -#: plugins/sudoers/sudoreplay.c:1199 +#: plugins/sudoers/sudoreplay.c:1652 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "" -#: plugins/sudoers/sudoreplay.c:1208 +#: plugins/sudoers/sudoreplay.c:1666 #, c-format msgid "" "%s - replay sudo session logs\n" "\n" msgstr "" -#: plugins/sudoers/sudoreplay.c:1210 +#: plugins/sudoers/sudoreplay.c:1668 msgid "" "\n" "Options:\n" -" -d, --directory=dir specify directory for session logs\n" -" -f, --filter=filter specify which I/O type(s) to display\n" -" -h, --help display help message and exit\n" -" -l, --list list available session IDs, with optional expression\n" -" -m, --max-wait=num max number of seconds to wait between events\n" -" -s, --speed=num speed up or slow down output\n" -" -V, --version display version information and exit" -msgstr "" - -#: plugins/sudoers/testsudoers.c:323 +" -d, --directory=dir specify directory for session logs\n" +" -f, --filter=filter specify which I/O type(s) to display\n" +" -h, --help display help message and exit\n" +" -l, --list list available session IDs, with optional expression\n" +" -m, --max-wait=num max number of seconds to wait between events\n" +" -n, --non-interactive no prompts, session is sent to the standard output\n" +" -R, --no-resize do not attempt to re-size the terminal\n" +" -S, --suspend-wait wait while the command was suspended\n" +" -s, --speed=num speed up or slow down output\n" +" -V, --version display version information and exit" +msgstr "" + +#: plugins/sudoers/testsudoers.c:344 msgid "\thost unmatched" msgstr "" -#: plugins/sudoers/testsudoers.c:326 +#: plugins/sudoers/testsudoers.c:347 msgid "" "\n" "Command allowed" msgstr "" -#: plugins/sudoers/testsudoers.c:327 +#: plugins/sudoers/testsudoers.c:348 msgid "" "\n" "Command denied" msgstr "" -#: plugins/sudoers/testsudoers.c:327 +#: plugins/sudoers/testsudoers.c:348 msgid "" "\n" "Command unmatched" msgstr "" -#: plugins/sudoers/timestamp.c:182 +#: plugins/sudoers/timestamp.c:354 plugins/sudoers/timestamp.c:693 #, c-format msgid "unable to truncate time stamp file to %lld bytes" msgstr "" -#: plugins/sudoers/timestamp.c:282 -#, c-format -msgid "%s is group writable" +#: plugins/sudoers/timestamp.c:890 +msgid "ignoring time stamp from the future" msgstr "" -#: plugins/sudoers/timestamp.c:303 +#: plugins/sudoers/timestamp.c:913 #, c-format -msgid "timestamp path too long: %s/%s" +msgid "time stamp too far in the future: %20.20s" msgstr "" -#: plugins/sudoers/timestamp.c:362 plugins/sudoers/timestamp.c:446 -#: plugins/sudoers/visudo.c:483 plugins/sudoers/visudo.c:489 -msgid "unable to read the clock" -msgstr "не удаётся прочитать часы" +#: plugins/sudoers/timestamp.c:1042 +#, fuzzy, c-format +#| msgid "unable to lock log file: %s: %s" +msgid "unable to lock time stamp file %s" +msgstr "не удаётся заблокировать файл журнала: %s: %s" -#: plugins/sudoers/timestamp.c:516 -msgid "ignoring time stamp from the future" +#: plugins/sudoers/toke_util.c:156 +msgid "sudoedit should not be specified with a path" msgstr "" -#: plugins/sudoers/timestamp.c:528 -#, c-format -msgid "time stamp too far in the future: %20.20s" +#: plugins/sudoers/visudo.c:254 +msgid "the -x option will be removed in a future release" msgstr "" -#: plugins/sudoers/timestamp.c:638 plugins/sudoers/timestamp.c:658 -#, c-format -msgid "lecture status path too long: %s/%s" +#: plugins/sudoers/visudo.c:256 +msgid "please consider using the cvtsudoers utility instead" msgstr "" -#: plugins/sudoers/visudo.c:184 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 #, c-format -msgid "%s grammar version %d\n" +msgid "press return to edit %s: " msgstr "" -#: plugins/sudoers/visudo.c:256 plugins/sudoers/visudo.c:614 +#: plugins/sudoers/visudo.c:326 #, c-format -msgid "press return to edit %s: " +msgid "contents of edit session left in %s" msgstr "" -#: plugins/sudoers/visudo.c:321 +#: plugins/sudoers/visudo.c:402 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "" -#: plugins/sudoers/visudo.c:337 +#: plugins/sudoers/visudo.c:404 #, c-format msgid "no editor found (editor path = %s)" msgstr "" -#: plugins/sudoers/visudo.c:445 plugins/sudoers/visudo.c:451 +#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#, c-format +msgid "unable to stat %s" +msgstr "" + +#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 msgid "write error" msgstr "" -#: plugins/sudoers/visudo.c:496 +#: plugins/sudoers/visudo.c:565 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:503 +#: plugins/sudoers/visudo.c:572 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:509 +#: plugins/sudoers/visudo.c:578 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:531 +#: plugins/sudoers/visudo.c:600 #, c-format msgid "%s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:557 +#: plugins/sudoers/visudo.c:645 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "" -#: plugins/sudoers/visudo.c:568 -#, c-format -msgid "unabled to parse temporary file (%s), unknown error" -msgstr "" - -#: plugins/sudoers/visudo.c:605 +#: plugins/sudoers/visudo.c:658 #, c-format -msgid "internal error, unable to find %s in list!" +msgid "unable to parse temporary file (%s), unknown error" msgstr "" -#: plugins/sudoers/visudo.c:664 plugins/sudoers/visudo.c:673 +#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 +#: plugins/sudoers/visudo.c:781 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "" -#: plugins/sudoers/visudo.c:668 plugins/sudoers/visudo.c:678 -#, c-format -msgid "unable to change mode of %s to 0%o" -msgstr "" - -#: plugins/sudoers/visudo.c:695 +#: plugins/sudoers/visudo.c:809 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "" -#: plugins/sudoers/visudo.c:709 +#: plugins/sudoers/visudo.c:820 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:719 +#: plugins/sudoers/visudo.c:827 #, c-format msgid "error renaming %s, %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:847 msgid "What now? " msgstr "" -#: plugins/sudoers/visudo.c:795 +#: plugins/sudoers/visudo.c:861 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -1773,96 +3753,100 @@ msgid "" " (Q)uit and save changes to sudoers file (DANGER!)\n" msgstr "" -#: plugins/sudoers/visudo.c:843 +#: plugins/sudoers/visudo.c:907 #, c-format msgid "unable to run %s" msgstr "" -#: plugins/sudoers/visudo.c:869 +#: plugins/sudoers/visudo.c:938 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "" -#: plugins/sudoers/visudo.c:876 +#: plugins/sudoers/visudo.c:949 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "" -#: plugins/sudoers/visudo.c:901 plugins/sudoers/visudo_json.c:1046 -#, c-format -msgid "failed to parse %s file, unknown error" -msgstr "" - -#: plugins/sudoers/visudo.c:917 plugins/sudoers/visudo_json.c:1055 -#, c-format -msgid "parse error in %s near line %d\n" -msgstr "" - -#: plugins/sudoers/visudo.c:920 plugins/sudoers/visudo_json.c:1058 -#, c-format -msgid "parse error in %s\n" -msgstr "" - -#: plugins/sudoers/visudo.c:928 plugins/sudoers/visudo.c:935 +#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 #, c-format msgid "%s: parsed OK\n" msgstr "" -#: plugins/sudoers/visudo.c:982 +#: plugins/sudoers/visudo.c:1023 #, c-format msgid "%s busy, try again later" msgstr "" -#: plugins/sudoers/visudo.c:1078 -#, c-format -msgid "Error: cycle in %s `%s'" -msgstr "" - -#: plugins/sudoers/visudo.c:1079 -#, c-format -msgid "Warning: cycle in %s `%s'" -msgstr "" - -#: plugins/sudoers/visudo.c:1083 -#, c-format -msgid "Error: %s `%s' referenced but not defined" -msgstr "" - -#: plugins/sudoers/visudo.c:1084 -#, c-format -msgid "Warning: %s `%s' referenced but not defined" +#: plugins/sudoers/visudo.c:1027 +msgid "Edit anyway? [y/N]" msgstr "" -#: plugins/sudoers/visudo.c:1227 +#: plugins/sudoers/visudo.c:1128 #, c-format -msgid "Warning: unused %s `%s'" +msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "" -#: plugins/sudoers/visudo.c:1340 +#: plugins/sudoers/visudo.c:1240 #, c-format msgid "" "%s - safely edit the sudoers file\n" "\n" msgstr "" -#: plugins/sudoers/visudo.c:1342 +#: plugins/sudoers/visudo.c:1242 msgid "" "\n" "Options:\n" " -c, --check check-only mode\n" " -f, --file=sudoers specify sudoers file location\n" " -h, --help display help message and exit\n" +" -I, --no-includes do not edit include files\n" " -q, --quiet less verbose (quiet) syntax error messages\n" " -s, --strict strict syntax checking\n" " -V, --version display version information and exit\n" -" -x, --export=output_file write sudoers in JSON format to output_file" msgstr "" -#: plugins/sudoers/visudo_json.c:1032 -#, c-format -msgid "%s: input and output files must be different" +#: toke.l:189 +msgid "empty string" +msgstr "" + +#: toke.l:201 toke.l:571 +msgid "empty group" +msgstr "" + +#: toke.l:211 toke.l:569 +msgid "empty netgroup" +msgstr "" + +#: toke.l:289 +msgid "unterminated regular expression" msgstr "" -#: toke.l:904 +#: toke.l:363 toke.l:375 toke.l:387 toke.l:403 toke.l:422 toke.l:462 +#, fuzzy +#| msgid "invalid authentication type" +msgid "invalid line continuation" +msgstr "некорректный тип аутентификации" + +#: toke.l:608 toke.l:620 +msgid "invalid IPv6 address" +msgstr "" + +#: toke.l:868 +msgid "unexpected line break in string" +msgstr "" + +#: toke.l:1218 msgid "too many levels of includes" msgstr "слишком много уровней включения" + +#~ msgid "" +#~ "\n" +#~ "LDAP Role: UNKNOWN\n" +#~ msgstr "" +#~ "\n" +#~ "Роль LDAP: НЕИЗВЕСТНО\n" + +#~ msgid " Order: %s\n" +#~ msgstr " Порядок: %s\n" diff --git a/plugins/sudoers/po/sudoers.pot b/plugins/sudoers/po/sudoers.pot index 964702913e..1b28d2ec61 100644 --- a/plugins/sudoers/po/sudoers.pot +++ b/plugins/sudoers/po/sudoers.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12\n" +"Project-Id-Version: sudo 1.9.13\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-10 09:13-0600\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "" @@ -47,28 +47,28 @@ msgstr "" #: gram.y:750 gram.y:762 gram.y:781 gram.y:944 gram.y:949 gram.y:957 gram.y:971 #: gram.y:977 gram.y:1099 gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 #: gram.y:1163 gram.y:1172 gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 -#: gram.y:1827 lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: gram.y:1827 lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 -#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 -#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 -#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 -#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 -#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 -#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 -#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 -#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 -#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 -#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 -#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 #: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 #: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 #: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 @@ -80,9 +80,9 @@ msgstr "" #: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 #: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 #: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:213 -#: logsrvd/logsrvd_journal.c:214 logsrvd/logsrvd_journal.c:270 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_journal.c:432 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 #: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 #: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 #: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 @@ -123,67 +123,67 @@ msgstr "" #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 -#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 -#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 -#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 -#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 -#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 -#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 -#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 -#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 -#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 -#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 -#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 -#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 -#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 -#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 -#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 #: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 #: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 @@ -192,8 +192,8 @@ msgstr "" #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 #: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 -#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 -#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "" @@ -230,15 +230,15 @@ msgstr "" msgid "invalid notafter value" msgstr "" -#: gram.y:844 plugins/sudoers/policy.c:383 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "" -#: gram.y:846 plugins/sudoers/policy.c:385 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "" -#: gram.y:967 plugins/sudoers/sudoers.c:1033 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "" @@ -253,34 +253,33 @@ msgstr "" msgid "Alias \"%s\" already defined" msgstr "" -#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 -#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 -#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 -#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 -#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 -#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 -#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 -#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 -#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 -#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 -#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 -#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 -#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 -#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 #: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 #: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 #: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 @@ -292,11 +291,11 @@ msgstr "" #: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 #: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 #: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 -#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 -#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:125 +#: logsrvd/logsrvd_journal.c:216 logsrvd/logsrvd_journal.c:246 +#: logsrvd/logsrvd_journal.c:250 logsrvd/logsrvd_journal.c:258 +#: logsrvd/logsrvd_journal.c:281 logsrvd/logsrvd_journal.c:285 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_local.c:215 #: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 #: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 #: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 @@ -334,80 +333,80 @@ msgstr "" #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 -#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 -#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 -#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 -#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 -#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 -#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 -#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 -#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 -#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 -#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 -#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 -#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 -#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 -#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 -#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 -#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 -#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 #: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 #: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 @@ -416,68 +415,48 @@ msgstr "" #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 #: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 #: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 -#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 -#: toke.l:1155 toke.l:1218 toke.l:1226 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 -#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 -#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 -#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 toke.l:987 -#: toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "" #: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "" @@ -495,64 +474,64 @@ msgstr "" msgid "missing double quote in name" msgstr "" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "" @@ -591,14 +570,14 @@ msgstr "" msgid "%s exists but is not a directory (0%o)" msgstr "" -#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 #: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "" -#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 -#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "" @@ -630,8 +609,8 @@ msgstr "" msgid "%s: protocol error: NULL value found in %s" msgstr "" -#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 -#: plugins/sudoers/policy.c:591 +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 msgid "unable to generate UUID" msgstr "" @@ -683,27 +662,27 @@ msgstr "" msgid "invalid I/O log %s: %s referenced but not present" msgstr "" -#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "" -#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 #: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 #: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 #: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 #: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 -#: plugins/sudoers/visudo.c:971 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "" #: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 -#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "" @@ -713,7 +692,7 @@ msgstr "" msgid "unable to copy %s/%s to %s/%s: %s" msgstr "" -#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "" @@ -746,28 +725,28 @@ msgstr "" #: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 #: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 #: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 -#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 #: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 #: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 #: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 #: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 #: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 #: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 -#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 -#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 #: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 #: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 #: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 -#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 -#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 -#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 -#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 -#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "" @@ -827,14 +806,14 @@ msgstr "" msgid "invalid CommandSuspend" msgstr "" -#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 #: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 -#: plugins/sudoers/log_client.c:1583 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "" -#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 #: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" @@ -870,8 +849,8 @@ msgstr "" msgid "client message too large: %zu" msgstr "" -#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 -#: logsrvd/logsrvd_journal.c:257 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "" @@ -936,23 +915,23 @@ msgid "invalid random drop value: %s" msgstr "" #: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 #: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "" -#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 -#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "" #: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" @@ -1026,7 +1005,7 @@ msgid "%s:%d [%s] illegal key: %s" msgstr "" #: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1029 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "" @@ -1039,49 +1018,49 @@ msgstr "" msgid "unable to initialize relay TLS context" msgstr "" -#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 -#: logsrvd/logsrvd_journal.c:426 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "" -#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 -#: plugins/sudoers/visudo.c:1026 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "" -#: logsrvd/logsrvd_journal.c:153 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "" -#: logsrvd/logsrvd_journal.c:161 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "" -#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 -#: logsrvd/logsrvd_journal.c:462 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "" -#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "" -#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 -#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "" -#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 -#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "" -#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "" -#: logsrvd/logsrvd_journal.c:440 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "" @@ -1139,7 +1118,7 @@ msgstr "" #: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 #: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 -#: plugins/sudoers/sudoreplay.c:351 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "" @@ -1174,7 +1153,7 @@ msgid "%s: invalid ServerHello, missing server_id" msgstr "" #: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 -#: plugins/sudoers/log_client.c:1469 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "" @@ -1287,35 +1266,35 @@ msgstr "" msgid "unable to get server IP addr" msgstr "" -#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "" -#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 -#: plugins/sudoers/iolog.c:1026 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "" #: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 -#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 -#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "" -#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "" -#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "" -#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "" @@ -1324,7 +1303,7 @@ msgstr "" msgid "timeout reading from server" msgstr "" -#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "" @@ -1332,7 +1311,7 @@ msgstr "" msgid "premature EOF" msgstr "" -#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "" @@ -1419,10 +1398,10 @@ msgstr "" #: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 #: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 -#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 -#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 -#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 -#: plugins/sudoers/policy.c:124 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "" @@ -1576,11 +1555,11 @@ msgstr "" msgid "User ID locked for SecurID Authentication" msgstr "" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "" @@ -1588,11 +1567,11 @@ msgstr "" msgid "SecurID communication failed" msgstr "" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "" @@ -1658,9 +1637,15 @@ msgid "" "\n" msgstr "" -#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 -#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "" @@ -1717,8 +1702,7 @@ msgstr "" #: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 #: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 -#: plugins/sudoers/visudo.c:975 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "" @@ -1747,12 +1731,12 @@ msgstr "" msgid "invalid filter: %s" msgstr "" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 #: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" @@ -1787,17 +1771,36 @@ msgid "" " -V, --version display version information and exit" msgstr "" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "" @@ -2627,8 +2630,8 @@ msgstr "" msgid "value \"%s\" is invalid for option \"%s\"" msgstr "" -#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 -#: plugins/sudoers/policy.c:217 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "" @@ -2643,15 +2646,24 @@ msgstr "" msgid "values for \"%s\" must start with a '/'" msgstr "" +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "" + #: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "" -#: plugins/sudoers/env.c:1109 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "" -#: plugins/sudoers/env.c:1183 +#: plugins/sudoers/env.c:1192 #, c-format msgid "" "sorry, you are not allowed to set the following environment variables: %s" @@ -2667,27 +2679,17 @@ msgstr "" msgid "%s: read error" msgstr "" -#: plugins/sudoers/group_plugin.c:169 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "" - -#: plugins/sudoers/group_plugin.c:173 -#, c-format -msgid "%s must only be writable by owner" -msgstr "" - -#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "" -#: plugins/sudoers/group_plugin.c:197 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "" -#: plugins/sudoers/group_plugin.c:202 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "" @@ -2710,10 +2712,10 @@ msgstr "" msgid "unable to update sequence file" msgstr "" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 -#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 -#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 -#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "" @@ -2723,20 +2725,20 @@ msgstr "" msgid "unable to create %s/%s" msgstr "" -#: plugins/sudoers/iolog.c:957 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "" -#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 -#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 -#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "" -#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 -#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "" @@ -2755,18 +2757,18 @@ msgstr "" msgid "you must set TLS_CERT in %s to use SSL" msgstr "" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "" "start_tls specified but LDAP libs do not support ldap_start_tls_s() or " "ldap_start_tls_s_np()" msgstr "" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "" @@ -2807,7 +2809,7 @@ msgid "unable to send audit message" msgstr "" #: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 -#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "" @@ -2849,20 +2851,20 @@ msgstr "" msgid "TLS handshake was unsuccessful" msgstr "" -#: plugins/sudoers/log_client.c:1211 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "" -#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "" -#: plugins/sudoers/log_client.c:1841 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "" -#: plugins/sudoers/log_client.c:1995 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "" @@ -2902,46 +2904,46 @@ msgstr "" msgid "This incident has been reported to the administrator.\n" msgstr "" -#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 -#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 -#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 -#: plugins/sudoers/sudoers.c:807 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "" -#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" "Use \"sudo ./%s\" if this is the \"%s\" you wish to run." msgstr "" -#: plugins/sudoers/logging.c:387 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" msgstr[0] "" msgstr[1] "" -#: plugins/sudoers/logging.c:477 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "" -#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "" -#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "" -#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "" -#: plugins/sudoers/logging.c:1062 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "" @@ -2956,51 +2958,51 @@ msgstr "" msgid "digest for %s (%s) is not in %s form" msgstr "" -#: plugins/sudoers/parse.c:591 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" "LDAP Role: %s\n" msgstr "" -#: plugins/sudoers/parse.c:594 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" msgstr "" -#: plugins/sudoers/parse.c:596 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr "" -#: plugins/sudoers/parse.c:611 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr "" -#: plugins/sudoers/parse.c:621 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr "" -#: plugins/sudoers/parse.c:685 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr "" -#: plugins/sudoers/parse.c:876 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "" -#: plugins/sudoers/parse.c:894 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "" -#: plugins/sudoers/parse.c:912 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "" -#: plugins/sudoers/parse.c:927 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "" @@ -3015,91 +3017,91 @@ msgstr "" msgid "invalid LDIF attribute: %s" msgstr "" -#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "" -#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "" -#: plugins/sudoers/policy.c:526 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "" -#: plugins/sudoers/policy.c:530 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "" -#: plugins/sudoers/policy.c:534 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "" -#: plugins/sudoers/policy.c:538 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "" -#: plugins/sudoers/policy.c:730 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "" -#: plugins/sudoers/policy.c:914 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "" -#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 -#: plugins/sudoers/visudo.c:902 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "" -#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 -#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "" -#: plugins/sudoers/policy.c:1292 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "" -#: plugins/sudoers/policy.c:1294 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "" -#: plugins/sudoers/policy.c:1298 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" "Sudoers path: %s\n" msgstr "" -#: plugins/sudoers/policy.c:1301 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "" -#: plugins/sudoers/policy.c:1303 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "" -#: plugins/sudoers/policy.c:1304 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "" -#: plugins/sudoers/policy.c:1337 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "" -#: plugins/sudoers/policy.c:1355 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "" @@ -3146,24 +3148,24 @@ msgstr "" msgid "unable to cache group %s, already exists" msgstr "" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "" @@ -3275,220 +3277,224 @@ msgstr "" msgid "sudoers specifies that root is not allowed to sudo" msgstr "" -#: plugins/sudoers/sudoers.c:476 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "" -#: plugins/sudoers/sudoers.c:477 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "" -#: plugins/sudoers/sudoers.c:537 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "" -#: plugins/sudoers/sudoers.c:552 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "" -#: plugins/sudoers/sudoers.c:553 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "" -#: plugins/sudoers/sudoers.c:560 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "" -#: plugins/sudoers/sudoers.c:658 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "" -#: plugins/sudoers/sudoers.c:660 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "" -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "" -#: plugins/sudoers/sudoers.c:671 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "" -#: plugins/sudoers/sudoers.c:673 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "" -#: plugins/sudoers/sudoers.c:681 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "" -#: plugins/sudoers/sudoers.c:683 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "" -#: plugins/sudoers/sudoers.c:1073 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "" -#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "" -#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "" -#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "" -#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "" -#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "" -#: plugins/sudoers/sudoers.c:1194 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "" -#: plugins/sudoers/sudoers.c:1213 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "" -#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "" -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "" -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "" -#: plugins/sudoers/sudoreplay.c:1650 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "" -#: plugins/sudoers/sudoreplay.c:1652 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "" -#: plugins/sudoers/sudoreplay.c:1666 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" "\n" msgstr "" -#: plugins/sudoers/sudoreplay.c:1668 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3558,7 +3564,7 @@ msgstr "" msgid "please consider using the cvtsudoers utility instead" msgstr "" -#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "" @@ -3568,81 +3574,81 @@ msgstr "" msgid "contents of edit session left in %s" msgstr "" -#: plugins/sudoers/visudo.c:402 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "" -#: plugins/sudoers/visudo.c:404 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "" -#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 #, c-format msgid "unable to stat %s" msgstr "" -#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "" -#: plugins/sudoers/visudo.c:565 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:578 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:600 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:645 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "" -#: plugins/sudoers/visudo.c:658 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "" -#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "" -#: plugins/sudoers/visudo.c:809 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "" -#: plugins/sudoers/visudo.c:820 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:827 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:847 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "" -#: plugins/sudoers/visudo.c:861 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3650,48 +3656,48 @@ msgid "" " (Q)uit and save changes to sudoers file (DANGER!)\n" msgstr "" -#: plugins/sudoers/visudo.c:907 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "" -#: plugins/sudoers/visudo.c:938 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "" -#: plugins/sudoers/visudo.c:949 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "" -#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "" -#: plugins/sudoers/visudo.c:1023 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "" -#: plugins/sudoers/visudo.c:1027 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "" -#: plugins/sudoers/visudo.c:1240 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" "\n" msgstr "" -#: plugins/sudoers/visudo.c:1242 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" @@ -3728,10 +3734,10 @@ msgstr "" msgid "invalid IPv6 address" msgstr "" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "" diff --git a/plugins/sudoers/po/sv.mo b/plugins/sudoers/po/sv.mo index c9591dc861..27f9f2a287 100644 Binary files a/plugins/sudoers/po/sv.mo and b/plugins/sudoers/po/sv.mo differ diff --git a/plugins/sudoers/po/sv.po b/plugins/sudoers/po/sv.po index cbdc47a10f..2e3bc0615c 100644 --- a/plugins/sudoers/po/sv.po +++ b/plugins/sudoers/po/sv.po @@ -1,16 +1,16 @@ # Swedish translation for sudoers. -# Copyright © 2012, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc. +# Copyright © 2012, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Free Software Foundation, Inc. # This file is put in the public domain. # Daniel Nylander , 2012. -# Sebastian Rasmussen , 2016, 2017, 2018, 2019, 2020, 2021, 2022. +# Sebastian Rasmussen , 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023. # Luna Jernberg , 2021. # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.12b2\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-10 09:13-0600\n" -"PO-Revision-Date: 2022-10-11 16:19+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 13:20+0100\n" "Last-Translator: Sebastian Rasmussen \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -19,9 +19,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.2.2\n" -#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "syntaxfel" @@ -52,73 +52,72 @@ msgstr "Försök igen." #: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 #: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 #: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 -#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 -#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 -#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 -#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 -#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 -#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 -#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 -#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 -#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 -#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 -#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 -#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 -#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 -#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 -#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 -#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 -#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 -#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 -#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 -#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 -#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 -#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 -#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 -#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 -#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 -#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 -#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 -#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 -#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 -#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 -#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 -#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 -#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 -#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 -#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 -#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 -#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 -#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 -#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 -#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 -#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 -#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 -#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 -#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 -#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:52 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 +#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 +#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 +#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 +#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 +#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 +#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 +#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 +#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 +#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 +#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 +#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 +#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -129,67 +128,67 @@ msgstr "Försök igen." #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 -#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 -#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 -#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 -#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 -#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 -#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 -#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 -#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 -#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 -#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 -#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 -#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 -#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 -#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 -#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 #: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 #: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 @@ -198,8 +197,8 @@ msgstr "Försök igen." #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 #: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 -#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 -#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "kan inte allokera minne" @@ -236,15 +235,15 @@ msgstr "ogiltigt notbefore-värde" msgid "invalid notafter value" msgstr "ogiltigt notafter-värde" -#: gram.y:844 plugins/sudoers/policy.c:383 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "tidsgränsvärde för stort" -#: gram.y:846 plugins/sudoers/policy.c:385 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "ogiltigt värde för tidsgräns" -#: gram.y:967 plugins/sudoers/sudoers.c:1033 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "kommandot för långt" @@ -259,76 +258,75 @@ msgstr "%s:%d:%d: %s\n" msgid "Alias \"%s\" already defined" msgstr "Aliaset ”%s” är redan definierat" -#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 -#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 -#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 -#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 -#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 -#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 -#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 -#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 -#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 -#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 -#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 -#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 -#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 -#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 -#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 -#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 -#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 -#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 -#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 -#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 -#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 -#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 -#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 -#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 -#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 -#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 -#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 -#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 -#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 -#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 -#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 -#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -341,80 +339,80 @@ msgstr "Aliaset ”%s” är redan definierat" #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 -#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 -#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 -#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 -#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 -#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 -#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 -#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 -#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 -#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 -#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 -#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 -#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 -#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 -#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 -#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 -#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 -#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 #: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 #: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 @@ -423,68 +421,48 @@ msgstr "Aliaset ”%s” är redan definierat" #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 #: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 #: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 -#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 -#: toke.l:1155 toke.l:1218 toke.l:1226 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 -#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 -#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 -#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "internt fel, %s spill" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "kan inte duplicera stdin: %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "kan inte köra %s: %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "kan inte grena process" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "kan inte grena process: %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "kan inte öppna rör: %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (kommando fortsätter) %s" #: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "ogiltigt reguljärt uttryck ”%s”: %s" @@ -502,64 +480,64 @@ msgstr "JSON_ARRAY för stor" msgid "missing double quote in name" msgstr "saknar citationstecken i namn" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "saknar JSON_OBJECT" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "förväntade JSON_OBJECT, fick %d" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "json-stack utarmad (max %u ramar)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "objekt måste bestå av namn:värde-par" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "saknar separator mellan värden" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "omatchad avslutningsklammerparentes" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "oväntad array" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "omatchad avslutningsklammer" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "oväntad sträng" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "saknar kolon efter namn" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "oväntad boolean" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "oväntat null" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "oväntat nummer" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "tolkningsfel" @@ -598,14 +576,14 @@ msgstr "%s: runas-gruppfältet saknas" msgid "%s exists but is not a directory (0%o)" msgstr "%s finns men är inte en katalog (0%o)" -#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 #: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "kan inte skapa katalogen %s" -#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 -#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "kan inte ändra läge för %s till 0%o" @@ -637,8 +615,8 @@ msgstr "%s: protokollfel: fel typ för %s" msgid "%s: protocol error: NULL value found in %s" msgstr "%s: protokollfel: NULL-värde hittat i %s" -#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 -#: plugins/sudoers/policy.c:591 +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 msgid "unable to generate UUID" msgstr "kan inte generera UUID" @@ -690,27 +668,27 @@ msgstr "fel vid tömning av iofd %d: %s" msgid "invalid I/O log %s: %s referenced but not present" msgstr "ogiltig I/O-logg %s: %s refererad men inte närvarande" -#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s: kan inte hitta omstartspunkt [%lld, %ld]" -#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 #: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 #: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 #: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 #: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 -#: plugins/sudoers/visudo.c:971 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "kan inte öppna %s" #: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 -#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "kan inte öppna %s/%s" @@ -720,7 +698,7 @@ msgstr "kan inte öppna %s/%s" msgid "unable to copy %s/%s to %s/%s: %s" msgstr "kan inte kopiera %s/%s till %s/%s: %s" -#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "kan inte byta namn på %s till %s" @@ -753,28 +731,28 @@ msgstr "servermeddelande för långt: %zu" #: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 #: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 #: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 -#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 #: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 #: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 #: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 #: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 #: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 #: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 -#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 -#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 #: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 #: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 #: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 -#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 -#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 -#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 -#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 -#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "kan inte lägga till händelse till kö" @@ -834,14 +812,14 @@ msgstr "ogiltig ChangeWindowSize" msgid "invalid CommandSuspend" msgstr "ogiltig CommandSuspend" -#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 #: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 -#: plugins/sudoers/log_client.c:1583 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "kan inte packa upp %s storlek %zu" -#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 #: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" @@ -877,8 +855,8 @@ msgstr "EOF från %s utan korrekt TLS-nedstängning" msgid "client message too large: %zu" msgstr "klientmeddelande för stort: %zu" -#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 -#: logsrvd/logsrvd_journal.c:257 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "klientmeddelande för stort" @@ -943,23 +921,23 @@ msgid "invalid random drop value: %s" msgstr "ogiltigt slumpmässigt avbrottsvärde: %s" #: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 #: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s version %s\n" -#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 -#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "okänd användare %s" #: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" @@ -1033,7 +1011,7 @@ msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] ogiltig nyckel: %s" #: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1029 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "kan inte öppna loggfil %s" @@ -1046,49 +1024,49 @@ msgstr "kan inte initiera TLS-serverkontext" msgid "unable to initialize relay TLS context" msgstr "kan inte initiera TLS-reläkontext" -#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 -#: logsrvd/logsrvd_journal.c:426 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "kan inte skapa journalfil" -#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 -#: plugins/sudoers/visudo.c:1026 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "kan inte låsa %s" -#: logsrvd/logsrvd_journal.c:153 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "kan inte låsa journalfil" -#: logsrvd/logsrvd_journal.c:161 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "kan inte öppna journalfil" -#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 -#: logsrvd/logsrvd_journal.c:462 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "kan inte skriva journalfil" -#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "kan inte byta namn på journalfil" -#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 -#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "oväntat filslut vid läsning av journalfil" -#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 -#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "fel vid inläsning av journalfil" -#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "ogiltig journalfil, kunde inte starta om" -#: logsrvd/logsrvd_journal.c:440 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "kan inte söka till [%lld, %ld] i journalfil %s" @@ -1146,7 +1124,7 @@ msgstr "kan inte formatera tidsbuffert, längd %d" #: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 #: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 -#: plugins/sudoers/sudoreplay.c:351 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" @@ -1181,7 +1159,7 @@ msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: ogiltigt ServerHello, saknar server_id" #: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 -#: plugins/sudoers/log_client.c:1469 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "ogiltigt ServerHello" @@ -1294,35 +1272,35 @@ msgstr "kan inte slå upp %s:%s: %s" msgid "unable to get server IP addr" msgstr "kan inte hämta server-IP-adress" -#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "kan inte läsa %s/%s: %s" -#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 -#: plugins/sudoers/iolog.c:1026 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "oväntad I/O-händelse %d" #: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 -#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 -#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: oväntat tillstånd %d" -#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "felmeddelande mottaget från server: %s" -#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "avbrottsmeddelande mottaget från server: %s" -#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: oväntat type_case-värde %d" @@ -1331,7 +1309,7 @@ msgstr "%s: oväntat type_case-värde %d" msgid "timeout reading from server" msgstr "tidsgräns passerad vid läsning från server" -#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "värdnamn matchar inte certifikat" @@ -1339,7 +1317,7 @@ msgstr "värdnamn matchar inte certifikat" msgid "premature EOF" msgstr "oväntad EOF" -#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "servermeddelande för långt: %u" @@ -1426,10 +1404,10 @@ msgstr "kunde inte sätta minsta protokollversion till TLS 1.2: %s" #: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 #: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 -#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 -#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 -#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 -#: plugins/sudoers/policy.c:124 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "kan inte hämta tid på dagen" @@ -1583,11 +1561,11 @@ msgstr "kan inte kontakta SecurID-servern" msgid "User ID locked for SecurID Authentication" msgstr "Användar-ID låst för SecurID-autentisering" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "ogiltig längd för användarnamn för SecurID" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "ogiltigt autentiseringshandtag för SecurID" @@ -1595,11 +1573,11 @@ msgstr "ogiltigt autentiseringshandtag för SecurID" msgid "SecurID communication failed" msgstr "SecurID-kommunikation misslyckades" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "okänt SecurID-fel" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "ogiltig lösenordslängd för SecurID" @@ -1669,9 +1647,17 @@ msgstr "" " #3) Med stor makt kommer ett stort ansvar.\n" "\n" -#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 -#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"Av säkerhetsskäl kommer lösenordet du skriver in inte att synas.\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "okänt uid %u" @@ -1728,8 +1714,7 @@ msgstr "%s: in- och utmatningsfiler måste vara olika" #: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 #: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 -#: plugins/sudoers/visudo.c:975 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "kan inte initiera sudoers standardvärden" @@ -1758,12 +1743,12 @@ msgstr "ogiltig undertryckningstyp: %s" msgid "invalid filter: %s" msgstr "ogiltigt filter: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "misslyckades med att tolka %s-filen, okänt fel" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 #: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" @@ -1818,17 +1803,36 @@ msgstr "" " -s, --suppress=avsnitt undertryck utmatning av vissa avsnitt\n" " -V, --version visa versionsinformation och avsluta" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "internt fel, %s spill" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "kan inte hämta GMT-tid" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "kan inte formatera tidsstämpel" @@ -2642,8 +2646,8 @@ msgstr "ogiltig Defaults-typ 0x%x för flagga ”%s”" msgid "value \"%s\" is invalid for option \"%s\"" msgstr "värdet ”%s” är ogiltigt för flaggan ”%s”" -#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 -#: plugins/sudoers/policy.c:217 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "sökvägsnamn för ”%s” för långt" @@ -2658,15 +2662,24 @@ msgstr "värden för ”%s” måste börja med ett ”/”, ”~” eller ”* msgid "values for \"%s\" must start with a '/'" msgstr "värden för ”%s” måste börja med ett ”/”" +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "ignorerar textredigerare: %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "textredigerarargument får inte innehålla ”--”" + #: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: trasig envp, längd stämmer inte" -#: plugins/sudoers/env.c:1109 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "kan inte återuppbygga miljön" -#: plugins/sudoers/env.c:1183 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "du får inte lov att ställa in följande miljövariabler: %s" @@ -2681,27 +2694,17 @@ msgstr "typ %d av kontrollsumma stöds inte för %s" msgid "%s: read error" msgstr "%s: läsfel" -#: plugins/sudoers/group_plugin.c:169 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s måste ägas av uid %d" - -#: plugins/sudoers/group_plugin.c:173 -#, c-format -msgid "%s must only be writable by owner" -msgstr "%s får endast vara skrivbar av ägaren" - -#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "kan inte läsa in %s: %s" -#: plugins/sudoers/group_plugin.c:197 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "kan inte hitta symbolen ”group_plugin” i %s" -#: plugins/sudoers/group_plugin.c:202 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: inkompatibel gruppinsticksmodul huvudversion %d, förväntade %d" @@ -2724,10 +2727,10 @@ msgstr "Lokala IP-adress- och nätmaskpar:\n" msgid "unable to update sequence file" msgstr "kan inte uppdatera sekvensfil" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 -#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 -#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 -#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "kan inte skriva till I/O-loggfil: %s" @@ -2737,20 +2740,20 @@ msgstr "kan inte skriva till I/O-loggfil: %s" msgid "unable to create %s/%s" msgstr "kan inte skapa %s/%s" -#: plugins/sudoers/iolog.c:957 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: internt fel, I/O-loggfil för händelse %d inte öppen" -#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 -#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 -#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "kan inte läsa klockan" -#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 -#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: internt fel, ogiltig signal %d" @@ -2769,16 +2772,16 @@ msgstr "kan inte initiera SSL-certifikat och nyckeldatabas: %s" msgid "you must set TLS_CERT in %s to use SSL" msgstr "du måste ställa in TLS_CERT i %s för att använda SSL" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "kan inte initiera LDAP: %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls angivet men LDAP-bibliotek har inte stöd för ldap_start_tls_s() eller ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "ogiltigt sudoOrder-attribut: %s" @@ -2819,7 +2822,7 @@ msgid "unable to send audit message" msgstr "kan inte skicka granskningsmeddelande" #: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 -#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "fel i händelseloop" @@ -2861,20 +2864,20 @@ msgstr "TLS-initiering misslyckades" msgid "TLS handshake was unsuccessful" msgstr "TLS-handskakning misslyckades" -#: plugins/sudoers/log_client.c:1211 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: internt fel, ogiltig avslutningskod %d" -#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "förlorade kontakten med loggservern" -#: plugins/sudoers/log_client.c:1841 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "saknar skrivbuffert" -#: plugins/sudoers/log_client.c:1995 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "kan inte ansluta till loggserver" @@ -2914,15 +2917,15 @@ msgstr "Tyvärr, användaren %s tillåts inte att köra ”%s%s%s” som %s%s%s msgid "This incident has been reported to the administrator.\n" msgstr "Denna incident har rapporterats till administratören.\n" -#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 -#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 -#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 -#: plugins/sudoers/sudoers.c:807 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s: kommandot hittades inte" -#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2931,31 +2934,31 @@ msgstr "" "ignorerar ”%s” som hittades i ”.”\n" "Använd ”sudo ./%s” om detta är den ”%s” som du vill köra." -#: plugins/sudoers/logging.c:387 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" msgstr[0] "%u felaktigt lösenordsförsök" msgstr[1] "%u felaktiga lösenordsförsök" -#: plugins/sudoers/logging.c:477 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "autentiseringsfel" -#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "ett lösenord krävs" -#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "problem vid tolkning av sudoers" -#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1062 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "kan inte skriva till loggfil: %s" @@ -2970,7 +2973,7 @@ msgstr "kontrollsumma för %s (%s) felaktig längd %zu, förväntade %zu" msgid "digest for %s (%s) is not in %s form" msgstr "kontrollsumma för %s (%s) är inte på %s-form" -#: plugins/sudoers/parse.c:591 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2979,7 +2982,7 @@ msgstr "" "\n" "LDAP-roll: %s\n" -#: plugins/sudoers/parse.c:594 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2987,38 +2990,38 @@ msgstr "" "\n" "Sudoers-post:\n" -#: plugins/sudoers/parse.c:596 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " KörSomAnvändare: " -#: plugins/sudoers/parse.c:611 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " KörSomGrupper: " -#: plugins/sudoers/parse.c:621 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " Flaggor: " -#: plugins/sudoers/parse.c:685 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " Kommandon:\n" -#: plugins/sudoers/parse.c:876 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "Matchande standardposter för %s på %s:\n" -#: plugins/sudoers/parse.c:894 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "Runas- och kommando-specifika standardvärden för %s:\n" -#: plugins/sudoers/parse.c:912 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "Användare %s får köra följande kommandon på %s:\n" -#: plugins/sudoers/parse.c:927 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Användaren %s tillåts inte att köra sudo på %s.\n" @@ -3033,64 +3036,64 @@ msgstr "hoppar över ofullständig sudoRole: cn: %s" msgid "invalid LDIF attribute: %s" msgstr "ogiltigt LDIF-attribut: %s" -#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "ogiltigt %.*s inställt av sudo-framände" -#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "kan inte tolka nätverksadresslista" -#: plugins/sudoers/policy.c:526 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "användarnamn inte inställt av sudo-framände" -#: plugins/sudoers/policy.c:530 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "användar-ID inte inställt av sudo-framände" -#: plugins/sudoers/policy.c:534 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "grupp-ID inte inställt av sudo-framände" -#: plugins/sudoers/policy.c:538 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "värdnamn inte inställt av sudo-framände" -#: plugins/sudoers/policy.c:730 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "ogiltig arbetskatalog: %s" -#: plugins/sudoers/policy.c:914 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "ogiltig chroot-katalog: %s" -#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 -#: plugins/sudoers/visudo.c:902 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "kan inte köra %s" -#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 -#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: ogiltiga lägesflaggor från sudo-framände: 0x%x" -#: plugins/sudoers/policy.c:1292 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Sudoers policyinsticksmodul version %s\n" -#: plugins/sudoers/policy.c:1294 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Sudoers-filgrammatik version %d\n" -#: plugins/sudoers/policy.c:1298 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3099,27 +3102,27 @@ msgstr "" "\n" "Sökväg till sudoers: %s\n" -#: plugins/sudoers/policy.c:1301 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "Sökväg till nsswitch: %s\n" -#: plugins/sudoers/policy.c:1303 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "Sökväg till ldap.conf: %s\n" -#: plugins/sudoers/policy.c:1304 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "Sökväg till ldap.secret: %s\n" -#: plugins/sudoers/policy.c:1337 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "kan inte registrera krok av typ %d (version %d.%d)" -#: plugins/sudoers/policy.c:1355 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "kan inte avregistrera krok av typ %d (version %d.%d)" @@ -3166,24 +3169,24 @@ msgstr "kan inte cacha grupp %s" msgid "unable to cache group %s, already exists" msgstr "kan inte cacha grupp %s, finns redan" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "kan inte cacha grupplista för %s, finns redan" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "kan inte cacha grupplista för %s" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "kan inte tolka grupper för %s" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "kan inte tolka gids för %s" @@ -3295,213 +3298,217 @@ msgstr "inget kommando specificerat" msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers anger att root inte tillåts att använda sudo" -#: plugins/sudoers/sudoers.c:476 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "användare inte tillåten att åsidosätta closefrom-begränsning" -#: plugins/sudoers/sudoers.c:477 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "du tillåts inte att använda flaggan -C" -#: plugins/sudoers/sudoers.c:537 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "tidsstämpelägare (%s): Det finns ingen sådan användare" -#: plugins/sudoers/sudoers.c:552 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "ingen tty" -#: plugins/sudoers/sudoers.c:553 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "tyvärr, du måste ha en tty för att köra sudo" -#: plugins/sudoers/sudoers.c:560 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "ogiltigt skal för användare %s: %s" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "kommando i aktuell katalog" -#: plugins/sudoers/sudoers.c:658 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "”cd” är ett inbyggt shell-kommando, det kan inte köras direkt." -#: plugins/sudoers/sudoers.c:660 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "flaggan -s får inte användas för att köra ett privilegierat skal." -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "flaggan -D får inte användas för att köra ett kommando i en specifik katalog." -#: plugins/sudoers/sudoers.c:671 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "användare inte tillåten att ställa in en tidsgräns för kommandon" -#: plugins/sudoers/sudoers.c:673 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "tyvärr, du tillåts inte att ställa in en tidsgräns för kommandon" -#: plugins/sudoers/sudoers.c:681 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "användare inte tillåten att behålla miljön" -#: plugins/sudoers/sudoers.c:683 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "tyvärr, du tillåts inte att behålla miljövariabler" -#: plugins/sudoers/sudoers.c:1073 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "fel vid sättning av användarspecificerade miljövariabler" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit behöver inte köras via sudo" -#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "kan inte läsa %s" -#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s är inte en vanlig fil" -#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s ägs av uid %u, ska vara %u" -#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "%s är skrivbar för alla" -#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s ägs av gid %u, ska vara %u" -#: plugins/sudoers/sudoers.c:1194 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "endast root kan använda ”-c %s”" -#: plugins/sudoers/sudoers.c:1213 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "okänd inloggningsklass %s" -#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "kan inte slå upp värddatorn %s" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "ogiltig filterflagga: %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "ogiltig största väntan: %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "ogiltig hastighetsfaktor: %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "ogiltigt värde för tidsavstånd %s" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/tidsmätning: %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "Spelar upp sudo-session: %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "kan inte ställa in tty i råläge" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "Varning: din terminal är för liten för att korrekt spela upp loggen.\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "Logg-geometri är %d x %d, din terminals geometri är %d x %d." -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "Uppspelning avslutad, tryck på en tangent för att återställa terminalen." -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "tvetydigt uttryck ”%s”" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "omatchat ”)” i uttryck" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "okänt sökvillkor ”%s”" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s kräver ett argument" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "kunde inte tolka datumet ”%s”" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "omatchat ”(” i uttryck" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "ogiltigt avslutande ”or”" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "ogiltigt efterföljande ”!”" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "okänd söktyp %d" -#: plugins/sudoers/sudoreplay.c:1650 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "användning: %s [-hnRS] [-d kat] [-m num] [-s num] ID\n" -#: plugins/sudoers/sudoreplay.c:1652 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "användning: %s [-h] [-d kat] -l [sökuttryck]\n" -#: plugins/sudoers/sudoreplay.c:1666 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3510,7 +3517,7 @@ msgstr "" "%s - spela upp loggar från sudo-session\n" "\n" -#: plugins/sudoers/sudoreplay.c:1668 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3597,7 +3604,7 @@ msgstr "flaggan -x kommer att tas bort i en framtida version" msgid "please consider using the cvtsudoers utility instead" msgstr "överväg att använda verktyget cvtsudoers istället" -#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "tryck på retur för att redigera %s: " @@ -3607,82 +3614,82 @@ msgstr "tryck på retur för att redigera %s: " msgid "contents of edit session left in %s" msgstr "innehållet från redigeringssessionen lämnat i %s" -#: plugins/sudoers/visudo.c:402 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" -msgstr "angiven redigerare (%s) finns inte" +msgstr "angiven textredigerare (%s) finns inte" -#: plugins/sudoers/visudo.c:404 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "ingen textredigerare hittad (sökväg för textredigerare = %s)" -#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 #, c-format msgid "unable to stat %s" msgstr "kan inte ta status på %s" -#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "skrivfel" -#: plugins/sudoers/visudo.c:565 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "kan inte hämta filinformation för temporärfil (%s), %s oförändrad" # sebras: not an exact translation, but I think it captures the meaning of the original text. -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "temporärfil tom (%s), %s oförändrad" -#: plugins/sudoers/visudo.c:578 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" -msgstr "redigeraren (%s) misslyckades, %s är oförändrad" +msgstr "textredigeraren (%s) misslyckades, %s är oförändrad" -#: plugins/sudoers/visudo.c:600 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s oförändrad" -#: plugins/sudoers/visudo.c:645 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "kan inte återöppna temporärfil (%s), %s är oförändrad." -#: plugins/sudoers/visudo.c:658 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "kan inte tolka temporärfil (%s), okänt fel" -#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "kan inte ställa in (uid, gid) för %s till (%u, %u)" -#: plugins/sudoers/visudo.c:809 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s och %s finns inte på samma filsystem, använder mv för att byta namn" -#: plugins/sudoers/visudo.c:820 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "kommandot misslyckades: ”%s %s %s”, %s är oförändrad" -#: plugins/sudoers/visudo.c:827 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "fel vid namnbyte för %s, %s är oförändrad" -#: plugins/sudoers/visudo.c:847 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "Nu då? " -#: plugins/sudoers/visudo.c:861 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3694,41 +3701,41 @@ msgstr "" " avsluta (x) utan att spara ändringar i sudoers-filen\n" " Avsluta (Q) och spara ändringar i sudoers-filen (FARLIGT!)\n" -#: plugins/sudoers/visudo.c:907 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "kan inte köra %s" -#: plugins/sudoers/visudo.c:938 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: felaktig ägare (uid, gid) ska vara (%u, %u)\n" -#: plugins/sudoers/visudo.c:949 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: felaktiga rättigheter, bör vara läge 0%o\n" -#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s: tolkad OK\n" -#: plugins/sudoers/visudo.c:1023 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s är upptagen, försök igen senare" -#: plugins/sudoers/visudo.c:1027 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "Redigera ändå? [y/N]" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "Varning: %s:%d:%d: oanvänd %s ”%s”" -#: plugins/sudoers/visudo.c:1240 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3737,7 +3744,7 @@ msgstr "" "%s - redigera sudoers-filen på ett säkert sätt\n" "\n" -#: plugins/sudoers/visudo.c:1242 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" @@ -3783,14 +3790,20 @@ msgstr "ogiltig radfortsättning" msgid "invalid IPv6 address" msgstr "ogiltig IPv6-adress" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "oväntad radbrytning i sträng" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "för många nivåer av inkluderingar" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s måste ägas av uid %d" + +#~ msgid "%s must only be writable by owner" +#~ msgstr "%s får endast vara skrivbar av ägaren" + #~ msgid "%s:%d unknown key: %s" #~ msgstr "%s:%d okänd nyckel: %s" diff --git a/plugins/sudoers/po/uk.mo b/plugins/sudoers/po/uk.mo index 39da58385f..3344b38a6c 100644 Binary files a/plugins/sudoers/po/uk.mo and b/plugins/sudoers/po/uk.mo differ diff --git a/plugins/sudoers/po/uk.po b/plugins/sudoers/po/uk.po index ae3844bc03..45c864c142 100644 --- a/plugins/sudoers/po/uk.po +++ b/plugins/sudoers/po/uk.po @@ -1,13 +1,13 @@ # Ukrainian translation for sudoers. # This file is put in the public domain. # -# Yuri Chornoivan , 2011-2021, 2022. +# Yuri Chornoivan , 2011-2021, 2022, 2023. msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.12b2\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-10 09:13-0600\n" -"PO-Revision-Date: 2022-10-11 12:21+0300\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 21:00+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -18,7 +18,7 @@ msgstr "" "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Lokalize 20.12.0\n" -#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "синтаксична помилка" @@ -49,73 +49,72 @@ msgstr "Вибачте, повторіть спробу." #: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 #: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 #: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 -#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 #: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 -#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 -#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 -#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 -#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 -#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 -#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 -#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 -#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 -#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 -#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 -#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 -#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 -#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 -#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 -#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 -#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 -#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 -#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 -#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 -#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 -#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 -#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 -#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 -#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 -#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 -#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 -#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 -#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 -#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 -#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 -#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 -#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 -#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 -#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 -#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 -#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 -#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 -#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 -#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 -#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 -#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 -#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 -#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 -#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 -#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:52 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 +#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 +#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 +#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 +#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 +#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 +#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 +#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 +#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 +#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 +#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 +#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 +#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -126,67 +125,67 @@ msgstr "Вибачте, повторіть спробу." #: plugins/sudoers/cvtsudoers_merge.c:1158 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 -#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 -#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 -#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 -#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 -#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 -#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 -#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 -#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 -#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 -#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 -#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 -#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 -#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 -#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 -#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 -#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 -#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 #: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 #: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 #: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 @@ -195,8 +194,8 @@ msgstr "Вибачте, повторіть спробу." #: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 #: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 #: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 -#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 -#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "не вдалося отримати потрібний об’єм пам’яті" @@ -233,15 +232,15 @@ msgstr "некоректне значення notbefore" msgid "invalid notafter value" msgstr "некоректне значення notafter" -#: gram.y:844 plugins/sudoers/policy.c:383 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "значення часу очікування є надто великим" -#: gram.y:846 plugins/sudoers/policy.c:385 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "некоректне значення часу очікування" -#: gram.y:967 plugins/sudoers/sudoers.c:1033 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "надто довга команда" @@ -256,76 +255,75 @@ msgstr "%s:%d:%d: %s\n" msgid "Alias \"%s\" already defined" msgstr "Замінник «%s» вже визначено" -#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 -#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 #: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 -#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 -#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 -#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 -#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 -#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 -#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 -#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 -#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 -#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 -#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 -#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 -#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 -#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 -#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 -#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 -#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 -#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 -#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 -#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 -#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 -#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 -#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 -#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 -#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 -#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 -#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 -#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 -#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 -#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 -#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 -#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 -#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 -#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 -#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 -#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 -#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 -#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 -#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 -#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 -#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 -#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 -#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 -#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 -#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 -#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 -#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 -#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 +#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 +#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 +#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 +#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 +#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -338,80 +336,80 @@ msgstr "Замінник «%s» вже визначено" #: plugins/sudoers/cvtsudoers_merge.c:1157 #: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 #: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 -#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 #: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 #: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 #: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 -#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 -#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 -#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 -#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 -#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 -#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 -#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 -#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 -#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 -#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 -#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 -#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 -#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 -#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 -#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 -#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 -#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 -#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 -#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 -#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 -#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 -#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 -#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 -#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 -#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 -#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 -#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 -#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 -#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 -#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 -#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 -#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 -#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 -#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 -#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 -#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 -#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 -#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 -#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 -#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 +#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 +#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 +#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 +#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 +#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 #: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 #: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 @@ -420,68 +418,48 @@ msgstr "Замінник «%s» вже визначено" #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 #: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 #: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 -#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 -#: toke.l:1155 toke.l:1218 toke.l:1226 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 -#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 -#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 -#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 -#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 -#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 -#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 -#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 -#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 -#: toke.l:987 toke.l:1189 -#, c-format -msgid "internal error, %s overflow" -msgstr "внутрішня помилка, переповнення %s" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "не вдалося здублювати stdin: %m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "не вдалося виконати %s: %m" -#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "не вдалося створити відгалуження" -#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "не вдалося створити відгалуження: %m" -#: lib/eventlog/eventlog.c:528 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "не вдалося відкрити канал: %m" -#: lib/eventlog/eventlog.c:1030 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1059 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (команда продовжується) %s" #: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "некоректний формальний вираз «%s»: %s" @@ -499,64 +477,64 @@ msgstr "JSON_ARRAY є надто великим" msgid "missing double quote in name" msgstr "пропущено подвійні лапки у назві" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "пропущено JSON_OBJECT" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "мало бути використано JSON_OBJECT, отримано %d" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "вичерпано стек json (у стеку має бути не більше %u кадрів)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "об'єкти мають складатися з пар «назва:значення»" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "пропущено роздільник між значеннями" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "завершальна фігурна дужка без початкової" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "неочікуваний масив" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "завершальна дужка без початкової" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "неочікуваний рядок" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "пропущено двокрапку після назви" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "неочікуване булеве значення" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "неочікуване порожнє значення" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "неочікуване число" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "помилка обробки" @@ -595,14 +573,14 @@ msgstr "%s: не вказано даних щодо групи, від імен msgid "%s exists but is not a directory (0%o)" msgstr "%s існує, але не є каталогом (0%o)" -#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 #: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "не вдалося створити каталог %s" -#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 -#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "не вдалося змінити режим доступу до %s на значення 0%o" @@ -634,8 +612,8 @@ msgstr "%s: помилка протоколу: помилковий тип дл msgid "%s: protocol error: NULL value found in %s" msgstr "%s: помилка протоколу: виявлено значення NULL у %s" -#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 -#: plugins/sudoers/policy.c:591 +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 msgid "unable to generate UUID" msgstr "не вдалося створити UUID" @@ -687,27 +665,27 @@ msgstr "помилка під час спроби витерти дескрип msgid "invalid I/O log %s: %s referenced but not present" msgstr "некоректний журнал введення-виведення %s: маємо посилання на %s без самого запису" -#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s: не вдалося знайти точку відновлення [%lld, %ld]" -#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 #: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 #: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 #: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 #: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 -#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 -#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 #: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 -#: plugins/sudoers/visudo.c:971 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "не вдалося відкрити %s" #: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 -#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "не вдалося відкрити %s/%s" @@ -717,7 +695,7 @@ msgstr "не вдалося відкрити %s/%s" msgid "unable to copy %s/%s to %s/%s: %s" msgstr "не вдалося скопіювати %s/%s до %s/%s: %s" -#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "не вдалося перейменувати %s на %s" @@ -750,28 +728,28 @@ msgstr "надто велике повідомлення сервера: %zu" #: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 #: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 #: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 -#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 #: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 #: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 #: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 #: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 #: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 #: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 -#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 -#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 #: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 #: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 #: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 -#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 -#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 -#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 -#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 -#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "не вдалося додати подію до черги обробки" @@ -831,14 +809,14 @@ msgstr "некоректне ChangeWindowSize" msgid "invalid CommandSuspend" msgstr "некоректне CommandSuspend" -#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 #: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 -#: plugins/sudoers/log_client.c:1583 +#: plugins/sudoers/log_client.c:1582 #, c-format msgid "unable to unpack %s size %zu" msgstr "не вдалося розпакувати %s, розмір %zu" -#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 #: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" @@ -874,8 +852,8 @@ msgstr "EOF від %s без належного закриття TLS" msgid "client message too large: %zu" msgstr "повідомлення клієнта є надто довгим: %zu" -#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 -#: logsrvd/logsrvd_journal.c:257 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "повідомлення клієнта є надто великим" @@ -940,23 +918,23 @@ msgid "invalid random drop value: %s" msgstr "некоректне значення ймовірності скидання: %s" #: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 #: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s, версія %s\n" -#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 #: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 -#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 -#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "невідомий користувач %s" #: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 -#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" @@ -1030,7 +1008,7 @@ msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] заборонений ключ: %s" #: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:1029 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "не вдалося відкрити файл журналу %s" @@ -1043,49 +1021,49 @@ msgstr "не вдалося ініціалізувати контекст сер msgid "unable to initialize relay TLS context" msgstr "не вдалося ініціалізувати контекст ретранслятора TLS" -#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 -#: logsrvd/logsrvd_journal.c:426 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "не вдалося створити файл журналу" -#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 -#: plugins/sudoers/visudo.c:1026 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "не вдалося заблокувати %s" -#: logsrvd/logsrvd_journal.c:153 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "не вдалося заблокувати файл журналу" -#: logsrvd/logsrvd_journal.c:161 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "не вдалося відкрити файл журналу" -#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 -#: logsrvd/logsrvd_journal.c:462 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "не вдалося записати файл журналу" -#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "не вдалося перейменувати файл журналу" -#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 -#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "неочікуваний символ кінця файла під час читання файла журналу" -#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 -#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "помилка під час спроби читання файла журналу" -#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "некоректний файл журналу, неможливо перезапустити" -#: logsrvd/logsrvd_journal.c:440 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "не вдалося встановити позицію [%lld, %ld] у файлі журналу %s" @@ -1143,7 +1121,7 @@ msgstr "не вдалося виконати форматування буфер #: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 #: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 -#: plugins/sudoers/sudoreplay.c:351 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" @@ -1178,7 +1156,7 @@ msgid "%s: invalid ServerHello, missing server_id" msgstr "%s: некоректне значення ServerHello — пропущено server_id" #: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 -#: plugins/sudoers/log_client.c:1469 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "некоректне ServerHello" @@ -1291,35 +1269,35 @@ msgstr "не вдалося виконати пошук %s:%s: %s" msgid "unable to get server IP addr" msgstr "не вдалося отримати IP-адресу сервера" -#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "не вдалося прочитати %s/%s: %s" -#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 -#: plugins/sudoers/iolog.c:1026 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "неочікувана подія введення-виведення — %d" #: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 -#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 -#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s: неочікуваний стан — %d" -#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "отримано повідомлення про помилку від сервера: %s" -#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "отримано повідомлення про переривання від сервера: %s" -#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s: неочікуване значення type_case — %d" @@ -1328,7 +1306,7 @@ msgstr "%s: неочікуване значення type_case — %d" msgid "timeout reading from server" msgstr "перевищено час очікування на читання з сервера" -#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 msgid "host name does not match certificate" msgstr "назва вузла не відповідає сертифікату" @@ -1336,7 +1314,7 @@ msgstr "назва вузла не відповідає сертифікату" msgid "premature EOF" msgstr "передчасне завершення файла" -#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "повідомлення сервера є надто великим: %u" @@ -1423,10 +1401,10 @@ msgstr "не вдалося встановити мінімальну версі #: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 #: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 -#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 -#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 -#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 -#: plugins/sudoers/policy.c:124 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "не вдалося отримати дані щодо пори доби" @@ -1580,11 +1558,11 @@ msgstr "не вдалося встановити зв’язок з сервер msgid "User ID locked for SecurID Authentication" msgstr "Ідентифікатор користувача заблоковано для розпізнавання SecurID" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "некоректна довжина імені користувача для SecurID" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "некоректний дескриптор розпізнавання для SecurID" @@ -1592,11 +1570,11 @@ msgstr "некоректний дескриптор розпізнавання msgid "SecurID communication failed" msgstr "спроба обміну даними з SecurID зазнала невдачі" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "невідома помилка SecurID" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "некоректна довжина коду пароля для SecurID" @@ -1666,9 +1644,17 @@ msgstr "" " #3) Користування широкими правами розширює сферу відповідальності.\n" "\n" -#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 -#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 -#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"З міркувань безпеки введений вами пароль не буде показано.\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "невідоме значення uid %u" @@ -1725,8 +1711,7 @@ msgstr "%s: файли вхідних і вихідних даних мають #: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 #: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 -#: plugins/sudoers/visudo.c:975 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "не вдалося ініціалізувати типові значення sudoers" @@ -1755,12 +1740,12 @@ msgstr "некоректний тип придушення: %s" msgid "invalid filter: %s" msgstr "некоректний фільтр: %s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "не вдалося обробити файл %s, невідома помилка" -#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 #: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" @@ -1815,17 +1800,36 @@ msgstr "" " -s, --suppress=розділи придушити виведення певних розділів\n" " -V, --version вивести дані щодо версії і завершити роботу" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "внутрішня помилка, переповнення %s" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 #: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:510 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "не вдалося отримати гринвіцький час" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 #: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:518 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "не вдалося виконати форматування часового штампа" @@ -2639,8 +2643,8 @@ msgstr "некоректний тип Defaults, 0x%x, для параметра msgid "value \"%s\" is invalid for option \"%s\"" msgstr "значення «%s» є некоректним для параметра «%s»" -#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 -#: plugins/sudoers/policy.c:217 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format msgid "path name for \"%s\" too long" msgstr "назва шляху для «%s» є надто довгою" @@ -2655,15 +2659,24 @@ msgstr "значення для «%s» має починатися з «/», «~ msgid "values for \"%s\" must start with a '/'" msgstr "значення для «%s» має починатися з «/»" +#: plugins/sudoers/editor.c:180 +#, c-format +msgid "ignoring editor: %.*s" +msgstr "ігноруємо редактор: %.*s" + +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "в записі аргументів редактора не може міститися \"--\"" + #: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv: помилкове значення envp, невідповідність довжин" -#: plugins/sudoers/env.c:1109 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "не вдалося перебудувати середовище" -#: plugins/sudoers/env.c:1183 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "вибачте, вам не дозволено встановлювати такі змінні середовища: %s" @@ -2678,27 +2691,17 @@ msgstr "непідтримуваний тип контрольної суми, % msgid "%s: read error" msgstr "%s: помилка читання" -#: plugins/sudoers/group_plugin.c:169 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s має належати користувачеві з uid %d" - -#: plugins/sudoers/group_plugin.c:173 -#, c-format -msgid "%s must only be writable by owner" -msgstr "%s має бути доступним до запису лише для власника" - -#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "не вдалося завантажити %s: %s" -#: plugins/sudoers/group_plugin.c:197 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "не вдалося знайти символ «group_plugin» у %s" -#: plugins/sudoers/group_plugin.c:202 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s: несумісна основна версія додатка обробки груп %d, мало бути — %d" @@ -2721,10 +2724,10 @@ msgstr "Пари локальних IP-адрес і масок мережі:\n" msgid "unable to update sequence file" msgstr "не вдалося оновити файл послідовності" -#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 -#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 -#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 -#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "не вдалося здійснити запис до файла журналу введення-виведення: %s" @@ -2734,20 +2737,20 @@ msgstr "не вдалося здійснити запис до файла жур msgid "unable to create %s/%s" msgstr "не вдалося створити %s/%s" -#: plugins/sudoers/iolog.c:957 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s: внутрішня помилка, файл журналу введення-виведення для події %d не відкрито" -#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 -#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 -#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "не вдалося прочитати час на годиннику" -#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 -#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s: внутрішня помилка, некоректний сигнал %d" @@ -2766,16 +2769,16 @@ msgstr "не вдалося ініціалізувати базу даних с msgid "you must set TLS_CERT in %s to use SSL" msgstr "щоб скористатися SSL, вам слід встановити для TLS_CERT значення %s" -#: plugins/sudoers/ldap.c:1712 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "не вдалося ініціалізувати LDAP: %s" -#: plugins/sudoers/ldap.c:1749 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls вказано, але у бібліотеках LDAP не передбачено підтримки ldap_start_tls_s() або ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "некоректний атрибут sudoOrder: %s" @@ -2816,7 +2819,7 @@ msgid "unable to send audit message" msgstr "не вдалося надіслати повідомлення аудита" #: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 -#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "помилка у циклі обробки подій" @@ -2858,20 +2861,20 @@ msgstr "Спроба ініціалізувати TLS завершилася н msgid "TLS handshake was unsuccessful" msgstr "Спроба узгодити зв'язок TLS завершилася невдало" -#: plugins/sudoers/log_client.c:1211 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s: внутрішня помилка, некоректний стан виходу %d" -#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "втрачено зв’язок з сервером журналу" -#: plugins/sudoers/log_client.c:1841 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "не вказано буфер запису" -#: plugins/sudoers/log_client.c:1995 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "не вдалося встановити з'єднання із сервером журналу" @@ -2911,15 +2914,15 @@ msgstr "Вибачте, користувач %s не має права вико msgid "This incident has been reported to the administrator.\n" msgstr "Про цю подію подано звіт адміністратору.\n" -#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 -#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 -#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 -#: plugins/sudoers/sudoers.c:807 +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s: команду не знайдено" -#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2928,7 +2931,7 @@ msgstr "" "пропущено «%s» знайдений у «.»\n" "Скористайтеся командою «sudo ./%s», якщо вам потрібно виконати саме «%s»." -#: plugins/sudoers/logging.c:387 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" @@ -2937,24 +2940,24 @@ msgstr[1] "%u невдалих спроби введення пароля" msgstr[2] "%u невдалих спроб введення пароля" msgstr[3] "одна невдала спроба введення пароля" -#: plugins/sudoers/logging.c:477 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "помилка під час спроби розпізнавання" -#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "слід вказати пароль" -#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 msgid "problem parsing sudoers" msgstr "проблема із обробкою sudoers" -#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 #, c-format msgid "%s:%d:%d: %s" msgstr "%s:%d:%d: %s" -#: plugins/sudoers/logging.c:1062 +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "не вдалося виконати запис до файла журналу: %s" @@ -2969,7 +2972,7 @@ msgstr "контрольна сума для %s (%s) має помилкову msgid "digest for %s (%s) is not in %s form" msgstr "контрольну суму для %s (%s) подано не у формі %s" -#: plugins/sudoers/parse.c:591 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2978,7 +2981,7 @@ msgstr "" "\n" "Роль LDAP: %s\n" -#: plugins/sudoers/parse.c:594 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2986,38 +2989,38 @@ msgstr "" "\n" "Запис sudoers:\n" -#: plugins/sudoers/parse.c:596 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " Користувачі для запуску: " -#: plugins/sudoers/parse.c:611 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " Групи для запуску: " -#: plugins/sudoers/parse.c:621 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " Параметри: " -#: plugins/sudoers/parse.c:685 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " Команди:\n" -#: plugins/sudoers/parse.c:876 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "Відповідність записів Defaults для %s на %s:\n" -#: plugins/sudoers/parse.c:894 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "Типові значення для запуску від імені і команд для %s:\n" -#: plugins/sudoers/parse.c:912 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "Користувач %s має право виконувати на %s такі команди:\n" -#: plugins/sudoers/parse.c:927 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Користувач %s не має права виконувати sudo на %s.\n" @@ -3032,64 +3035,64 @@ msgstr "ігноруємо неповний запис sudoRole: cn: %s" msgid "invalid LDIF attribute: %s" msgstr "некоректний атрибут LDIF: %s" -#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "оболонкою sudo встановлено некоректне значення параметра %.*s" -#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "не вдалося обробити список мережевих адрес" -#: plugins/sudoers/policy.c:526 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "ім'я користувача не встановлено за допомогою оболонки sudo" -#: plugins/sudoers/policy.c:530 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "ідентифікатор користувача не встановлено за допомогою оболонки sudo" -#: plugins/sudoers/policy.c:534 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "ідентифікатор групи не встановлено за допомогою оболонки sudo" -#: plugins/sudoers/policy.c:538 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "назву вузла не встановлено за допомогою оболонки sudo" -#: plugins/sudoers/policy.c:730 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "некоректний робочий каталог: %s" -#: plugins/sudoers/policy.c:914 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "некоректний каталог chroot: %s" -#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 -#: plugins/sudoers/visudo.c:902 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "не вдалося виконати %s" -#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 -#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s: некоректні прапорці режиму від оболонки sudo: 0x%x" -#: plugins/sudoers/policy.c:1292 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Додаток правил sudoers версії %s\n" -#: plugins/sudoers/policy.c:1294 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Граматична перевірка файла sudoers версії %d\n" -#: plugins/sudoers/policy.c:1298 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3098,27 +3101,27 @@ msgstr "" "\n" "Шлях до sudoers: %s\n" -#: plugins/sudoers/policy.c:1301 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "Шлях до nsswitch: %s\n" -#: plugins/sudoers/policy.c:1303 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "Шлях до ldap.conf: %s\n" -#: plugins/sudoers/policy.c:1304 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "Шлях до ldap.secret: %s\n" -#: plugins/sudoers/policy.c:1337 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "неможливо зареєструвати процедуру перехоплення типу %d (версія %d.%d)" -#: plugins/sudoers/policy.c:1355 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "неможливо скасувати реєстрацію процедури перехоплення типу %d (версія %d.%d)" @@ -3165,24 +3168,24 @@ msgstr "не вдалося кешувати групу %s" msgid "unable to cache group %s, already exists" msgstr "не вдалося кешувати групу %s, запис вже існує" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "не вдалося кешувати список груп %s, запис вже існує" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "не вдалося кешувати список груп %s" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "не вдалося обробити записи груп %s" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "не вдалося обробити записи ідентифікаторів груп %s" @@ -3294,213 +3297,217 @@ msgstr "не вказано команду" msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers вказує, що sudo не можна користуватися для виконання команд від root" -#: plugins/sudoers/sudoers.c:476 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "користувачеві заборонено перевизначати обмеження closefrom" -#: plugins/sudoers/sudoers.c:477 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "вам не дозволено використовувати параметр -C" -#: plugins/sudoers/sudoers.c:537 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "власник часового штампа (%s): не знайдено користувача з таким іменем" -#: plugins/sudoers/sudoers.c:552 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "немає tty" -#: plugins/sudoers/sudoers.c:553 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "вибачте, для виконання sudo вашому користувачеві потрібен tty" -#: plugins/sudoers/sudoers.c:560 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "некоректний запис оболонки для користувача %s: %s" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "команда у поточному каталозі" -#: plugins/sudoers/sudoers.c:658 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "«cd» є вбудованою командою оболонки, її не може бути запущено безпосередньо." -#: plugins/sudoers/sudoers.c:660 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "параметр -s може бути використано для запуску привілейованої оболонки." -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "параметр -D може бути використано для запуску команди у вказаному каталозі." -#: plugins/sudoers/sudoers.c:671 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "користувачеві заборонено встановлювати час очікування на виконання команди" -#: plugins/sudoers/sudoers.c:673 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "вибачте, вам не дозволено встановлювати час очікування на виконання команди" -#: plugins/sudoers/sudoers.c:681 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "користувачеві заборонено зберігати середовище" -#: plugins/sudoers/sudoers.c:683 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "вибачте, вам не дозволено зберігати середовище" -#: plugins/sudoers/sudoers.c:1073 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "помилка під час спроби встановити значення змінних середовища, які вказано користувачем" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "Немає потреби у запуску sudoedit за допомогою sudo" -#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "не вдалося прочитати %s" -#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s не є звичайним файлом" -#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s належить uid %u, має належати %u" -#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "Запис до «%s» можливий для довільного користувача" -#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s належить gid %u, має належати %u" -#: plugins/sudoers/sudoers.c:1194 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "використовувати «-c %s» може лише root" -#: plugins/sudoers/sudoers.c:1213 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "невідомий клас входу %s" -#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "не вдалося визначити адресу вузла %s" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "некоректний параметр фільтрування: %s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "некоректне значення макс. очікування: %s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "некоректний коефіцієнт швидкості: %s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "некоректний зсув часу %s" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/розклад за часом: %s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "Відтворення сеансу sudo: %s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "не вдалося перевести tty у режим без обробки даних" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "Попередження: розміри вашого термінала є замалими для належного показу журналу.\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "Встановлено формат журналу %d x %d, тоді як формат термінала — %d x %d." -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "Відтворення завершено, натисніть будь-яку клавішу, щоб повернутися до термінала." -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "неоднозначний вираз «%s»" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "зайва дужка, «)», у виразі" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "невідомий ключ пошуку «%s»" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s потребує визначення аргументу" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "не вдалося обробити дату «%s»" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "зайва дужка, «(», у виразі" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "помилкове завершальне «or»" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "помилкове завершальне «!»" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "невідомий тип пошуку %d" -#: plugins/sudoers/sudoreplay.c:1650 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "користування: %s [-hnRS] [-d каталог] [-m число] [-s число] ідентифікатор\n" -#: plugins/sudoers/sudoreplay.c:1652 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "використання: %s [-h] [-d каталог] -l [вираз для пошуку]\n" -#: plugins/sudoers/sudoreplay.c:1666 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3509,7 +3516,7 @@ msgstr "" "%s — відтворення журналів сеансів sudo\n" "\n" -#: plugins/sudoers/sudoreplay.c:1668 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3596,7 +3603,7 @@ msgstr "параметр -x буде вилучено у наступному в msgid "please consider using the cvtsudoers utility instead" msgstr "будь ласка, скористайтеся замість нього програмою cvtsudoers" -#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "натисніть Enter для редагування %s: " @@ -3606,81 +3613,81 @@ msgstr "натисніть Enter для редагування %s: " msgid "contents of edit session left in %s" msgstr "дані сеансу редагування залишилися у %s" -#: plugins/sudoers/visudo.c:402 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "вказаного редактора (%s) не існує" -#: plugins/sudoers/visudo.c:404 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "не знайдено жодного редактора (шлях до редактора = %s)" -#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 #, c-format msgid "unable to stat %s" msgstr "не вдалося виконати stat для %s" -#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "помилка запису" -#: plugins/sudoers/visudo.c:565 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "не вдалося обробити stat файл тимчасових даних (%s), %s не змінено" -#: plugins/sudoers/visudo.c:572 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "файл тимчасових даних має нульовий об’єм (%s), %s не змінено" -#: plugins/sudoers/visudo.c:578 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "помилка редактора (%s), %s не змінено" -#: plugins/sudoers/visudo.c:600 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s не змінено" -#: plugins/sudoers/visudo.c:645 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "не вдалося повторно відкрити файл тимчасових даних (%s), %s не змінено." -#: plugins/sudoers/visudo.c:658 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "не вдалося обробити файл тимчасових даних (%s), невідома помилка" -#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 -#: plugins/sudoers/visudo.c:781 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "не вдалося встановити (uid, gid) %s у значення (%u, %u)" -#: plugins/sudoers/visudo.c:809 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s і %s не перебувають у одній файловій системі, використовуємо mv для перейменування" -#: plugins/sudoers/visudo.c:820 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "помилка команди: «%s %s %s», %s не змінено" -#: plugins/sudoers/visudo.c:827 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "помилка перейменування %s, %s не змінено" -#: plugins/sudoers/visudo.c:847 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "А зараз що? " -#: plugins/sudoers/visudo.c:861 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3692,41 +3699,41 @@ msgstr "" " (x) — вийти без внесення змін до файла sudoers\n" " (Q) — вийти зі збереженням файла sudoers (НЕБЕЗПЕЧНО!)\n" -#: plugins/sudoers/visudo.c:907 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "не вдалося виконати %s" -#: plugins/sudoers/visudo.c:938 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s: помилковий власник (uid, gid), має бути (%u, %u)\n" -#: plugins/sudoers/visudo.c:949 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: помилкові права доступу, режим доступу має бути 0%o\n" -#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s: вдала обробка\n" -#: plugins/sudoers/visudo.c:1023 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s зайнято, повторіть спробу пізніше" -#: plugins/sudoers/visudo.c:1027 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "Редагувати попри усе? [y/N]" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "Попередження: %s:%d:%d: не використано %s «%s»" -#: plugins/sudoers/visudo.c:1240 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3735,7 +3742,7 @@ msgstr "" "%s — безпечне редагування файла sudoers\n" "\n" -#: plugins/sudoers/visudo.c:1242 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" @@ -3781,14 +3788,20 @@ msgstr "некоректне продовження рядка" msgid "invalid IPv6 address" msgstr "некоректна адреса IPv6" -#: toke.l:868 +#: toke.l:876 msgid "unexpected line break in string" msgstr "неочікуваний розрив рядків у рядку" -#: toke.l:1218 +#: toke.l:1226 msgid "too many levels of includes" msgstr "занадто високий рівень вкладеності" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s має належати користувачеві з uid %d" + +#~ msgid "%s must only be writable by owner" +#~ msgstr "%s має бути доступним до запису лише для власника" + #~ msgid "%s is group writable" #~ msgstr "%s доступний до запису учасниками групи" diff --git a/plugins/sudoers/po/zh_CN.mo b/plugins/sudoers/po/zh_CN.mo index 95166e7bd5..59fc977e82 100644 Binary files a/plugins/sudoers/po/zh_CN.mo and b/plugins/sudoers/po/zh_CN.mo differ diff --git a/plugins/sudoers/po/zh_CN.po b/plugins/sudoers/po/zh_CN.po index 48afae9b3b..64c001164e 100644 --- a/plugins/sudoers/po/zh_CN.po +++ b/plugins/sudoers/po/zh_CN.po @@ -5,21 +5,21 @@ # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.10b1\n" +"Project-Id-Version: sudoers 1.9.12b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-02-11 18:33-0700\n" -"PO-Revision-Date: 2022-02-13 22:08-0500\n" +"POT-Creation-Date: 2022-10-10 09:13-0600\n" +"PO-Revision-Date: 2022-11-29 14:54-0500\n" "Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 2.4.3\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Generator: Poedit 3.2\n" -#: confstr.sh:1 gram.y:1198 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:862 msgid "syntax error" msgstr "语法错误" @@ -43,66 +43,80 @@ msgstr "*** %h 安全信息 ***" msgid "Sorry, try again." msgstr "对不起,请重试。" -#: gram.y:233 gram.y:300 gram.y:309 gram.y:318 gram.y:328 gram.y:338 -#: gram.y:362 gram.y:389 gram.y:398 gram.y:406 gram.y:415 gram.y:424 -#: gram.y:498 gram.y:508 gram.y:520 gram.y:564 gram.y:573 gram.y:582 -#: gram.y:591 gram.y:718 gram.y:726 gram.y:737 gram.y:749 gram.y:768 -#: gram.y:923 gram.y:928 gram.y:936 gram.y:950 gram.y:956 gram.y:1078 -#: gram.y:1087 gram.y:1095 gram.y:1104 gram.y:1113 gram.y:1142 gram.y:1151 -#: gram.y:1159 gram.y:1252 gram.y:1382 gram.y:1748 gram.y:1798 +#: gram.y:237 gram.y:304 gram.y:313 gram.y:322 gram.y:332 gram.y:342 +#: gram.y:366 gram.y:393 gram.y:402 gram.y:410 gram.y:419 gram.y:428 +#: gram.y:502 gram.y:512 gram.y:524 gram.y:572 gram.y:581 gram.y:590 +#: gram.y:599 gram.y:731 gram.y:739 gram.y:750 gram.y:762 gram.y:781 +#: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 +#: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 +#: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 #: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:804 lib/eventlog/eventlog.c:881 -#: lib/eventlog/eventlog.c:1176 lib/iolog/iolog_filter.c:142 -#: lib/iolog/iolog_filter.c:204 lib/iolog/iolog_filter.c:233 +#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:904 +#: lib/eventlog/eventlog.c:1204 lib/iolog/iolog_filter.c:142 +#: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 #: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 #: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 #: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 #: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:84 -#: logsrvd/iolog_writer.c:89 logsrvd/iolog_writer.c:123 -#: logsrvd/iolog_writer.c:172 logsrvd/iolog_writer.c:212 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:261 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:301 -#: logsrvd/iolog_writer.c:314 logsrvd/iolog_writer.c:327 -#: logsrvd/iolog_writer.c:340 logsrvd/iolog_writer.c:355 -#: logsrvd/iolog_writer.c:393 logsrvd/iolog_writer.c:399 -#: logsrvd/iolog_writer.c:406 logsrvd/iolog_writer.c:412 -#: logsrvd/iolog_writer.c:596 logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 -#: logsrvd/logsrvd.c:305 logsrvd/logsrvd.c:1011 logsrvd/logsrvd.c:1073 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:203 logsrvd/logsrvd_journal.c:204 -#: logsrvd/logsrvd_journal.c:260 logsrvd/logsrvd_journal.c:425 -#: logsrvd/logsrvd_journal.c:427 logsrvd/logsrvd_local.c:174 -#: logsrvd/logsrvd_local.c:175 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:238 logsrvd/logsrvd_local.c:376 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:426 -#: logsrvd/logsrvd_local.c:431 logsrvd/logsrvd_local.c:432 -#: logsrvd/logsrvd_queue.c:154 logsrvd/logsrvd_queue.c:184 -#: logsrvd/logsrvd_queue.c:261 logsrvd/logsrvd_relay.c:439 -#: logsrvd/logsrvd_relay.c:738 logsrvd/logsrvd_relay.c:843 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:118 -#: plugins/sudoers/auth/kerb5.c:146 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 -#: plugins/sudoers/check_aliases.c:134 plugins/sudoers/cvtsudoers.c:131 -#: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 -#: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 -#: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 -#: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 -#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:758 -#: plugins/sudoers/cvtsudoers.c:873 plugins/sudoers/cvtsudoers.c:881 -#: plugins/sudoers/cvtsudoers.c:1376 plugins/sudoers/cvtsudoers.c:1380 -#: plugins/sudoers/cvtsudoers.c:1482 plugins/sudoers/cvtsudoers_csv.c:183 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:182 logsrvd/iolog_writer.c:215 +#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:254 +#: logsrvd/iolog_writer.c:275 logsrvd/iolog_writer.c:287 +#: logsrvd/iolog_writer.c:297 logsrvd/iolog_writer.c:307 +#: logsrvd/iolog_writer.c:317 logsrvd/iolog_writer.c:329 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:650 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1743 logsrvd/logsrvd_journal.c:75 +#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:214 +#: logsrvd/logsrvd_journal.c:270 logsrvd/logsrvd_journal.c:430 +#: logsrvd/logsrvd_journal.c:432 logsrvd/logsrvd_local.c:215 +#: logsrvd/logsrvd_local.c:216 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:279 logsrvd/logsrvd_local.c:417 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:467 +#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:473 +#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_queue.c:189 +#: logsrvd/logsrvd_queue.c:266 logsrvd/logsrvd_relay.c:444 +#: logsrvd/logsrvd_relay.c:743 logsrvd/logsrvd_relay.c:850 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1801 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/bsdauth.c:150 +#: plugins/sudoers/auth/kerb5.c:121 plugins/sudoers/auth/kerb5.c:148 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/auth/sia.c:59 plugins/sudoers/check_aliases.c:168 +#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:175 +#: plugins/sudoers/cvtsudoers.c:192 plugins/sudoers/cvtsudoers.c:203 +#: plugins/sudoers/cvtsudoers.c:333 plugins/sudoers/cvtsudoers.c:372 +#: plugins/sudoers/cvtsudoers.c:392 plugins/sudoers/cvtsudoers.c:537 +#: plugins/sudoers/cvtsudoers.c:670 plugins/sudoers/cvtsudoers.c:688 +#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:870 +#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 +#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:183 #: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 #: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 #: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 #: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 #: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:469 -#: plugins/sudoers/cvtsudoers_ldif.c:477 plugins/sudoers/cvtsudoers_ldif.c:624 -#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 +#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:468 +#: plugins/sudoers/cvtsudoers_ldif.c:481 plugins/sudoers/cvtsudoers_ldif.c:489 +#: plugins/sudoers/cvtsudoers_ldif.c:636 plugins/sudoers/cvtsudoers_merge.c:47 +#: plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:446 @@ -110,53 +124,52 @@ msgstr "对不起,请重试。" #: plugins/sudoers/cvtsudoers_merge.c:553 #: plugins/sudoers/cvtsudoers_merge.c:564 #: plugins/sudoers/cvtsudoers_merge.c:633 -#: plugins/sudoers/cvtsudoers_merge.c:1150 -#: plugins/sudoers/cvtsudoers_merge.c:1223 plugins/sudoers/defaults.c:468 -#: plugins/sudoers/defaults.c:690 plugins/sudoers/defaults.c:1051 -#: plugins/sudoers/defaults.c:1243 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/cvtsudoers_merge.c:1158 +#: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:133 -#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:264 -#: plugins/sudoers/iolog.c:664 plugins/sudoers/iolog.c:690 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:433 -#: plugins/sudoers/ldap.c:443 plugins/sudoers/ldap.c:448 -#: plugins/sudoers/ldap.c:452 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:760 plugins/sudoers/ldap.c:924 -#: plugins/sudoers/ldap.c:1340 plugins/sudoers/ldap.c:1766 -#: plugins/sudoers/ldap.c:1803 plugins/sudoers/ldap.c:1884 -#: plugins/sudoers/ldap.c:2019 plugins/sudoers/ldap.c:2120 -#: plugins/sudoers/ldap.c:2136 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:294 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:228 +#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 +#: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 +#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 +#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 +#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 +#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 +#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 +#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 +#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 +#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 +#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:689 +#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:294 #: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:390 plugins/sudoers/log_client.c:703 -#: plugins/sudoers/log_client.c:724 plugins/sudoers/log_client.c:1444 -#: plugins/sudoers/log_client.c:1662 plugins/sudoers/log_client.c:1989 -#: plugins/sudoers/log_client.c:2045 plugins/sudoers/logging.c:104 -#: plugins/sudoers/logging.c:185 plugins/sudoers/logging.c:469 -#: plugins/sudoers/logging.c:489 plugins/sudoers/logging.c:628 -#: plugins/sudoers/match_command.c:324 plugins/sudoers/match_command.c:567 -#: plugins/sudoers/match_command.c:616 plugins/sudoers/match_command.c:688 -#: plugins/sudoers/match_command.c:736 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:201 plugins/sudoers/parse.c:218 -#: plugins/sudoers/parse.c:250 plugins/sudoers/parse.c:267 -#: plugins/sudoers/parse.c:290 plugins/sudoers/parse.c:301 +#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1416 +#: plugins/sudoers/log_client.c:1537 plugins/sudoers/log_client.c:1637 +#: plugins/sudoers/log_client.c:1973 plugins/sudoers/log_client.c:2032 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:189 +#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 +#: plugins/sudoers/logging.c:805 plugins/sudoers/match_command.c:335 +#: plugins/sudoers/match_command.c:603 plugins/sudoers/match_command.c:654 +#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:776 +#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:227 +#: plugins/sudoers/parse.c:244 plugins/sudoers/parse.c:263 +#: plugins/sudoers/parse.c:282 plugins/sudoers/parse.c:299 +#: plugins/sudoers/parse.c:322 plugins/sudoers/parse.c:333 #: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 #: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 #: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 #: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 #: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 #: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:597 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:570 plugins/sudoers/policy.c:952 +#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 +#: plugins/sudoers/parse_ldif.c:628 plugins/sudoers/parse_ldif.c:653 +#: plugins/sudoers/parse_ldif.c:711 plugins/sudoers/parse_ldif.c:728 +#: plugins/sudoers/parse_ldif.c:756 plugins/sudoers/parse_ldif.c:763 +#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 #: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 #: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 #: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 @@ -166,138 +179,153 @@ msgstr "对不起,请重试。" #: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 #: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 #: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:111 -#: plugins/sudoers/stubs.c:119 plugins/sudoers/sudoers.c:335 -#: plugins/sudoers/sudoers.c:361 plugins/sudoers/sudoers.c:429 -#: plugins/sudoers/sudoers.c:438 plugins/sudoers/sudoers.c:479 -#: plugins/sudoers/sudoers.c:842 plugins/sudoers/sudoers.c:980 -#: plugins/sudoers/sudoers.c:1039 plugins/sudoers/sudoers.c:1305 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 -#: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 -#: plugins/sudoers/testsudoers.c:580 plugins/sudoers/timestamp.c:424 -#: plugins/sudoers/timestamp.c:468 plugins/sudoers/timestamp.c:980 -#: plugins/sudoers/timestamp.c:1118 plugins/sudoers/toke_util.c:78 -#: plugins/sudoers/toke_util.c:106 plugins/sudoers/toke_util.c:131 -#: plugins/sudoers/toke_util.c:161 plugins/sudoers/toke_util.c:200 -#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:145 -#: plugins/sudoers/visudo.c:344 plugins/sudoers/visudo.c:350 -#: plugins/sudoers/visudo.c:456 plugins/sudoers/visudo.c:632 -#: plugins/sudoers/visudo.c:962 plugins/sudoers/visudo.c:1035 toke.l:1015 -#: toke.l:1147 toke.l:1218 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:448 +#: plugins/sudoers/sudoers.c:457 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:827 plugins/sudoers/sudoers.c:877 +#: plugins/sudoers/sudoers.c:1015 plugins/sudoers/sudoers.c:1075 +#: plugins/sudoers/sudoers.c:1330 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:565 plugins/sudoers/sudoreplay.c:1281 +#: plugins/sudoers/sudoreplay.c:1503 plugins/sudoers/sudoreplay.c:1507 +#: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 +#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 +#: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 +#: plugins/sudoers/timestamp.c:1017 plugins/sudoers/timestamp.c:1146 +#: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 +#: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 +#: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 +#: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:498 +#: plugins/sudoers/visudo.c:1054 toke.l:1023 toke.l:1155 toke.l:1226 msgid "unable to allocate memory" msgstr "无法分配内存" -#: gram.y:615 +#: gram.y:623 msgid "a digest requires a path name" msgstr "摘要需要路径参数" -#: gram.y:637 +#: gram.y:645 msgid "values for \"CWD\" must start with a '/', '~', or '*'" msgstr "“CWD”的值必须以“/”、“~”或“*”开头" -#: gram.y:643 +#: gram.y:651 msgid "\"CWD\" path too long" msgstr "“CWD”路径过长" -#: gram.y:653 +#: gram.y:661 msgid "values for \"CHROOT\" must start with a '/', '~', or '*'" msgstr "“CHROOT”的值必须以“/”、“~”或“*”开头" -#: gram.y:659 +#: gram.y:667 msgid "\"CHROOT\" path too long" msgstr "“CHROOT”路径过长" -#: gram.y:788 +#: gram.y:802 #, c-format msgid "syntax error, reserved word %s used as an alias name" msgstr "语法错误,保留字 %s 被用作别名" -#: gram.y:811 +#: gram.y:825 msgid "invalid notbefore value" msgstr "无效的 notbefore 值" -#: gram.y:820 +#: gram.y:834 msgid "invalid notafter value" msgstr "无效的 notafter 值" -#: gram.y:830 plugins/sudoers/policy.c:353 +#: gram.y:844 plugins/sudoers/policy.c:383 msgid "timeout value too large" msgstr "超时值过大" -#: gram.y:832 plugins/sudoers/policy.c:355 +#: gram.y:846 plugins/sudoers/policy.c:385 msgid "invalid timeout value" msgstr "无效的超时值" -#: gram.y:946 plugins/sudoers/sudoers.c:998 +#: gram.y:967 plugins/sudoers/sudoers.c:1033 msgid "command too long" msgstr "命令过长" -#: gram.y:1200 +#: gram.y:1224 plugins/sudoers/check_aliases.c:96 +#: plugins/sudoers/defaults.c:1276 #, c-format msgid "%s:%d:%d: %s\n" msgstr "%s:%d:%d: %s\n" -#: gram.y:1250 +#: gram.y:1278 #, c-format msgid "Alias \"%s\" already defined" msgstr "别名“%s”已定义过" -#: gram.y:1748 gram.y:1798 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:804 lib/eventlog/eventlog.c:877 -#: lib/eventlog/eventlog.c:880 lib/eventlog/eventlog.c:1176 -#: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:309 +#: lib/eventlog/eventlog.c:827 lib/eventlog/eventlog.c:900 +#: lib/eventlog/eventlog.c:903 lib/eventlog/eventlog.c:1204 +#: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 #: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 #: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 #: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 #: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:84 logsrvd/iolog_writer.c:89 -#: logsrvd/iolog_writer.c:123 logsrvd/iolog_writer.c:162 -#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:189 -#: logsrvd/iolog_writer.c:211 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:251 logsrvd/iolog_writer.c:260 -#: logsrvd/iolog_writer.c:276 logsrvd/iolog_writer.c:285 -#: logsrvd/iolog_writer.c:300 logsrvd/iolog_writer.c:313 -#: logsrvd/iolog_writer.c:326 logsrvd/iolog_writer.c:339 -#: logsrvd/iolog_writer.c:354 logsrvd/iolog_writer.c:393 -#: logsrvd/iolog_writer.c:399 logsrvd/iolog_writer.c:406 -#: logsrvd/iolog_writer.c:412 logsrvd/iolog_writer.c:596 -#: logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 logsrvd/logsrvd.c:305 -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:593 -#: logsrvd/logsrvd.c:1084 logsrvd/logsrvd.c:1400 logsrvd/logsrvd.c:1406 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:114 logsrvd/logsrvd_journal.c:203 -#: logsrvd/logsrvd_journal.c:233 logsrvd/logsrvd_journal.c:237 -#: logsrvd/logsrvd_journal.c:245 logsrvd/logsrvd_journal.c:268 -#: logsrvd/logsrvd_journal.c:272 logsrvd/logsrvd_journal.c:425 -#: logsrvd/logsrvd_local.c:174 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:431 -#: logsrvd/logsrvd_local.c:450 logsrvd/logsrvd_queue.c:153 -#: logsrvd/logsrvd_queue.c:184 logsrvd/logsrvd_queue.c:261 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 logsrvd/sendlog.c:1526 logsrvd/sendlog.c:1533 -#: logsrvd/sendlog.c:1756 logsrvd/tls_init.c:293 logsrvd/tls_init.c:314 -#: logsrvd/tls_init.c:324 plugins/sudoers/audit.c:116 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:171 +#: logsrvd/iolog_writer.c:181 logsrvd/iolog_writer.c:194 +#: logsrvd/iolog_writer.c:214 logsrvd/iolog_writer.c:224 +#: logsrvd/iolog_writer.c:243 logsrvd/iolog_writer.c:253 +#: logsrvd/iolog_writer.c:264 logsrvd/iolog_writer.c:274 +#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:296 +#: logsrvd/iolog_writer.c:306 logsrvd/iolog_writer.c:316 +#: logsrvd/iolog_writer.c:328 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:522 +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:660 +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:1124 +#: logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:649 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1742 +#: logsrvd/logsrvd_journal.c:75 logsrvd/logsrvd_journal.c:122 +#: logsrvd/logsrvd_journal.c:213 logsrvd/logsrvd_journal.c:243 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:255 +#: logsrvd/logsrvd_journal.c:278 logsrvd/logsrvd_journal.c:282 +#: logsrvd/logsrvd_journal.c:430 logsrvd/logsrvd_local.c:215 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:472 logsrvd/logsrvd_local.c:491 +#: logsrvd/logsrvd_queue.c:158 logsrvd/logsrvd_queue.c:189 +#: logsrvd/logsrvd_queue.c:266 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1503 logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 +#: logsrvd/sendlog.c:1801 logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 +#: logsrvd/tls_init.c:340 plugins/sudoers/audit.c:116 #: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:134 +#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:168 #: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 #: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 #: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 #: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:758 plugins/sudoers/cvtsudoers.c:873 -#: plugins/sudoers/cvtsudoers.c:880 plugins/sudoers/cvtsudoers.c:1376 -#: plugins/sudoers/cvtsudoers.c:1380 plugins/sudoers/cvtsudoers.c:1482 -#: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 -#: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 -#: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 -#: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 -#: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 -#: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 -#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:476 -#: plugins/sudoers/cvtsudoers_ldif.c:623 plugins/sudoers/cvtsudoers_merge.c:47 +#: plugins/sudoers/cvtsudoers.c:862 plugins/sudoers/cvtsudoers.c:869 +#: plugins/sudoers/cvtsudoers.c:1365 plugins/sudoers/cvtsudoers.c:1369 +#: plugins/sudoers/cvtsudoers.c:1471 plugins/sudoers/cvtsudoers_csv.c:182 +#: plugins/sudoers/cvtsudoers_csv.c:245 plugins/sudoers/cvtsudoers_json.c:75 +#: plugins/sudoers/cvtsudoers_ldif.c:150 plugins/sudoers/cvtsudoers_ldif.c:193 +#: plugins/sudoers/cvtsudoers_ldif.c:234 plugins/sudoers/cvtsudoers_ldif.c:299 +#: plugins/sudoers/cvtsudoers_ldif.c:375 plugins/sudoers/cvtsudoers_ldif.c:429 +#: plugins/sudoers/cvtsudoers_ldif.c:437 plugins/sudoers/cvtsudoers_ldif.c:448 +#: plugins/sudoers/cvtsudoers_ldif.c:455 plugins/sudoers/cvtsudoers_ldif.c:467 +#: plugins/sudoers/cvtsudoers_ldif.c:480 plugins/sudoers/cvtsudoers_ldif.c:488 +#: plugins/sudoers/cvtsudoers_ldif.c:635 plugins/sudoers/cvtsudoers_merge.c:47 #: plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 @@ -308,93 +336,93 @@ msgstr "别名“%s”已定义过" #: plugins/sudoers/cvtsudoers_merge.c:564 #: plugins/sudoers/cvtsudoers_merge.c:630 #: plugins/sudoers/cvtsudoers_merge.c:633 -#: plugins/sudoers/cvtsudoers_merge.c:1149 -#: plugins/sudoers/cvtsudoers_merge.c:1223 plugins/sudoers/defaults.c:468 -#: plugins/sudoers/defaults.c:690 plugins/sudoers/defaults.c:1051 -#: plugins/sudoers/defaults.c:1243 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/cvtsudoers_merge.c:1157 +#: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:188 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:132 -#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:264 -#: plugins/sudoers/iolog.c:664 plugins/sudoers/iolog.c:690 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:433 -#: plugins/sudoers/ldap.c:443 plugins/sudoers/ldap.c:448 -#: plugins/sudoers/ldap.c:452 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:760 plugins/sudoers/ldap.c:924 -#: plugins/sudoers/ldap.c:1340 plugins/sudoers/ldap.c:1766 -#: plugins/sudoers/ldap.c:1803 plugins/sudoers/ldap.c:1884 -#: plugins/sudoers/ldap.c:2019 plugins/sudoers/ldap.c:2120 -#: plugins/sudoers/ldap.c:2136 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:687 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:293 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:227 +#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 +#: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:464 +#: plugins/sudoers/ldap.c:755 plugins/sudoers/ldap.c:919 +#: plugins/sudoers/ldap.c:1335 plugins/sudoers/ldap.c:1761 +#: plugins/sudoers/ldap.c:1798 plugins/sudoers/ldap.c:1879 +#: plugins/sudoers/ldap.c:2014 plugins/sudoers/ldap.c:2115 +#: plugins/sudoers/ldap.c:2131 plugins/sudoers/ldap_conf.c:218 +#: plugins/sudoers/ldap_conf.c:250 plugins/sudoers/ldap_conf.c:302 +#: plugins/sudoers/ldap_conf.c:338 plugins/sudoers/ldap_conf.c:444 +#: plugins/sudoers/ldap_conf.c:459 plugins/sudoers/ldap_conf.c:564 +#: plugins/sudoers/ldap_conf.c:597 plugins/sudoers/ldap_conf.c:688 +#: plugins/sudoers/ldap_conf.c:771 plugins/sudoers/ldap_util.c:293 #: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:221 plugins/sudoers/log_client.c:242 -#: plugins/sudoers/log_client.c:255 plugins/sudoers/log_client.c:390 -#: plugins/sudoers/log_client.c:703 plugins/sudoers/log_client.c:724 -#: plugins/sudoers/log_client.c:1444 plugins/sudoers/log_client.c:1662 -#: plugins/sudoers/log_client.c:1989 plugins/sudoers/log_client.c:2045 -#: plugins/sudoers/logging.c:104 plugins/sudoers/logging.c:184 -#: plugins/sudoers/logging.c:185 plugins/sudoers/logging.c:468 -#: plugins/sudoers/logging.c:488 plugins/sudoers/logging.c:628 -#: plugins/sudoers/match_command.c:323 plugins/sudoers/match_command.c:566 -#: plugins/sudoers/match_command.c:615 plugins/sudoers/match_command.c:688 -#: plugins/sudoers/match_command.c:735 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:200 plugins/sudoers/parse.c:217 -#: plugins/sudoers/parse.c:249 plugins/sudoers/parse.c:266 -#: plugins/sudoers/parse.c:289 plugins/sudoers/parse.c:300 +#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:117 +#: plugins/sudoers/log_client.c:228 plugins/sudoers/log_client.c:250 +#: plugins/sudoers/log_client.c:264 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1416 plugins/sudoers/log_client.c:1537 +#: plugins/sudoers/log_client.c:1637 plugins/sudoers/log_client.c:1973 +#: plugins/sudoers/log_client.c:2032 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:188 plugins/sudoers/logging.c:189 +#: plugins/sudoers/logging.c:453 plugins/sudoers/logging.c:668 +#: plugins/sudoers/logging.c:805 plugins/sudoers/logging.c:876 +#: plugins/sudoers/logging.c:888 plugins/sudoers/match_command.c:334 +#: plugins/sudoers/match_command.c:602 plugins/sudoers/match_command.c:653 +#: plugins/sudoers/match_command.c:728 plugins/sudoers/match_command.c:775 +#: plugins/sudoers/match_digest.c:93 plugins/sudoers/parse.c:226 +#: plugins/sudoers/parse.c:243 plugins/sudoers/parse.c:262 +#: plugins/sudoers/parse.c:281 plugins/sudoers/parse.c:298 +#: plugins/sudoers/parse.c:321 plugins/sudoers/parse.c:332 #: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 #: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 #: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 #: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 #: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 #: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:597 -#: plugins/sudoers/parse_ldif.c:626 plugins/sudoers/parse_ldif.c:651 -#: plugins/sudoers/parse_ldif.c:709 plugins/sudoers/parse_ldif.c:726 -#: plugins/sudoers/parse_ldif.c:754 plugins/sudoers/parse_ldif.c:761 -#: plugins/sudoers/policy.c:152 plugins/sudoers/policy.c:161 -#: plugins/sudoers/policy.c:170 plugins/sudoers/policy.c:197 -#: plugins/sudoers/policy.c:338 plugins/sudoers/policy.c:353 -#: plugins/sudoers/policy.c:355 plugins/sudoers/policy.c:391 -#: plugins/sudoers/policy.c:400 plugins/sudoers/policy.c:448 -#: plugins/sudoers/policy.c:458 plugins/sudoers/policy.c:467 -#: plugins/sudoers/policy.c:476 plugins/sudoers/policy.c:570 -#: plugins/sudoers/policy.c:952 plugins/sudoers/prompt.c:93 -#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 -#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 -#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 -#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:913 -#: plugins/sudoers/pwutil.c:957 plugins/sudoers/pwutil.c:1014 -#: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 -#: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 -#: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:111 -#: plugins/sudoers/stubs.c:119 plugins/sudoers/sudoers.c:335 -#: plugins/sudoers/sudoers.c:361 plugins/sudoers/sudoers.c:429 -#: plugins/sudoers/sudoers.c:438 plugins/sudoers/sudoers.c:479 -#: plugins/sudoers/sudoers.c:842 plugins/sudoers/sudoers.c:980 -#: plugins/sudoers/sudoers.c:1039 plugins/sudoers/sudoers.c:1305 +#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:598 +#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 +#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 +#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 +#: plugins/sudoers/policy.c:153 plugins/sudoers/policy.c:162 +#: plugins/sudoers/policy.c:171 plugins/sudoers/policy.c:199 +#: plugins/sudoers/policy.c:368 plugins/sudoers/policy.c:383 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:423 +#: plugins/sudoers/policy.c:432 plugins/sudoers/policy.c:480 +#: plugins/sudoers/policy.c:490 plugins/sudoers/policy.c:499 +#: plugins/sudoers/policy.c:508 plugins/sudoers/policy.c:517 +#: plugins/sudoers/policy.c:624 plugins/sudoers/policy.c:1026 +#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 +#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 +#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 +#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 +#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 +#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/set_perms.c:363 +#: plugins/sudoers/set_perms.c:706 plugins/sudoers/set_perms.c:1073 +#: plugins/sudoers/set_perms.c:1380 plugins/sudoers/set_perms.c:1549 +#: plugins/sudoers/sssd.c:144 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:448 plugins/sudoers/sudoers.c:457 +#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:827 +#: plugins/sudoers/sudoers.c:877 plugins/sudoers/sudoers.c:1015 +#: plugins/sudoers/sudoers.c:1075 plugins/sudoers/sudoers.c:1330 #: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 #: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 #: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 -#: plugins/sudoers/testsudoers.c:580 plugins/sudoers/timestamp.c:424 -#: plugins/sudoers/timestamp.c:468 plugins/sudoers/timestamp.c:980 -#: plugins/sudoers/timestamp.c:1118 plugins/sudoers/toke_util.c:78 +#: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 +#: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 +#: plugins/sudoers/timestamp.c:1146 plugins/sudoers/toke_util.c:78 #: plugins/sudoers/toke_util.c:106 plugins/sudoers/toke_util.c:131 #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 -#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:145 -#: plugins/sudoers/visudo.c:344 plugins/sudoers/visudo.c:350 -#: plugins/sudoers/visudo.c:456 plugins/sudoers/visudo.c:632 -#: plugins/sudoers/visudo.c:962 plugins/sudoers/visudo.c:1035 toke.l:1015 -#: toke.l:1147 toke.l:1210 toke.l:1218 +#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 +#: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 +#: plugins/sudoers/visudo.c:498 plugins/sudoers/visudo.c:1054 toke.l:1023 +#: toke.l:1155 toke.l:1218 toke.l:1226 #, c-format msgid "%s: %s" msgstr "%s:%s" @@ -403,16 +431,18 @@ msgstr "%s:%s" #: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 #: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 #: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:580 plugins/sudoers/env.c:326 -#: plugins/sudoers/env.c:333 plugins/sudoers/env.c:444 -#: plugins/sudoers/ldap.c:531 plugins/sudoers/ldap.c:764 -#: plugins/sudoers/ldap.c:1137 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:312 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/policy.c:740 -#: plugins/sudoers/policy.c:751 plugins/sudoers/prompt.c:168 -#: plugins/sudoers/serialize_list.c:62 plugins/sudoers/serialize_list.c:71 -#: plugins/sudoers/strvec_join.c:62 plugins/sudoers/testsudoers.c:245 -#: plugins/sudoers/toke_util.c:213 toke.l:979 toke.l:1181 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:526 plugins/sudoers/ldap.c:759 +#: plugins/sudoers/ldap.c:1132 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:813 plugins/sudoers/logging.c:823 +#: plugins/sudoers/policy.c:800 plugins/sudoers/policy.c:811 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/testsudoers.c:245 plugins/sudoers/toke_util.c:213 +#: toke.l:987 toke.l:1189 #, c-format msgid "internal error, %s overflow" msgstr "内部错误,%s 溢出" @@ -427,31 +457,31 @@ msgstr "无法 dup stdin:%m" msgid "unable to execute %s: %m" msgstr "无法执行 %s:%m" -#: lib/eventlog/eventlog.c:456 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:463 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "无法执行 fork" -#: lib/eventlog/eventlog.c:464 lib/eventlog/eventlog.c:518 +#: lib/eventlog/eventlog.c:473 lib/eventlog/eventlog.c:538 #, c-format msgid "unable to fork: %m" msgstr "无法执行 fork:%m" -#: lib/eventlog/eventlog.c:508 +#: lib/eventlog/eventlog.c:528 #, c-format msgid "unable to open pipe: %m" msgstr "无法打开管道:%m" -#: lib/eventlog/eventlog.c:1007 +#: lib/eventlog/eventlog.c:1030 #, c-format msgid "%8s : %s" msgstr "%8s:%s" -#: lib/eventlog/eventlog.c:1036 +#: lib/eventlog/eventlog.c:1059 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s:(命令继续执行) %s" -#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1296 +#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 #: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 #, c-format msgid "invalid regular expression \"%s\": %s" @@ -566,14 +596,14 @@ msgstr "%s:缺少 runas 组 字段" msgid "%s exists but is not a directory (0%o)" msgstr "%s 存在,但不是目录(0%o)" -#: lib/iolog/iolog_mkdirs.c:119 lib/iolog/iolog_mkdtemp.c:77 -#: logsrvd/iolog_writer.c:807 plugins/sudoers/timestamp.c:205 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:78 +#: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "无法创建目录 %s" -#: lib/iolog/iolog_mkdtemp.c:81 plugins/sudoers/visudo.c:731 -#: plugins/sudoers/visudo.c:765 plugins/sudoers/visudo.c:771 +#: lib/iolog/iolog_mkdtemp.c:83 plugins/sudoers/visudo.c:753 +#: plugins/sudoers/visudo.c:787 plugins/sudoers/visudo.c:793 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "无法将 %s 的模式更改为 0%o" @@ -588,153 +618,156 @@ msgstr "读取时序文件出错:%s" msgid "invalid timing file line: %s" msgstr "无效的时序文件行:%s" -#: logsrvd/iolog_writer.c:130 plugins/sudoers/logging.c:804 -#: plugins/sudoers/policy.c:550 -msgid "unable to generate UUID" -msgstr "无法生成 UUID" +#: logsrvd/iolog_writer.c:65 +#, c-format +msgid "%s: protocol error: NULL key" +msgstr "%s:协议错误:NULL 键" -#: logsrvd/iolog_writer.c:158 logsrvd/iolog_writer.c:176 -#: logsrvd/iolog_writer.c:185 logsrvd/iolog_writer.c:203 -#: logsrvd/iolog_writer.c:216 logsrvd/iolog_writer.c:229 -#: logsrvd/iolog_writer.c:240 logsrvd/iolog_writer.c:247 -#: logsrvd/iolog_writer.c:265 logsrvd/iolog_writer.c:272 -#: logsrvd/iolog_writer.c:290 logsrvd/iolog_writer.c:305 -#: logsrvd/iolog_writer.c:318 logsrvd/iolog_writer.c:331 -#: logsrvd/iolog_writer.c:344 logsrvd/iolog_writer.c:359 +#: logsrvd/iolog_writer.c:69 #, c-format msgid "%s: protocol error: wrong type for %s" msgstr "%s:协议错误:%s 的错误类型" -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:375 -#: logsrvd/iolog_writer.c:380 logsrvd/iolog_writer.c:385 +#: logsrvd/iolog_writer.c:74 logsrvd/logsrvd_local.c:109 +#: logsrvd/logsrvd_local.c:123 logsrvd/logsrvd_local.c:131 +#: logsrvd/logsrvd_local.c:149 +#, c-format +msgid "%s: protocol error: NULL value found in %s" +msgstr "%s:协议错误:%s 中找到了 NULL 值" + +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:976 +#: plugins/sudoers/policy.c:591 +msgid "unable to generate UUID" +msgstr "无法生成 UUID" + +#: logsrvd/iolog_writer.c:341 logsrvd/iolog_writer.c:346 +#: logsrvd/iolog_writer.c:351 logsrvd/iolog_writer.c:356 #, c-format msgid "%s: protocol error: %s missing from AcceptMessage" msgstr "%s:协议错误:AcceptMessage 中 %s 缺失" -#: logsrvd/iolog_writer.c:446 +#: logsrvd/iolog_writer.c:417 #, c-format msgid "%s: unable to format session id" msgstr "%s:无法格式化会话 id" -#: logsrvd/iolog_writer.c:460 logsrvd/iolog_writer.c:474 -#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:503 -#: logsrvd/iolog_writer.c:517 logsrvd/iolog_writer.c:531 +#: logsrvd/iolog_writer.c:431 logsrvd/iolog_writer.c:445 +#: logsrvd/iolog_writer.c:459 logsrvd/iolog_writer.c:474 +#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:502 #, c-format msgid "%s: %s is not set" msgstr "%s:%s 未设置" -#: logsrvd/iolog_writer.c:567 logsrvd/iolog_writer.c:574 +#: logsrvd/iolog_writer.c:538 logsrvd/iolog_writer.c:545 #, c-format msgid "unable to expand iolog path %s" msgstr "无法展开 iolog 路径 %s" -#: logsrvd/iolog_writer.c:592 +#: logsrvd/iolog_writer.c:563 #, c-format msgid "unable to create iolog path %s" msgstr "无法创建 iolog 路径 %s" -#: logsrvd/iolog_writer.c:622 +#: logsrvd/iolog_writer.c:593 #, c-format msgid "invalid iofd %d" msgstr "无效的 iofd %d" -#: logsrvd/iolog_writer.c:642 +#: logsrvd/iolog_writer.c:613 #, c-format msgid "error closing iofd %d: %s" msgstr "关闭 iofd %d 时出错:%s" -#: logsrvd/iolog_writer.c:662 -#, fuzzy, c-format -#| msgid "error closing iofd %d: %s" +#: logsrvd/iolog_writer.c:633 +#, c-format msgid "error flushing iofd %d: %s" -msgstr "关闭 iofd %d 时出错:%s" +msgstr "冲刷 iofd %d 时出错:%s" -#: logsrvd/iolog_writer.c:777 +#: logsrvd/iolog_writer.c:751 #, c-format msgid "invalid I/O log %s: %s referenced but not present" msgstr "无效的 I/O 日志 %s:%s 被引用但不存在" -#: logsrvd/iolog_writer.c:789 logsrvd/logsrvd_journal.c:377 -#, fuzzy, c-format -#| msgid "unable to find resume point [%lld, %ld] in %s/%s" +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:382 +#, c-format msgid "%s: unable to find resume point [%lld, %ld]" -msgstr "无法找到恢复点 [%lld, %ld](在 %s/%s 中)" - -#: logsrvd/iolog_writer.c:811 logsrvd/logsrvd_journal.c:420 -#: logsrvd/logsrvd_queue.c:110 logsrvd/tls_init.c:245 -#: plugins/sudoers/check.c:273 plugins/sudoers/cvtsudoers.c:730 -#: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1442 -#: plugins/sudoers/cvtsudoers_csv.c:681 plugins/sudoers/cvtsudoers_json.c:885 -#: plugins/sudoers/cvtsudoers_ldif.c:697 plugins/sudoers/sudoers.c:1092 -#: plugins/sudoers/sudoreplay.c:1469 plugins/sudoers/timestamp.c:433 -#: plugins/sudoers/tsdump.c:128 plugins/sudoers/visudo.c:949 +msgstr "%s:无法找到恢复点 [%lld, %ld]" + +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:425 +#: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 +#: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 +#: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 +#: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1113 +#: plugins/sudoers/sudoers.c:1143 plugins/sudoers/sudoreplay.c:1469 +#: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 +#: plugins/sudoers/visudo.c:971 #, c-format msgid "unable to open %s" msgstr "无法打开 %s" -#: logsrvd/iolog_writer.c:823 logsrvd/logsrv_util.c:100 -#: logsrvd/logsrv_util.c:107 plugins/sudoers/sudoreplay.c:362 +#: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:362 #: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "unable to open %s/%s" msgstr "无法打开 %s/%s" -#: logsrvd/iolog_writer.c:836 +#: logsrvd/iolog_writer.c:810 #, c-format msgid "unable to copy %s/%s to %s/%s: %s" msgstr "无法复制 %s/%s 到 %s/%s:%s" -#: logsrvd/iolog_writer.c:865 logsrvd/logsrvd_journal.c:185 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:195 #, c-format msgid "unable to rename %s to %s" msgstr "无法将 %s 重命名为 %s" -#: logsrvd/logsrv_util.c:139 logsrvd/logsrv_util.c:168 -#, fuzzy, c-format -#| msgid "unable to find resume point [%lld, %ld] in %s/%s" +#: logsrvd/logsrv_util.c:147 logsrvd/logsrv_util.c:176 +#, c-format msgid "%s/%s: unable to find resume point [%lld, %ld]" -msgstr "无法找到恢复点 [%lld, %ld](在 %s/%s 中)" +msgstr "%s/%s:无法找到恢复点 [%lld, %ld]" -#: logsrvd/logsrv_util.c:151 +#: logsrvd/logsrv_util.c:159 #, c-format msgid "missing I/O log file %s/%s" msgstr "缺失 I/O 日志文件 %s/%s" -#: logsrvd/logsrv_util.c:158 +#: logsrvd/logsrv_util.c:166 #, c-format msgid "%s/%s: unable to seek forward %zu" msgstr "%s/%s:无法向前查找 %zu" -#: logsrvd/logsrvd.c:266 logsrvd/logsrvd_queue.c:130 +#: logsrvd/logsrvd.c:271 logsrvd/logsrvd_queue.c:135 msgid "unable to connect to relay" msgstr "无法连接到中继" -#: logsrvd/logsrvd.c:325 logsrvd/logsrvd_relay.c:835 +#: logsrvd/logsrvd.c:330 logsrvd/logsrvd_relay.c:842 #, c-format msgid "server message too large: %zu" msgstr "服务器消息过大:%zu" -#: logsrvd/logsrvd.c:417 logsrvd/logsrvd.c:534 logsrvd/logsrvd.c:613 -#: logsrvd/logsrvd.c:837 logsrvd/logsrvd.c:851 logsrvd/logsrvd.c:1010 -#: logsrvd/logsrvd.c:1134 logsrvd/logsrvd.c:1307 logsrvd/logsrvd.c:1325 -#: logsrvd/logsrvd.c:1423 logsrvd/logsrvd.c:1546 logsrvd/logsrvd.c:1730 -#: logsrvd/logsrvd_journal.c:489 logsrvd/logsrvd_local.c:197 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_relay.c:167 -#: logsrvd/logsrvd_relay.c:244 logsrvd/logsrvd_relay.c:248 -#: logsrvd/logsrvd_relay.c:384 logsrvd/logsrvd_relay.c:576 -#: logsrvd/logsrvd_relay.c:737 logsrvd/logsrvd_relay.c:1121 -#: logsrvd/sendlog.c:1316 logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 -#: logsrvd/tls_client.c:209 plugins/sudoers/audit.c:276 -#: plugins/sudoers/iolog.c:1027 plugins/sudoers/iolog.c:1160 -#: plugins/sudoers/iolog.c:1258 plugins/sudoers/log_client.c:116 -#: plugins/sudoers/log_client.c:332 plugins/sudoers/log_client.c:348 -#: plugins/sudoers/log_client.c:395 plugins/sudoers/log_client.c:599 -#: plugins/sudoers/log_client.c:606 plugins/sudoers/log_client.c:1131 -#: plugins/sudoers/log_client.c:1413 plugins/sudoers/log_client.c:1454 -#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1618 -#: plugins/sudoers/log_client.c:1734 plugins/sudoers/log_client.c:2053 -#: plugins/sudoers/log_client.c:2061 plugins/sudoers/logging.c:142 -#: plugins/sudoers/logging.c:199 plugins/sudoers/sudoreplay.c:522 +#: logsrvd/logsrvd.c:422 logsrvd/logsrvd.c:545 logsrvd/logsrvd.c:631 +#: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 +#: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 +#: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 +#: logsrvd/logsrvd_journal.c:494 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 +#: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 +#: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 +#: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 +#: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 +#: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 +#: plugins/sudoers/iolog.c:1033 plugins/sudoers/iolog.c:1166 +#: plugins/sudoers/iolog.c:1264 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 +#: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 +#: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 +#: plugins/sudoers/log_client.c:1385 plugins/sudoers/log_client.c:1426 +#: plugins/sudoers/log_client.c:1434 plugins/sudoers/log_client.c:1593 +#: plugins/sudoers/log_client.c:1711 plugins/sudoers/log_client.c:2040 +#: plugins/sudoers/log_client.c:2048 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:522 #: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 #: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 #: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 @@ -743,623 +776,658 @@ msgstr "服务器消息过大:%zu" msgid "unable to add event to queue" msgstr "无法将事件添加到队列" -#: logsrvd/logsrvd.c:441 logsrvd/logsrvd.c:478 logsrvd/logsrvd.c:510 -#: logsrvd/logsrvd.c:558 logsrvd/logsrvd.c:630 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:720 logsrvd/logsrvd_relay.c:505 -#: logsrvd/logsrvd_relay.c:538 +#: logsrvd/logsrvd.c:446 logsrvd/logsrvd.c:483 logsrvd/logsrvd.c:515 +#: logsrvd/logsrvd.c:569 logsrvd/logsrvd.c:648 logsrvd/logsrvd.c:684 +#: logsrvd/logsrvd.c:720 logsrvd/logsrvd.c:756 logsrvd/logsrvd_relay.c:510 +#: logsrvd/logsrvd_relay.c:543 #, c-format msgid "unexpected state %d for %s" msgstr "未预期的状态 %d 对于 %s" -#: logsrvd/logsrvd.c:442 logsrvd/logsrvd.c:479 logsrvd/logsrvd.c:511 -#: logsrvd/logsrvd.c:559 logsrvd/logsrvd.c:631 logsrvd/logsrvd.c:661 -#: logsrvd/logsrvd.c:691 logsrvd/logsrvd.c:721 logsrvd/logsrvd_relay.c:507 -#: logsrvd/logsrvd_relay.c:540 +#: logsrvd/logsrvd.c:447 logsrvd/logsrvd.c:484 logsrvd/logsrvd.c:516 +#: logsrvd/logsrvd.c:570 logsrvd/logsrvd.c:649 logsrvd/logsrvd.c:685 +#: logsrvd/logsrvd.c:721 logsrvd/logsrvd.c:757 logsrvd/logsrvd_relay.c:512 +#: logsrvd/logsrvd_relay.c:545 msgid "state machine error" msgstr "状态机错误" -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:449 +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:454 msgid "invalid AcceptMessage" msgstr "无效的 AcceptMessage" -#: logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:486 +#: logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:491 msgid "invalid RejectMessage" msgstr "无效的 RejectMessage" -#: logsrvd/logsrvd.c:593 logsrvd/logsrvd.c:594 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:523 +msgid "invalid ExitMessage" +msgstr "无效的 ExitMessage" + +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:577 +msgid "invalid RestartMessage" +msgstr "无效的 RestartMessage" + +#: logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:612 msgid "invalid AlertMessage" msgstr "无效的 AlertMessage" -#: logsrvd/logsrvd.c:635 logsrvd/logsrvd.c:665 logsrvd/logsrvd.c:695 +#: logsrvd/logsrvd.c:653 logsrvd/logsrvd.c:689 logsrvd/logsrvd.c:725 #, c-format msgid "%s: unexpected IoBuffer" msgstr "%s:未预期的 IoBuffer" -#: logsrvd/logsrvd.c:636 logsrvd/logsrvd.c:666 logsrvd/logsrvd.c:696 +#: logsrvd/logsrvd.c:654 logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:726 msgid "protocol error" msgstr "协议错误" -#: logsrvd/logsrvd.c:791 logsrvd/logsrvd_journal.c:357 -#: logsrvd/logsrvd_local.c:125 logsrvd/logsrvd_relay.c:671 -#, fuzzy, c-format -#| msgid "%s: unexpected type_case value %d" +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:661 +msgid "invalid IoBuffer" +msgstr "无效的 IoBuffer" + +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:697 +msgid "invalid ChangeWindowSize" +msgstr "无效的 ChangeWindowSize" + +#: logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:733 +msgid "invalid CommandSuspend" +msgstr "无效的 CommandSuspend" + +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:293 +#: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 +#: plugins/sudoers/log_client.c:1583 +#, c-format +msgid "unable to unpack %s size %zu" +msgstr "无法解包 %s,大小为 %zu" + +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:367 +#: logsrvd/logsrvd_relay.c:676 +#, c-format msgid "unexpected type_case value %d in %s from %s" -msgstr "%s:未预期的 type_case 值 %d" +msgstr "未预期的 type_case 值 %d 在 %s 来自 %s" -#: logsrvd/logsrvd.c:793 +#: logsrvd/logsrvd.c:829 msgid "unrecognized ClientMessage type" msgstr "无法识别的 ClientMessage 类型" -#: logsrvd/logsrvd.c:883 +#: logsrvd/logsrvd.c:919 #, c-format msgid "timed out writing to client %s" msgstr "写入客户端 %s 时超时" -#: logsrvd/logsrvd.c:888 logsrvd/logsrvd_relay.c:907 logsrvd/sendlog.c:1420 -#, fuzzy, c-format -#| msgid "missing write buffer" +#: logsrvd/logsrvd.c:924 logsrvd/logsrvd_relay.c:914 logsrvd/sendlog.c:1395 +#, c-format msgid "missing write buffer for client %s" -msgstr "缺失写缓冲" +msgstr "客户端 %s 缺失写缓冲" -#: logsrvd/logsrvd.c:981 +#: logsrvd/logsrvd.c:1020 #, c-format msgid "timed out reading from client %s" msgstr "从客户端 %s 读取超时" -#: logsrvd/logsrvd.c:1022 logsrvd/logsrvd_relay.c:771 +#: logsrvd/logsrvd.c:1061 logsrvd/logsrvd_relay.c:777 #, c-format msgid "EOF from %s without proper TLS shutdown" msgstr "没有正确关闭 TLS 连接的情况下接收到了来自 %s 的 EOF" -#: logsrvd/logsrvd.c:1065 logsrvd/logsrvd_relay.c:200 logsrvd/sendlog.c:317 -#: plugins/sudoers/log_client.c:709 +#: logsrvd/logsrvd.c:1105 logsrvd/logsrvd_relay.c:205 logsrvd/sendlog.c:322 +#: plugins/sudoers/log_client.c:721 #, c-format msgid "client message too large: %zu" msgstr "客户端消息过大:%zu" -#: logsrvd/logsrvd.c:1066 logsrvd/logsrvd_journal.c:246 -#: logsrvd/logsrvd_journal.c:247 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:256 +#: logsrvd/logsrvd_journal.c:257 msgid "client message too large" msgstr "客户端消息过长" -#: logsrvd/logsrvd.c:1084 logsrvd/logsrvd.c:1085 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1125 msgid "invalid ClientMessage" msgstr "无效的 ClientMessage" -#: logsrvd/logsrvd.c:1386 +#: logsrvd/logsrvd.c:1425 msgid "unable to get remote IP addr" msgstr "无法获取远程 IP 地址" -#: logsrvd/logsrvd.c:1415 logsrvd/tls_client.c:196 -#: plugins/sudoers/log_client.c:270 +#: logsrvd/logsrvd.c:1456 logsrvd/tls_client.c:203 +#: plugins/sudoers/log_client.c:281 #, c-format msgid "Unable to attach user data to the ssl object: %s" msgstr "无法将用户数据附加到 ssl 对象上:%s" -#: logsrvd/logsrvd.c:1596 logsrvd/logsrvd.c:1948 +#: logsrvd/logsrvd.c:1639 logsrvd/logsrvd.c:1992 msgid "unable to setup listen socket" msgstr "无法设置监听套接字" -#: logsrvd/logsrvd.c:1713 +#: logsrvd/logsrvd.c:1756 #, c-format msgid "unexpected signal %d" msgstr "未预期的信号 %d" -#: logsrvd/logsrvd.c:1850 +#: logsrvd/logsrvd.c:1894 msgid "sudo log server" msgstr "sudo 日志服务器" -#: logsrvd/logsrvd.c:1852 logsrvd/sendlog.c:116 +#: logsrvd/logsrvd.c:1896 logsrvd/sendlog.c:121 msgid "Options:" msgstr "选项:" -#: logsrvd/logsrvd.c:1854 +#: logsrvd/logsrvd.c:1898 msgid "path to configuration file" msgstr "配置文件路径" -#: logsrvd/logsrvd.c:1856 logsrvd/sendlog.c:118 +#: logsrvd/logsrvd.c:1900 logsrvd/sendlog.c:123 msgid "display help message and exit" msgstr "显示帮助信息并退出" -#: logsrvd/logsrvd.c:1858 +#: logsrvd/logsrvd.c:1902 msgid "do not fork, run in the foreground" msgstr "不要进行 fork,在前台运行" -#: logsrvd/logsrvd.c:1860 +#: logsrvd/logsrvd.c:1904 msgid "percent chance connections will drop" -msgstr "" +msgstr "连接被丢弃的百分比概率" -#: logsrvd/logsrvd.c:1862 logsrvd/sendlog.c:148 +#: logsrvd/logsrvd.c:1906 logsrvd/sendlog.c:153 msgid "display version information and exit" msgstr "显示版本信息并退出" -#: logsrvd/logsrvd.c:1912 logsrvd/sendlog.c:1725 +#: logsrvd/logsrvd.c:1956 logsrvd/sendlog.c:1702 msgid "Protobuf-C version 1.3 or higher required" msgstr "需要 Protobuf-C 1.3 版或更高版本" -#: logsrvd/logsrvd.c:1928 +#: logsrvd/logsrvd.c:1972 #, c-format msgid "invalid random drop value: %s" msgstr "无效的随机丢弃值:%s" -#: logsrvd/logsrvd.c:1931 logsrvd/sendlog.c:1779 +#: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 #: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 -#: plugins/sudoers/visudo.c:177 +#: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s 版本 %s\n" -#: logsrvd/logsrvd_conf.c:417 plugins/sudoers/check.c:335 -#: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:120 -#: plugins/sudoers/policy.c:1188 plugins/sudoers/sudoers.c:486 -#: plugins/sudoers/sudoers.c:1347 plugins/sudoers/testsudoers.c:215 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:353 +#: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 +#: plugins/sudoers/policy.c:1264 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:1372 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "未知用户 %s" -#: logsrvd/logsrvd_conf.c:434 plugins/sudoers/iolog.c:145 -#: plugins/sudoers/sudoers.c:491 plugins/sudoers/sudoers.c:1381 +#: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 +#: plugins/sudoers/sudoers.c:510 plugins/sudoers/sudoers.c:1406 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" msgstr "未知组 %s" -#: logsrvd/logsrvd_conf.c:452 +#: logsrvd/logsrvd_conf.c:457 #, c-format msgid "unable to parse iolog mode %s" msgstr "无法解析 iolog 模式 %s" -#: logsrvd/logsrvd_conf.c:469 logsrvd/logsrvd_conf.c:1238 +#: logsrvd/logsrvd_conf.c:474 logsrvd/logsrvd_conf.c:1243 #, c-format msgid "invalid value for %s: %s" msgstr "用于 %s 的无效的值:%s" -#: logsrvd/logsrvd_conf.c:522 +#: logsrvd/logsrvd_conf.c:527 msgid "TLS not supported" msgstr "不支持 TLS" -#: logsrvd/logsrvd_conf.c:544 +#: logsrvd/logsrvd_conf.c:549 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: logsrvd/logsrvd_conf.c:617 logsrvd/logsrvd_conf.c:1027 +#: logsrvd/logsrvd_conf.c:622 logsrvd/logsrvd_conf.c:1032 #, c-format msgid "%s: not a fully qualified path" msgstr "%s:不是完全合格的路径" -#: logsrvd/logsrvd_conf.c:945 logsrvd/logsrvd_conf.c:961 -#: logsrvd/logsrvd_conf.c:1671 +#: logsrvd/logsrvd_conf.c:951 logsrvd/logsrvd_conf.c:967 +#: logsrvd/logsrvd_conf.c:1676 #, c-format msgid "unknown syslog facility %s" msgstr "未知的 syslog 设施 %s" -#: logsrvd/logsrvd_conf.c:977 logsrvd/logsrvd_conf.c:993 -#: logsrvd/logsrvd_conf.c:1009 logsrvd/logsrvd_conf.c:1675 -#: logsrvd/logsrvd_conf.c:1679 logsrvd/logsrvd_conf.c:1683 +#: logsrvd/logsrvd_conf.c:983 logsrvd/logsrvd_conf.c:999 +#: logsrvd/logsrvd_conf.c:1015 logsrvd/logsrvd_conf.c:1680 +#: logsrvd/logsrvd_conf.c:1684 logsrvd/logsrvd_conf.c:1688 #, c-format msgid "unknown syslog priority %s" msgstr "位置的 syslog 优先级 %s" -#: logsrvd/logsrvd_conf.c:1192 +#: logsrvd/logsrvd_conf.c:1197 #, c-format msgid "%s:%d unmatched '[': %s" msgstr "%s:%d 不匹配的 '[':%s" -#: logsrvd/logsrvd_conf.c:1198 +#: logsrvd/logsrvd_conf.c:1203 #, c-format msgid "%s:%d garbage after ']': %s" msgstr "%s:%d 多余内容出现在 '[' 之后:%s" -#: logsrvd/logsrvd_conf.c:1210 +#: logsrvd/logsrvd_conf.c:1215 #, c-format msgid "%s:%d invalid config section: %s" msgstr "%s:%d 无效的配置段:%s" -#: logsrvd/logsrvd_conf.c:1218 +#: logsrvd/logsrvd_conf.c:1223 #, c-format msgid "%s:%d invalid configuration line: %s" msgstr "%s:%d 无效的配置行:%s" -#: logsrvd/logsrvd_conf.c:1224 +#: logsrvd/logsrvd_conf.c:1229 #, c-format msgid "%s:%d expected section name: %s" -msgstr "" +msgstr "%s:%d 期望的节名称:%s" -#: logsrvd/logsrvd_conf.c:1246 +#: logsrvd/logsrvd_conf.c:1251 #, c-format msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] 无效键:%s" -#: logsrvd/logsrvd_conf.c:1276 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:857 +#: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 +#: plugins/sudoers/logging.c:1029 #, c-format msgid "unable to open log file %s" msgstr "无法打开日志文件 %s" -#: logsrvd/logsrvd_conf.c:1757 +#: logsrvd/logsrvd_conf.c:1763 msgid "unable to initialize server TLS context" msgstr "无法初始化服务器 TLS 上下文" -#: logsrvd/logsrvd_conf.c:1777 +#: logsrvd/logsrvd_conf.c:1783 msgid "unable to initialize relay TLS context" msgstr "无法初始化中继 TLS 上下文" -#: logsrvd/logsrvd_journal.c:136 logsrvd/logsrvd_journal.c:416 -#: logsrvd/logsrvd_journal.c:421 +#: logsrvd/logsrvd_journal.c:146 logsrvd/logsrvd_journal.c:421 +#: logsrvd/logsrvd_journal.c:426 msgid "unable to create journal file" msgstr "无法创建日志文件" -#: logsrvd/logsrvd_journal.c:140 logsrvd/logsrvd_queue.c:104 -#: plugins/sudoers/visudo.c:1007 +#: logsrvd/logsrvd_journal.c:150 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1026 #, c-format msgid "unable to lock %s" msgstr "无法锁定 %s" -#: logsrvd/logsrvd_journal.c:143 +#: logsrvd/logsrvd_journal.c:153 msgid "unable to lock journal file" msgstr "无法锁定日志文件" -#: logsrvd/logsrvd_journal.c:151 +#: logsrvd/logsrvd_journal.c:161 msgid "unable to open journal file" msgstr "无法打开日志文件" -#: logsrvd/logsrvd_journal.c:172 logsrvd/logsrvd_journal.c:452 -#: logsrvd/logsrvd_journal.c:457 +#: logsrvd/logsrvd_journal.c:182 logsrvd/logsrvd_journal.c:457 +#: logsrvd/logsrvd_journal.c:462 msgid "unable to write journal file" msgstr "无法写入日志文件" -#: logsrvd/logsrvd_journal.c:180 logsrvd/logsrvd_journal.c:187 +#: logsrvd/logsrvd_journal.c:190 logsrvd/logsrvd_journal.c:197 msgid "unable to rename journal file" msgstr "无法重命名日志文件" -#: logsrvd/logsrvd_journal.c:234 logsrvd/logsrvd_journal.c:235 -#: logsrvd/logsrvd_journal.c:269 logsrvd/logsrvd_journal.c:270 +#: logsrvd/logsrvd_journal.c:244 logsrvd/logsrvd_journal.c:245 +#: logsrvd/logsrvd_journal.c:279 logsrvd/logsrvd_journal.c:280 msgid "unexpected EOF reading journal file" msgstr "读取日志文件时未预期的 EOF" -#: logsrvd/logsrvd_journal.c:238 logsrvd/logsrvd_journal.c:239 -#: logsrvd/logsrvd_journal.c:273 logsrvd/logsrvd_journal.c:274 +#: logsrvd/logsrvd_journal.c:248 logsrvd/logsrvd_journal.c:249 +#: logsrvd/logsrvd_journal.c:283 logsrvd/logsrvd_journal.c:284 msgid "error reading journal file" msgstr "读取日志文件出错" -#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:376 +#: logsrvd/logsrvd_journal.c:295 logsrvd/logsrvd_journal.c:381 msgid "invalid journal file, unable to restart" msgstr "无效的日志文件,无法重新启动" -#: logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_journal.c:440 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "无法 seek 跳转到 [%lld, %ld](在日志文件 %s 中)" -#: logsrvd/logsrvd_local.c:153 +#: logsrvd/logsrvd_local.c:166 +#, c-format +msgid "unexpected value_case %d in %s from %s" +msgstr "未预期的 value_case 值 %d 在 %s 来自 %s" + +#: logsrvd/logsrvd_local.c:194 msgid "error parsing AcceptMessage" msgstr "解析 AcceptMessage 出错" -#: logsrvd/logsrvd_local.c:164 +#: logsrvd/logsrvd_local.c:205 msgid "error creating I/O log" msgstr "创建 I/O 日志出错" -#: logsrvd/logsrvd_local.c:187 +#: logsrvd/logsrvd_local.c:228 msgid "error logging accept event" msgstr "记录接受事件时出错" -#: logsrvd/logsrvd_local.c:226 +#: logsrvd/logsrvd_local.c:267 msgid "error parsing RejectMessage" msgstr "解析 RejectMessage 出错" -#: logsrvd/logsrvd_local.c:250 +#: logsrvd/logsrvd_local.c:291 msgid "error logging reject event" msgstr "记录拒绝事件时出错" -#: logsrvd/logsrvd_local.c:386 logsrvd/logsrvd_local.c:394 +#: logsrvd/logsrvd_local.c:427 logsrvd/logsrvd_local.c:435 msgid "error logging exit event" msgstr "记录退出事件时出错" -#: logsrvd/logsrvd_local.c:451 logsrvd/logsrvd_local.c:452 +#: logsrvd/logsrvd_local.c:492 logsrvd/logsrvd_local.c:493 msgid "log is already complete, cannot be restarted" msgstr "日志已完成,无法重新启动" -#: logsrvd/logsrvd_local.c:482 +#: logsrvd/logsrvd_local.c:523 msgid "unable to restart log" msgstr "无法重新启动 log" -#: logsrvd/logsrvd_local.c:498 +#: logsrvd/logsrvd_local.c:539 msgid "error parsing AlertMessage" msgstr "解析 AlertMessage 出错" -#: logsrvd/logsrvd_local.c:508 +#: logsrvd/logsrvd_local.c:549 msgid "error logging alert event" msgstr "记录警告事件时出错" -#: logsrvd/logsrvd_local.c:544 logsrvd/logsrvd_local.c:607 -#: logsrvd/logsrvd_local.c:642 +#: logsrvd/logsrvd_local.c:585 logsrvd/logsrvd_local.c:648 +#: logsrvd/logsrvd_local.c:683 #, c-format msgid "unable to format timing buffer, length %d" msgstr "无法格式化时间缓冲区,长度 %d" -#: logsrvd/logsrvd_local.c:558 logsrvd/logsrvd_local.c:566 -#: logsrvd/logsrvd_local.c:614 logsrvd/logsrvd_local.c:649 +#: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 +#: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 #: plugins/sudoers/sudoreplay.c:351 #, c-format msgid "%s/%s: %s" msgstr "%s/%s:%s" -#: logsrvd/logsrvd_local.c:577 +#: logsrvd/logsrvd_local.c:618 msgid "randomly dropping connection" msgstr "随机丢弃连接" -#: logsrvd/logsrvd_local.c:589 +#: logsrvd/logsrvd_local.c:630 msgid "error writing IoBuffer" msgstr "写入 IoBuffer 出错" -#: logsrvd/logsrvd_local.c:624 +#: logsrvd/logsrvd_local.c:665 msgid "error writing ChangeWindowSize" msgstr "写入 ChangeWindowSize 出错" -#: logsrvd/logsrvd_local.c:659 +#: logsrvd/logsrvd_local.c:700 msgid "error writing CommandSuspend" msgstr "写入 CommandSuspend 出错" -#: logsrvd/logsrvd_relay.c:430 +#: logsrvd/logsrvd_relay.c:435 msgid "TLS handshake with relay host failed" msgstr "与中继主机的 TLS 握手失败" -#: logsrvd/logsrvd_relay.c:458 +#: logsrvd/logsrvd_relay.c:463 msgid "unable to connect to relay host" msgstr "无法连接到中继主机" -#: logsrvd/logsrvd_relay.c:513 +#: logsrvd/logsrvd_relay.c:518 #, c-format msgid "%s: invalid ServerHello, missing server_id" msgstr "%s:无效的 ServerHello,缺少 server_id" -#: logsrvd/logsrvd_relay.c:515 logsrvd/sendlog.c:1121 -#: plugins/sudoers/log_client.c:1497 +#: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 +#: plugins/sudoers/log_client.c:1469 msgid "invalid ServerHello" msgstr "无效的 ServerHello" -#: logsrvd/logsrvd_relay.c:674 +#: logsrvd/logsrvd_relay.c:679 msgid "unrecognized ServerMessage type" msgstr "无法识别的 ServerMessage 类型" -#: logsrvd/logsrvd_relay.c:703 +#: logsrvd/logsrvd_relay.c:708 #, c-format msgid "timed out reading from relay %s (%s)" msgstr "从中继 %s 读取超时(%s)" -#: logsrvd/logsrvd_relay.c:705 +#: logsrvd/logsrvd_relay.c:710 msgid "timeout reading from relay" msgstr "从中继读取超时" -#: logsrvd/logsrvd_relay.c:757 +#: logsrvd/logsrvd_relay.c:762 msgid "relay host name does not match certificate" msgstr "中继主机名称与证书不匹配" -#: logsrvd/logsrvd_relay.c:763 logsrvd/logsrvd_relay.c:776 -#: logsrvd/logsrvd_relay.c:782 +#: logsrvd/logsrvd_relay.c:768 logsrvd/logsrvd_relay.c:782 +#: logsrvd/logsrvd_relay.c:789 msgid "error reading from relay" msgstr "从中继读取出错" -#: logsrvd/logsrvd_relay.c:803 +#: logsrvd/logsrvd_relay.c:810 msgid "unable to read from relay" msgstr "无法从中继读取" -#: logsrvd/logsrvd_relay.c:818 logsrvd/logsrvd_relay.c:936 +#: logsrvd/logsrvd_relay.c:825 logsrvd/logsrvd_relay.c:943 msgid "relay server closed connection" msgstr "中继服务器关闭了连接" -#: logsrvd/logsrvd_relay.c:836 +#: logsrvd/logsrvd_relay.c:843 msgid "server message too large" msgstr "服务器消息过大" -#: logsrvd/logsrvd_relay.c:900 +#: logsrvd/logsrvd_relay.c:907 #, c-format msgid "timed out writing to relay %s (%s)" msgstr "写入中继 %s 时超时(%s)" -#: logsrvd/logsrvd_relay.c:902 +#: logsrvd/logsrvd_relay.c:909 msgid "timeout writing to relay" msgstr "写入中继时超时" -#: logsrvd/logsrvd_relay.c:955 logsrvd/logsrvd_relay.c:961 -#: logsrvd/logsrvd_relay.c:971 +#: logsrvd/logsrvd_relay.c:962 logsrvd/logsrvd_relay.c:969 +#: logsrvd/logsrvd_relay.c:981 msgid "error writing to relay" msgstr "写入中继时出错" -#: logsrvd/sendlog.c:114 +#: logsrvd/sendlog.c:119 msgid "send sudo I/O log to remote server" msgstr "将 sudo I/O 日志发送到远程服务器" -#: logsrvd/sendlog.c:120 +#: logsrvd/sendlog.c:125 msgid "only send an accept event (no I/O)" msgstr "只发送一个 accept 事件(没有 I/O)" -#: logsrvd/sendlog.c:123 +#: logsrvd/sendlog.c:128 msgid "certificate bundle file to verify server's cert against" msgstr "" -#: logsrvd/sendlog.c:125 +#: logsrvd/sendlog.c:130 msgid "certificate file for TLS handshake" msgstr "用于 TLS 握手的证书文件" -#: logsrvd/sendlog.c:128 +#: logsrvd/sendlog.c:133 msgid "host to send logs to" msgstr "主机发送日志到" -#: logsrvd/sendlog.c:130 +#: logsrvd/sendlog.c:135 msgid "remote ID of I/O log to be resumed" msgstr "" -#: logsrvd/sendlog.c:133 +#: logsrvd/sendlog.c:138 msgid "private key file" msgstr "私钥文件" -#: logsrvd/sendlog.c:135 +#: logsrvd/sendlog.c:140 msgid "do not verify server certificate" msgstr "不要验证服务器证书" -#: logsrvd/sendlog.c:138 +#: logsrvd/sendlog.c:143 msgid "port to use when connecting to host" msgstr "连接到主机时使用的端口" -#: logsrvd/sendlog.c:140 +#: logsrvd/sendlog.c:145 msgid "restart previous I/O log transfer" msgstr "重新开始先前的 I/O 日志传输" -#: logsrvd/sendlog.c:142 +#: logsrvd/sendlog.c:147 msgid "reject the command with the given reason" msgstr "" -#: logsrvd/sendlog.c:144 +#: logsrvd/sendlog.c:149 msgid "stop transfer after reaching this time" msgstr "" -#: logsrvd/sendlog.c:146 +#: logsrvd/sendlog.c:151 msgid "test audit server by sending selected I/O log n times in parallel" msgstr "" -#: logsrvd/sendlog.c:171 plugins/sudoers/log_client.c:441 +#: logsrvd/sendlog.c:176 plugins/sudoers/log_client.c:453 #, c-format msgid "unable to look up %s:%s: %s" msgstr "无法查找 %s:%s:%s" -#: logsrvd/sendlog.c:209 +#: logsrvd/sendlog.c:214 msgid "unable to get server IP addr" msgstr "无法获取服务器 IP 地址" -#: logsrvd/sendlog.c:295 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:871 #, c-format msgid "unable to read %s/%s: %s" msgstr "无法读取 %s/%s:%s" -#: logsrvd/sendlog.c:1045 plugins/sudoers/iolog.c:945 -#: plugins/sudoers/iolog.c:1020 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:951 +#: plugins/sudoers/iolog.c:1026 #, c-format msgid "unexpected I/O event %d" msgstr "未预期的 I/O 事件 %d" -#: logsrvd/sendlog.c:1098 logsrvd/sendlog.c:1115 logsrvd/sendlog.c:1149 -#: plugins/sudoers/log_client.c:1146 plugins/sudoers/log_client.c:1423 -#: plugins/sudoers/log_client.c:1491 plugins/sudoers/log_client.c:1530 +#: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1395 +#: plugins/sudoers/log_client.c:1463 plugins/sudoers/log_client.c:1502 #, c-format msgid "%s: unexpected state %d" msgstr "%s:未预期的状态 %d" -#: logsrvd/sendlog.c:1185 plugins/sudoers/log_client.c:1576 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1551 #, c-format msgid "error message received from server: %s" msgstr "从服务器收到了错误消息:%s" -#: logsrvd/sendlog.c:1198 plugins/sudoers/log_client.c:1589 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1564 #, c-format msgid "abort message received from server: %s" msgstr "从服务器收到了中止消息:%s" -#: logsrvd/sendlog.c:1257 plugins/sudoers/log_client.c:1639 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1614 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s:未预期的 type_case 值 %d" -#: logsrvd/sendlog.c:1286 +#: logsrvd/sendlog.c:1261 msgid "timeout reading from server" msgstr "从服务器读取超时" -#: logsrvd/sendlog.c:1368 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1730 +msgid "host name does not match certificate" +msgstr "主机名称与证书不匹配" + +#: logsrvd/sendlog.c:1343 msgid "premature EOF" msgstr "过早的文件结束" -#: logsrvd/sendlog.c:1381 plugins/sudoers/log_client.c:1800 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1777 #, c-format msgid "server message too large: %u" msgstr "服务器消息过大:%u" -#: logsrvd/sendlog.c:1437 +#: logsrvd/sendlog.c:1412 msgid "timeout writing to server" msgstr "写入服务器时超时" -#: logsrvd/sendlog.c:1802 +#: logsrvd/sendlog.c:1779 msgid "both restart point and iolog ID must be specified" msgstr "" -#: logsrvd/sendlog.c:1806 +#: logsrvd/sendlog.c:1783 msgid "a restart point may not be set when no I/O is sent" msgstr "" -#: logsrvd/sendlog.c:1882 +#: logsrvd/sendlog.c:1859 #, c-format msgid "exited prematurely with state %d" msgstr "过早地退出,状态码为 %d" -#: logsrvd/sendlog.c:1883 +#: logsrvd/sendlog.c:1860 #, c-format msgid "elapsed time sent to server [%lld, %ld]" msgstr "" -#: logsrvd/sendlog.c:1885 +#: logsrvd/sendlog.c:1862 #, c-format msgid "commit point received from server [%lld, %ld]" msgstr "" -#: logsrvd/tls_client.c:106 plugins/sudoers/log_client.c:304 +#: logsrvd/tls_client.c:111 plugins/sudoers/log_client.c:315 msgid "TLS handshake timeout occurred" msgstr "TLS 握手超时" -#: logsrvd/tls_client.c:126 logsrvd/tls_client.c:142 -#: plugins/sudoers/log_client.c:326 plugins/sudoers/log_client.c:342 +#: logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 +#: plugins/sudoers/log_client.c:337 plugins/sudoers/log_client.c:353 msgid "unable to set event" msgstr "无法设置事件" -#: logsrvd/tls_client.c:152 logsrvd/tls_client.c:156 +#: logsrvd/tls_client.c:157 logsrvd/tls_client.c:161 #, c-format msgid "TLS connection failed: %s" msgstr "TLS 连接失败:%s" -#: logsrvd/tls_client.c:190 +#: logsrvd/tls_client.c:196 #, c-format msgid "unable to allocate ssl object: %s" msgstr "无法分配 ssl 对象:%s" -#: logsrvd/tls_client.c:203 +#: logsrvd/tls_client.c:210 #, c-format msgid "Unable to attach socket to the ssl object: %s" msgstr "无法将套接字附加给 ssl 对象:%s" -#: logsrvd/tls_client.c:231 +#: logsrvd/tls_client.c:238 msgid "unable to initialize TLS context" msgstr "无法初始化 TLS 上下文" -#: logsrvd/tls_init.c:127 logsrvd/tls_init.c:135 +#: logsrvd/tls_init.c:138 logsrvd/tls_init.c:146 #, c-format msgid "unable to set TLS 1.2 ciphersuite to %s: %s" msgstr "无法将 TLS 1.2 密码套件设置为 %s: %s" -#: logsrvd/tls_init.c:155 logsrvd/tls_init.c:163 +#: logsrvd/tls_init.c:166 logsrvd/tls_init.c:174 #, c-format msgid "unable to set TLS 1.3 ciphersuite to %s: %s" msgstr "无法将 TLS 1.3 密码套件设置为 %s: %s" -#: logsrvd/tls_init.c:195 logsrvd/tls_init.c:216 +#: logsrvd/tls_init.c:206 logsrvd/tls_init.c:227 #, c-format msgid "unable to set diffie-hellman parameters: %s" msgstr "无法设置 diffie-hellman 参数:%s" -#: logsrvd/tls_init.c:272 +#: logsrvd/tls_init.c:283 #, c-format msgid "unable to create TLS context: %s" msgstr "无法创建 TLS 上下文:%s" -#: logsrvd/tls_init.c:278 +#: logsrvd/tls_init.c:290 #, c-format msgid "unable to set minimum protocol version to TLS 1.2: %s" msgstr "无法将最低协议版本设置为 TLS 1.2:%s" -#: plugins/sudoers/audit.c:267 plugins/sudoers/audit.c:419 -#: plugins/sudoers/log_client.c:979 plugins/sudoers/log_client.c:1028 -#: plugins/sudoers/log_client.c:1077 plugins/sudoers/log_client.c:1203 -#: plugins/sudoers/logging.c:552 plugins/sudoers/logging.c:649 -#: plugins/sudoers/logging.c:811 plugins/sudoers/policy.c:123 +#: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 +#: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1175 +#: plugins/sudoers/logging.c:591 plugins/sudoers/logging.c:689 +#: plugins/sudoers/logging.c:792 plugins/sudoers/logging.c:983 +#: plugins/sudoers/policy.c:124 msgid "unable to get time of day" msgstr "无法获取时间" @@ -1415,47 +1483,47 @@ msgstr "" "认证服务器错误:\n" "%s" -#: plugins/sudoers/auth/kerb5.c:110 +#: plugins/sudoers/auth/kerb5.c:115 #, c-format msgid "%s: unable to convert principal to string ('%s'): %s" msgstr "%s:无法将主体(principal)转换为字符串(“%s”):%s" -#: plugins/sudoers/auth/kerb5.c:162 +#: plugins/sudoers/auth/kerb5.c:164 #, c-format msgid "%s: unable to parse '%s': %s" msgstr "%s:无法解析“%s”:%s" -#: plugins/sudoers/auth/kerb5.c:171 +#: plugins/sudoers/auth/kerb5.c:173 #, c-format msgid "%s: unable to resolve credential cache: %s" msgstr "%s:无法解析凭据缓存:%s" -#: plugins/sudoers/auth/kerb5.c:220 +#: plugins/sudoers/auth/kerb5.c:222 #, c-format msgid "%s: unable to allocate options: %s" msgstr "%s:无法分配选项:%s" -#: plugins/sudoers/auth/kerb5.c:235 +#: plugins/sudoers/auth/kerb5.c:237 #, c-format msgid "%s: unable to get credentials: %s" msgstr "%s:无法获取凭据:%s" -#: plugins/sudoers/auth/kerb5.c:248 +#: plugins/sudoers/auth/kerb5.c:250 #, c-format msgid "%s: unable to initialize credential cache: %s" msgstr "%s:无法初始化凭据缓存:%s" -#: plugins/sudoers/auth/kerb5.c:251 +#: plugins/sudoers/auth/kerb5.c:253 #, c-format msgid "%s: unable to store credential in cache: %s" msgstr "%s:无法在缓存中储存凭据:%s" -#: plugins/sudoers/auth/kerb5.c:315 +#: plugins/sudoers/auth/kerb5.c:317 #, c-format msgid "%s: unable to get host principal: %s" msgstr "%s:无法获取主机主体(principal):%s" -#: plugins/sudoers/auth/kerb5.c:329 +#: plugins/sudoers/auth/kerb5.c:331 #, c-format msgid "%s: Cannot verify TGT! Possible attack!: %s" msgstr "%s:无法验证目标!可能遭到了攻击!:%s" @@ -1496,7 +1564,7 @@ msgstr "账户过期,或 PAM 配置缺少 sudo 使用的“account”节,联 msgid "PAM account management error: %s" msgstr "PAM 账户管理出错:%s" -#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:255 +#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:271 #, c-format msgid "you do not exist in the %s database" msgstr "%s 数据库中没有您" @@ -1537,27 +1605,27 @@ msgstr "无效的 SecurID 密码长度" msgid "unable to initialize SIA session" msgstr "无法初始化 SIA 会话" -#: plugins/sudoers/auth/sudo_auth.c:134 +#: plugins/sudoers/auth/sudo_auth.c:135 msgid "invalid authentication methods" msgstr "无效的认证方法" -#: plugins/sudoers/auth/sudo_auth.c:136 +#: plugins/sudoers/auth/sudo_auth.c:137 msgid "Invalid authentication methods compiled into sudo! You may not mix standalone and non-standalone authentication." msgstr "编译进 sudo 的认证方法无效!您不能混用独立和非独立认证。" -#: plugins/sudoers/auth/sudo_auth.c:257 plugins/sudoers/auth/sudo_auth.c:309 +#: plugins/sudoers/auth/sudo_auth.c:258 plugins/sudoers/auth/sudo_auth.c:310 msgid "no authentication methods" msgstr "无认证方法" -#: plugins/sudoers/auth/sudo_auth.c:259 +#: plugins/sudoers/auth/sudo_auth.c:260 msgid "There are no authentication methods compiled into sudo! If you want to turn off authentication, use the --disable-authentication configure option." msgstr "sudo 编译时没有加入任何认证方法!如果您想关闭认证,使用 --disable-authentication 配置选项。" -#: plugins/sudoers/auth/sudo_auth.c:311 +#: plugins/sudoers/auth/sudo_auth.c:312 msgid "Unable to initialize authentication methods." msgstr "无法初始化认证方法。" -#: plugins/sudoers/auth/sudo_auth.c:482 +#: plugins/sudoers/auth/sudo_auth.c:486 msgid "Authentication methods:" msgstr "认证方法:" @@ -1569,19 +1637,19 @@ msgstr "无法确定审核条件" msgid "unable to commit audit record" msgstr "无法提交审核记录" -#: plugins/sudoers/check.c:263 +#: plugins/sudoers/check.c:285 #, fuzzy, c-format #| msgid "error reading timing file: %s" msgid "error reading lecture file %s" msgstr "读取时序文件出错:%s" -#: plugins/sudoers/check.c:269 +#: plugins/sudoers/check.c:288 #, fuzzy, c-format #| msgid "%s is not a regular file" msgid "ignoring lecture file %s: not a regular file" msgstr "%s 不是常规文件" -#: plugins/sudoers/check.c:282 +#: plugins/sudoers/check.c:301 msgid "" "\n" "We trust you have received the usual lecture from the local System\n" @@ -1601,33 +1669,29 @@ msgstr "" " #3) 权力越大,责任越大。\n" "\n" -#: plugins/sudoers/check.c:330 plugins/sudoers/check.c:340 -#: plugins/sudoers/sudoers.c:885 plugins/sudoers/sudoers.c:906 -#: plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:348 plugins/sudoers/check.c:358 +#: plugins/sudoers/parse.c:64 plugins/sudoers/sudoers.c:920 +#: plugins/sudoers/sudoers.c:941 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "未知的用户 ID %u" -#: plugins/sudoers/check_aliases.c:92 +#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1279 #, c-format -msgid "Error: %s:%d:%d: cycle in %s \"%s\"" -msgstr "错误:%s:%d:%d 在 %s “%s”中循环" +msgid "%s: %s\n" +msgstr "%s:%s\n" -#: plugins/sudoers/check_aliases.c:93 +#: plugins/sudoers/check_aliases.c:133 #, c-format -msgid "Warning: %s:%d:%d: cycle in %s \"%s\"" -msgstr "警告:%s:%d:%d 在 %s “%s”中循环" +msgid "cycle in %s \"%s\"" +msgstr "在 %s“%s”中循环" -#: plugins/sudoers/check_aliases.c:97 -#, c-format -msgid "Error: %s:%d:%d: %s \"%s\" referenced but not defined" +#: plugins/sudoers/check_aliases.c:136 +#, fuzzy, c-format +#| msgid "Error: %s:%d:%d: %s \"%s\" referenced but not defined" +msgid "%s \"%s\" referenced but not defined" msgstr "错误:%s:%d:%d:引用了 %s“%s”但尚未定义" -#: plugins/sudoers/check_aliases.c:98 -#, c-format -msgid "Warning: %s:%d:%d: %s \"%s\" referenced but not defined" -msgstr "警告:%s:%d:%d:引用了 %s“%s”但尚未定义" - #: plugins/sudoers/cvtsudoers.c:209 #, c-format msgid "order increment: %s: %s" @@ -1643,7 +1707,7 @@ msgstr "起始顺序:%s:%s" msgid "order padding: %s: %s" msgstr "顺序填充:%s: %s" -#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:179 +#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:184 #, c-format msgid "%s grammar version %d\n" msgstr "%s 语法版本 %d\n" @@ -1663,14 +1727,14 @@ msgstr "不支持的输出格式 %s" msgid "%s: input and output files must be different" msgstr "%s:输入和输出文件不能相同" -#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:159 -#: plugins/sudoers/sudoers.c:205 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:261 plugins/sudoers/visudo.c:620 -#: plugins/sudoers/visudo.c:953 +#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 +#: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:650 +#: plugins/sudoers/visudo.c:975 msgid "unable to initialize sudoers default values" msgstr "无法初始化 sudoers 默认值" -#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:433 +#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:434 #, c-format msgid "%s: %s: %s: %s" msgstr "%s:%s:%s:%s" @@ -1695,28 +1759,18 @@ msgstr "无效的压缩类型:%s" msgid "invalid filter: %s" msgstr "无效的过滤器:%s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:958 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:980 #, c-format msgid "failed to parse %s file, unknown error" msgstr "解析 %s 文件失败,未知错误" -#: plugins/sudoers/cvtsudoers.c:762 -#, c-format -msgid "parse error in %s near line %d\n" -msgstr "%s 中第 %d 行附近出现解析错误\n" - -#: plugins/sudoers/cvtsudoers.c:765 -#, c-format -msgid "parse error in %s\n" -msgstr "%s 中出现解析错误\n" - -#: plugins/sudoers/cvtsudoers.c:1489 plugins/sudoers/sudoreplay.c:1145 -#: plugins/sudoers/timestamp.c:317 plugins/sudoers/timestamp.c:320 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1145 +#: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" msgstr "无法写入 %s" -#: plugins/sudoers/cvtsudoers.c:1512 +#: plugins/sudoers/cvtsudoers.c:1506 #, c-format msgid "" "%s - convert between sudoers file formats\n" @@ -1725,7 +1779,7 @@ msgstr "" "%s - 转换 sudoers 文件格式\n" "\n" -#: plugins/sudoers/cvtsudoers.c:1514 +#: plugins/sudoers/cvtsudoers.c:1508 msgid "" "\n" "Options:\n" @@ -1766,31 +1820,31 @@ msgstr "" " -V, --version 显示版本信息并退出" #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 -#: plugins/sudoers/cvtsudoers_json.c:654 plugins/sudoers/cvtsudoers_json.c:669 +#: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:515 +#: plugins/sudoers/ldap.c:510 msgid "unable to get GMT time" msgstr "无法获取 GMT 时间" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 -#: plugins/sudoers/cvtsudoers_json.c:659 plugins/sudoers/cvtsudoers_json.c:674 +#: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:523 +#: plugins/sudoers/ldap.c:518 msgid "unable to format timestamp" msgstr "无法格式化时间戳" #: plugins/sudoers/cvtsudoers_json.c:480 plugins/sudoers/cvtsudoers_json.c:515 -#: plugins/sudoers/cvtsudoers_json.c:725 plugins/sudoers/defaults.c:190 +#: plugins/sudoers/cvtsudoers_json.c:728 #, c-format msgid "%s:%d:%d: unknown defaults entry \"%s\"" msgstr "%s:%d:%d:未知的默认条目“%s”" -#: plugins/sudoers/cvtsudoers_ldif.c:649 +#: plugins/sudoers/cvtsudoers_ldif.c:661 #, c-format msgid "too many sudoers entries, maximum %u" msgstr "sudoers 条目过多,最多为 %u" -#: plugins/sudoers/cvtsudoers_ldif.c:692 +#: plugins/sudoers/cvtsudoers_ldif.c:704 msgid "the SUDOERS_BASE environment variable is not set and the -b option was not specified." msgstr "没有设置 SUDOERS_BASE 环境变量,并且没有指定 -b 选项。" @@ -1837,816 +1891,798 @@ msgstr "" msgid "%s:%d:%d: removing Defaults \"%s\" overridden by subsequent entries" msgstr "" -#: plugins/sudoers/cvtsudoers_merge.c:1080 +#: plugins/sudoers/cvtsudoers_merge.c:1088 #, fuzzy, c-format #| msgid "%s:%d no value specified for \"%s\"" msgid "%s:%d:%d: merging userspec into %s:%d:%d" msgstr "%s:%d 没有给“%s”指定值" -#: plugins/sudoers/cvtsudoers_merge.c:1174 +#: plugins/sudoers/cvtsudoers_merge.c:1182 #, c-format msgid "%s:%d:%d: removing userspec overridden by subsequent entries" msgstr "" -#: plugins/sudoers/def_data.c:50 +#: plugins/sudoers/def_data.c:56 #, c-format msgid "Syslog facility if syslog is being used for logging: %s" msgstr "若使用了 syslog,用于记录日志的 syslog 设施:%s" -#: plugins/sudoers/def_data.c:54 +#: plugins/sudoers/def_data.c:60 #, c-format msgid "Syslog priority to use when user authenticates successfully: %s" msgstr "用户认证成功时使用的 syslog 优先级:%s" -#: plugins/sudoers/def_data.c:58 +#: plugins/sudoers/def_data.c:64 #, c-format msgid "Syslog priority to use when user authenticates unsuccessfully: %s" msgstr "用户认证不成功时使用的 syslog 优先级:%s" -#: plugins/sudoers/def_data.c:62 +#: plugins/sudoers/def_data.c:68 msgid "Put OTP prompt on its own line" msgstr "将 OPT 提示放在独自的行中" -#: plugins/sudoers/def_data.c:66 +#: plugins/sudoers/def_data.c:72 msgid "Ignore '.' in $PATH" msgstr "忽略 $PATH 中的“.”" -#: plugins/sudoers/def_data.c:70 +#: plugins/sudoers/def_data.c:76 msgid "Always send mail when sudo is run" msgstr "在运行 sudo 时总是发送邮件" -#: plugins/sudoers/def_data.c:74 +#: plugins/sudoers/def_data.c:80 msgid "Send mail if user authentication fails" msgstr "在用户认证失败时发送邮件" -#: plugins/sudoers/def_data.c:78 +#: plugins/sudoers/def_data.c:84 msgid "Send mail if the user is not in sudoers" msgstr "在用户不在 sudoers 列表中时发送邮件" -#: plugins/sudoers/def_data.c:82 +#: plugins/sudoers/def_data.c:88 msgid "Send mail if the user is not in sudoers for this host" msgstr "在用户不在此主机的 sudoers 列表中时发送邮件" -#: plugins/sudoers/def_data.c:86 +#: plugins/sudoers/def_data.c:92 msgid "Send mail if the user is not allowed to run a command" msgstr "在用户不允许执行某个命令时发送邮件" -#: plugins/sudoers/def_data.c:90 +#: plugins/sudoers/def_data.c:96 msgid "Send mail if the user tries to run a command" msgstr "在用户尝试执行某个命令时发送邮件" -#: plugins/sudoers/def_data.c:94 +#: plugins/sudoers/def_data.c:100 msgid "Use a separate timestamp for each user/tty combo" msgstr "对每个用户/终端组合使用独立的时间戳" -#: plugins/sudoers/def_data.c:98 +#: plugins/sudoers/def_data.c:104 msgid "Lecture user the first time they run sudo" msgstr "在用户第一次运行 sudo 时向他致辞" -#: plugins/sudoers/def_data.c:102 +#: plugins/sudoers/def_data.c:108 #, c-format msgid "File containing the sudo lecture: %s" msgstr "包含 sudo 致辞的文件:%s" -#: plugins/sudoers/def_data.c:106 +#: plugins/sudoers/def_data.c:112 msgid "Require users to authenticate by default" msgstr "默认要求用户认证" -#: plugins/sudoers/def_data.c:110 +#: plugins/sudoers/def_data.c:116 msgid "Root may run sudo" msgstr "root 可以运行 sudo" -#: plugins/sudoers/def_data.c:114 +#: plugins/sudoers/def_data.c:120 msgid "Log the hostname in the (non-syslog) log file" msgstr "将主机名记录在(非 syslog)的日志文件中" -#: plugins/sudoers/def_data.c:118 +#: plugins/sudoers/def_data.c:124 msgid "Log the year in the (non-syslog) log file" msgstr "将年份记录在(非 syslog)的日志文件中" -#: plugins/sudoers/def_data.c:122 +#: plugins/sudoers/def_data.c:128 msgid "If sudo is invoked with no arguments, start a shell" msgstr "如果不带参数调用 sudo,启动一个 shell" -#: plugins/sudoers/def_data.c:126 +#: plugins/sudoers/def_data.c:132 msgid "Set $HOME to the target user when starting a shell with -s" msgstr "若使用 -s 选项启动 shell,将 $HOME 设为目标用户的主目录" -#: plugins/sudoers/def_data.c:130 +#: plugins/sudoers/def_data.c:136 msgid "Always set $HOME to the target user's home directory" msgstr "总是将 $HOME 设为目标用户的主目录" -#: plugins/sudoers/def_data.c:134 +#: plugins/sudoers/def_data.c:140 msgid "Allow some information gathering to give useful error messages" msgstr "允许收集一些信息,以提供有用的错误消息" -#: plugins/sudoers/def_data.c:138 +#: plugins/sudoers/def_data.c:144 msgid "Require fully-qualified hostnames in the sudoers file" msgstr "要求 sudoers 文件中包含完全限定的主机名" -#: plugins/sudoers/def_data.c:142 +#: plugins/sudoers/def_data.c:148 msgid "Insult the user when they enter an incorrect password" msgstr "在用户输入错误密码时对他们进行(玩笑式的)嘲讽" -#: plugins/sudoers/def_data.c:146 +#: plugins/sudoers/def_data.c:152 msgid "Only allow the user to run sudo if they have a tty" msgstr "只允许拥有终端的用户执行 sudo" -#: plugins/sudoers/def_data.c:150 +#: plugins/sudoers/def_data.c:156 msgid "Visudo will honor the EDITOR environment variable" msgstr "Visudo 将优先考虑 EDITOR 环境变量" -#: plugins/sudoers/def_data.c:154 +#: plugins/sudoers/def_data.c:160 msgid "Prompt for root's password, not the users's" msgstr "询问 root 用户的密码而非用户的密码" -#: plugins/sudoers/def_data.c:158 +#: plugins/sudoers/def_data.c:164 msgid "Prompt for the runas_default user's password, not the users's" msgstr "询问 runas_default 用户的密码,而非用户密码" -#: plugins/sudoers/def_data.c:162 +#: plugins/sudoers/def_data.c:168 msgid "Prompt for the target user's password, not the users's" msgstr "询问目标用户的密码,而非用户密码" -#: plugins/sudoers/def_data.c:166 +#: plugins/sudoers/def_data.c:172 msgid "Apply defaults in the target user's login class if there is one" msgstr "应用目标用户登录类别中的默认设置,如果没有设置的话" -#: plugins/sudoers/def_data.c:170 +#: plugins/sudoers/def_data.c:176 msgid "Set the LOGNAME and USER environment variables" msgstr "设置 LOGNAME 和 USER 环境变量" -#: plugins/sudoers/def_data.c:174 +#: plugins/sudoers/def_data.c:180 msgid "Only set the effective uid to the target user, not the real uid" msgstr "只将有效用户 ID 设为目标用户的,而不是实际用户 ID" -#: plugins/sudoers/def_data.c:178 +#: plugins/sudoers/def_data.c:184 msgid "Don't initialize the group vector to that of the target user" msgstr "不将组向量初始化为目标用户的" -#: plugins/sudoers/def_data.c:182 +#: plugins/sudoers/def_data.c:188 #, c-format msgid "Length at which to wrap log file lines (0 for no wrap): %u" msgstr "日志文件折行的长度(0 则不折行):%u" -#: plugins/sudoers/def_data.c:186 +#: plugins/sudoers/def_data.c:192 #, c-format msgid "Authentication timestamp timeout: %.1f minutes" msgstr "认证时间戳延时:%.1f 分钟" -#: plugins/sudoers/def_data.c:190 +#: plugins/sudoers/def_data.c:196 #, c-format msgid "Password prompt timeout: %.1f minutes" msgstr "密码提示延时:%.1f 分钟" -#: plugins/sudoers/def_data.c:194 +#: plugins/sudoers/def_data.c:200 #, c-format msgid "Number of tries to enter a password: %u" msgstr "输入密码的尝试次数:%u" -#: plugins/sudoers/def_data.c:198 +#: plugins/sudoers/def_data.c:204 #, c-format msgid "Umask to use or 0777 to use user's: 0%o" msgstr "要使用的 umask,或 0777 使用用户的:0%o" -#: plugins/sudoers/def_data.c:202 +#: plugins/sudoers/def_data.c:208 #, c-format msgid "Path to log file: %s" msgstr "日志文件路径:%s" -#: plugins/sudoers/def_data.c:206 +#: plugins/sudoers/def_data.c:212 #, c-format msgid "Path to mail program: %s" msgstr "邮件程序路径:%s" -#: plugins/sudoers/def_data.c:210 +#: plugins/sudoers/def_data.c:216 #, c-format msgid "Flags for mail program: %s" msgstr "邮件程序标志:%s" -#: plugins/sudoers/def_data.c:214 +#: plugins/sudoers/def_data.c:220 #, c-format msgid "Address to send mail to: %s" msgstr "发送邮件的地址:%s" -#: plugins/sudoers/def_data.c:218 +#: plugins/sudoers/def_data.c:224 #, c-format msgid "Address to send mail from: %s" msgstr "接收邮件的地址:%s" -#: plugins/sudoers/def_data.c:222 +#: plugins/sudoers/def_data.c:228 #, c-format msgid "Subject line for mail messages: %s" msgstr "邮件消息的主题行:%s" -#: plugins/sudoers/def_data.c:226 +#: plugins/sudoers/def_data.c:232 #, c-format msgid "Incorrect password message: %s" msgstr "密码错误消息:%s" -#: plugins/sudoers/def_data.c:230 +#: plugins/sudoers/def_data.c:236 #, c-format msgid "Path to lecture status dir: %s" msgstr "致辞(lecture)状态文件夹的路径:%s" -#: plugins/sudoers/def_data.c:234 +#: plugins/sudoers/def_data.c:240 #, c-format msgid "Path to authentication timestamp dir: %s" msgstr "认证时间戳文件夹的路径:%s" -#: plugins/sudoers/def_data.c:238 +#: plugins/sudoers/def_data.c:244 #, c-format msgid "Owner of the authentication timestamp dir: %s" msgstr "认证时间戳的所有者:%s" -#: plugins/sudoers/def_data.c:242 +#: plugins/sudoers/def_data.c:248 #, c-format msgid "Users in this group are exempt from password and PATH requirements: %s" msgstr "此组的用户不要求密码和 PATH:%s" -#: plugins/sudoers/def_data.c:246 +#: plugins/sudoers/def_data.c:252 #, c-format msgid "Default password prompt: %s" msgstr "默认密码提示:%s" -#: plugins/sudoers/def_data.c:250 +#: plugins/sudoers/def_data.c:256 msgid "If set, passprompt will override system prompt in all cases." msgstr "如果设置,密码提示将覆盖各种情况下的系统提示。" -#: plugins/sudoers/def_data.c:254 +#: plugins/sudoers/def_data.c:260 #, c-format msgid "Default user to run commands as: %s" msgstr "运行命令的默认用户:%s" -#: plugins/sudoers/def_data.c:258 +#: plugins/sudoers/def_data.c:264 #, c-format msgid "Value to override user's $PATH with: %s" msgstr "覆盖用户的 $PATH 变量的值:%s" -#: plugins/sudoers/def_data.c:262 +#: plugins/sudoers/def_data.c:268 #, c-format msgid "Path to the editor for use by visudo: %s" msgstr "visudo 所使用的编辑器的路径:%s" -#: plugins/sudoers/def_data.c:266 +#: plugins/sudoers/def_data.c:272 #, c-format msgid "When to require a password for 'list' pseudocommand: %s" msgstr "何时为“list”伪命令请求密码:%s" -#: plugins/sudoers/def_data.c:270 +#: plugins/sudoers/def_data.c:276 #, c-format msgid "When to require a password for 'verify' pseudocommand: %s" msgstr "何时为“verify”伪命令请求密码:%s" -#: plugins/sudoers/def_data.c:274 +#: plugins/sudoers/def_data.c:280 msgid "Preload the sudo_noexec library which replaces the exec functions" msgstr "预加载替代 exec 函数的 sudo_noexec 库" -#: plugins/sudoers/def_data.c:278 +#: plugins/sudoers/def_data.c:284 msgid "If LDAP directory is up, do we ignore local sudoers file" msgstr "如果 LDAP 目录有效,是不是忽略本地的 sudoers 文件" -#: plugins/sudoers/def_data.c:282 +#: plugins/sudoers/def_data.c:288 #, c-format msgid "File descriptors >= %d will be closed before executing a command" msgstr ">= %d 的文件描述符将会在执行命令前关闭" -#: plugins/sudoers/def_data.c:286 +#: plugins/sudoers/def_data.c:292 msgid "If set, users may override the value of \"closefrom\" with the -C option" msgstr "如果设置,用户可以通过 -C 选项覆盖“closefrom”的值" -#: plugins/sudoers/def_data.c:290 +#: plugins/sudoers/def_data.c:296 msgid "Allow users to set arbitrary environment variables" msgstr "允许用户设置任意的环境变量" -#: plugins/sudoers/def_data.c:294 +#: plugins/sudoers/def_data.c:300 msgid "Reset the environment to a default set of variables" msgstr "将环境重设为默认的变量集" -#: plugins/sudoers/def_data.c:298 +#: plugins/sudoers/def_data.c:304 msgid "Environment variables to check for safety:" msgstr "要检查安全性的环境变量:" -#: plugins/sudoers/def_data.c:302 +#: plugins/sudoers/def_data.c:308 msgid "Environment variables to remove:" msgstr "要移除的环境变量:" -#: plugins/sudoers/def_data.c:306 +#: plugins/sudoers/def_data.c:312 msgid "Environment variables to preserve:" msgstr "要保留的环境变量:" -#: plugins/sudoers/def_data.c:310 +#: plugins/sudoers/def_data.c:316 #, c-format msgid "SELinux role to use in the new security context: %s" msgstr "在新的安全环境中使用的 SELinux 角色:%s" -#: plugins/sudoers/def_data.c:314 +#: plugins/sudoers/def_data.c:320 #, c-format msgid "SELinux type to use in the new security context: %s" msgstr "在新的安全环境中使用的 SELinux 类型:%s" -#: plugins/sudoers/def_data.c:318 +#: plugins/sudoers/def_data.c:324 #, c-format msgid "Path to the sudo-specific environment file: %s" msgstr "sudo 特定环境文件的路径:%s" -#: plugins/sudoers/def_data.c:322 +#: plugins/sudoers/def_data.c:328 #, c-format msgid "Path to the restricted sudo-specific environment file: %s" msgstr "受限的 sudo 特定环境文件的路径:%s" -#: plugins/sudoers/def_data.c:326 +#: plugins/sudoers/def_data.c:332 #, c-format msgid "Locale to use while parsing sudoers: %s" msgstr "解析 sudoers 时使用的区域设置:%s" -#: plugins/sudoers/def_data.c:330 +#: plugins/sudoers/def_data.c:336 msgid "Allow sudo to prompt for a password even if it would be visible" msgstr "允许 sudo 询问密码,即使它不可见" -#: plugins/sudoers/def_data.c:334 +#: plugins/sudoers/def_data.c:340 msgid "Provide visual feedback at the password prompt when there is user input" msgstr "用户在询问密码窗口输入时提供视觉反馈" -#: plugins/sudoers/def_data.c:338 +#: plugins/sudoers/def_data.c:344 msgid "Use faster globbing that is less accurate but does not access the filesystem" msgstr "使用不太精确但不访问文件系统的较快通配方法" -#: plugins/sudoers/def_data.c:342 +#: plugins/sudoers/def_data.c:348 msgid "The umask specified in sudoers will override the user's, even if it is more permissive" msgstr "sudoers 中指定的 umask 会覆盖用户的,即使它允许的权限更多" -#: plugins/sudoers/def_data.c:346 +#: plugins/sudoers/def_data.c:352 msgid "Log user's input for the command being run" msgstr "记录用户在所执行命令中的输入" -#: plugins/sudoers/def_data.c:350 +#: plugins/sudoers/def_data.c:356 +msgid "Log the command's standard input if not connected to a terminal" +msgstr "记录命令的标准输入内容,如果它未连接终端的话" + +#: plugins/sudoers/def_data.c:360 +msgid "Log the user's terminal input for the command being run" +msgstr "记录用户在所执行命令中的终端输入" + +#: plugins/sudoers/def_data.c:364 msgid "Log the output of the command being run" msgstr "记录所执行命令的输出" -#: plugins/sudoers/def_data.c:354 +#: plugins/sudoers/def_data.c:368 +msgid "Log the command's standard output if not connected to a terminal" +msgstr "记录命令的标准输出内容,如果它未连接终端的话" + +#: plugins/sudoers/def_data.c:372 +msgid "Log the command's standard error if not connected to a terminal" +msgstr "记录命令的标准错误内容,如果它未连接终端的话" + +#: plugins/sudoers/def_data.c:376 +msgid "Log the terminal output of the command being run" +msgstr "记录所执行命令的终端输出" + +#: plugins/sudoers/def_data.c:380 msgid "Compress I/O logs using zlib" msgstr "使用 zlib 压缩 I/O 日志" -#: plugins/sudoers/def_data.c:358 +#: plugins/sudoers/def_data.c:384 msgid "Always run commands in a pseudo-tty" msgstr "总是在伪终端中运行命令" -#: plugins/sudoers/def_data.c:362 +#: plugins/sudoers/def_data.c:388 #, c-format msgid "Plugin for non-Unix group support: %s" msgstr "用于非 Unix 组支持的插件:%s" -#: plugins/sudoers/def_data.c:366 +#: plugins/sudoers/def_data.c:392 #, c-format msgid "Directory in which to store input/output logs: %s" msgstr "用于保存输入/输出日志的目录:%s" -#: plugins/sudoers/def_data.c:370 +#: plugins/sudoers/def_data.c:396 #, c-format msgid "File in which to store the input/output log: %s" msgstr "用于保存输入/输出日志的文件:%s" -#: plugins/sudoers/def_data.c:374 +#: plugins/sudoers/def_data.c:400 msgid "Add an entry to the utmp/utmpx file when allocating a pty" msgstr "在分配伪终端时向 utmp/utmpx 文件中添加一条记录" -#: plugins/sudoers/def_data.c:378 +#: plugins/sudoers/def_data.c:404 msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "将 utmp 中的用户设为 runas 用户,而不是调用用户" -#: plugins/sudoers/def_data.c:382 +#: plugins/sudoers/def_data.c:408 #, c-format msgid "Set of permitted privileges: %s" msgstr "允许权限的集合:%s" -#: plugins/sudoers/def_data.c:386 +#: plugins/sudoers/def_data.c:412 #, c-format msgid "Set of limit privileges: %s" msgstr "限制权限的集合:%s" -#: plugins/sudoers/def_data.c:390 +#: plugins/sudoers/def_data.c:416 msgid "Run commands on a pty in the background" msgstr "在后台的伪终端上运行命令" -#: plugins/sudoers/def_data.c:394 +#: plugins/sudoers/def_data.c:420 #, c-format msgid "PAM service name to use: %s" msgstr "要使用的 PAM 服务名称:%s" -#: plugins/sudoers/def_data.c:398 +#: plugins/sudoers/def_data.c:424 #, c-format msgid "PAM service name to use for login shells: %s" msgstr "用于登录 shell 的 PAM 服务名称:%s" -#: plugins/sudoers/def_data.c:402 +#: plugins/sudoers/def_data.c:428 #, fuzzy, c-format #| msgid "PAM service name to use for login shells: %s" msgid "PAM service name to use when sudo is run with the -A option: %s" msgstr "用于登录 shell 的 PAM 服务名称:%s" -#: plugins/sudoers/def_data.c:406 +#: plugins/sudoers/def_data.c:432 msgid "Attempt to establish PAM credentials for the target user" msgstr "尝试为目标用户建立 PAM 凭据" -#: plugins/sudoers/def_data.c:410 +#: plugins/sudoers/def_data.c:436 msgid "Create a new PAM session for the command to run in" msgstr "创建一个新的 PAM 会话来运行该命令" -#: plugins/sudoers/def_data.c:414 +#: plugins/sudoers/def_data.c:440 msgid "Perform PAM account validation management" msgstr "执行 PAM 账户验证管理" -#: plugins/sudoers/def_data.c:418 +#: plugins/sudoers/def_data.c:444 #, c-format msgid "Maximum I/O log sequence number: %s" msgstr "最大 I/O 日志序列号:%s" -#: plugins/sudoers/def_data.c:422 +#: plugins/sudoers/def_data.c:448 msgid "Enable sudoers netgroup support" msgstr "启用 support netgroup 支持" -#: plugins/sudoers/def_data.c:426 +#: plugins/sudoers/def_data.c:452 msgid "Check parent directories for writability when editing files with sudoedit" msgstr "在使用 sudoedit 编辑文件时检查上级目录是否可写" -#: plugins/sudoers/def_data.c:430 +#: plugins/sudoers/def_data.c:456 msgid "Follow symbolic links when editing files with sudoedit" msgstr "使用 sudoedit 编辑文件时循符号连接(定位到原文件)" -#: plugins/sudoers/def_data.c:434 +#: plugins/sudoers/def_data.c:460 msgid "Query the group plugin for unknown system groups" msgstr "通过 组 插件查询未知的系统组" -#: plugins/sudoers/def_data.c:438 +#: plugins/sudoers/def_data.c:464 msgid "Match netgroups based on the entire tuple: user, host and domain" msgstr "基于整个元组(用户、主机和域)来匹配网络组" -#: plugins/sudoers/def_data.c:442 +#: plugins/sudoers/def_data.c:468 msgid "Allow commands to be run even if sudo cannot write to the audit log" msgstr "即使 sudo 无法写入审核日志也允许命令运行" -#: plugins/sudoers/def_data.c:446 +#: plugins/sudoers/def_data.c:472 msgid "Allow commands to be run even if sudo cannot write to the I/O log" msgstr "即使 sudo 无法写入 I/O 日志也允许命令运行" -#: plugins/sudoers/def_data.c:450 +#: plugins/sudoers/def_data.c:476 msgid "Allow commands to be run even if sudo cannot write to the log file" msgstr "即使 sudo 无法写入日志文件也允许命令允许" -#: plugins/sudoers/def_data.c:454 +#: plugins/sudoers/def_data.c:480 msgid "Resolve groups in sudoers and match on the group ID, not the name" msgstr "解析 sudoers 中的组并与 组 ID (而不是名字) 匹配" -#: plugins/sudoers/def_data.c:458 +#: plugins/sudoers/def_data.c:484 #, c-format msgid "Log entries larger than this value will be split into multiple syslog messages: %u" msgstr "大于此数值的日志条目会分为多条 syslog 消息:%u" -#: plugins/sudoers/def_data.c:462 +#: plugins/sudoers/def_data.c:488 #, c-format msgid "User that will own the I/O log files: %s" msgstr "将拥有 I/O 日志文件的用户:%s" -#: plugins/sudoers/def_data.c:466 +#: plugins/sudoers/def_data.c:492 #, c-format msgid "Group that will own the I/O log files: %s" msgstr "将拥有 I/O 日志文件的组:%s" -#: plugins/sudoers/def_data.c:470 +#: plugins/sudoers/def_data.c:496 #, c-format msgid "File mode to use for the I/O log files: 0%o" msgstr "I/O 日志文件要使用的文件模式:0%o" -#: plugins/sudoers/def_data.c:474 +#: plugins/sudoers/def_data.c:500 #, c-format msgid "Execute commands by file descriptor instead of by path: %s" msgstr "根据文件描述符执行命令,而非根据路径:%s" -#: plugins/sudoers/def_data.c:478 +#: plugins/sudoers/def_data.c:504 msgid "Ignore unknown Defaults entries in sudoers instead of producing a warning" msgstr "忽略 sudoers 中未知的 Defaults 条目而非产生警告" -#: plugins/sudoers/def_data.c:482 +#: plugins/sudoers/def_data.c:508 #, c-format msgid "Time in seconds after which the command will be terminated: %u" msgstr "超过指定时间后终止命令(秒):%u" -#: plugins/sudoers/def_data.c:486 +#: plugins/sudoers/def_data.c:512 msgid "Allow the user to specify a timeout on the command line" msgstr "允许用户在命令行中指定超时时间" -#: plugins/sudoers/def_data.c:490 +#: plugins/sudoers/def_data.c:516 msgid "Flush I/O log data to disk immediately instead of buffering it" msgstr "立即冲洗(flush) I/O 日志数据而非将其缓存" -#: plugins/sudoers/def_data.c:494 +#: plugins/sudoers/def_data.c:520 msgid "Include the process ID when logging via syslog" msgstr "通过 syslog 登录时包含进程 ID" -#: plugins/sudoers/def_data.c:498 +#: plugins/sudoers/def_data.c:524 #, c-format msgid "Type of authentication timestamp record: %s" msgstr "认证时间戳记录的类型:%s" -#: plugins/sudoers/def_data.c:502 +#: plugins/sudoers/def_data.c:528 #, c-format msgid "Authentication failure message: %s" msgstr "认证失败消息:%s" -#: plugins/sudoers/def_data.c:506 +#: plugins/sudoers/def_data.c:532 msgid "Ignore case when matching user names" msgstr "在匹配 用户 名时忽略大小写" -#: plugins/sudoers/def_data.c:510 +#: plugins/sudoers/def_data.c:536 msgid "Ignore case when matching group names" msgstr "在匹配 组 名时忽略大小写" -#: plugins/sudoers/def_data.c:514 +#: plugins/sudoers/def_data.c:540 msgid "Log when a command is allowed by sudoers" msgstr "命令被 sudoers 允许时的日志" -#: plugins/sudoers/def_data.c:518 +#: plugins/sudoers/def_data.c:544 msgid "Log when a command is denied by sudoers" msgstr "命令被 sudoers 拒绝时的日志" -#: plugins/sudoers/def_data.c:522 +#: plugins/sudoers/def_data.c:548 msgid "Sudo log server(s) to connect to with optional port" msgstr "" -#: plugins/sudoers/def_data.c:526 +#: plugins/sudoers/def_data.c:552 #, c-format msgid "Sudo log server timeout in seconds: %u" msgstr "Sudo 日志服务器超时秒数:%u" -#: plugins/sudoers/def_data.c:530 +#: plugins/sudoers/def_data.c:556 msgid "Enable SO_KEEPALIVE socket option on the socket connected to the logserver" msgstr "" -#: plugins/sudoers/def_data.c:534 +#: plugins/sudoers/def_data.c:560 #, fuzzy, c-format #| msgid "Path to the sudo-specific environment file: %s" msgid "Path to the audit server's CA bundle file: %s" msgstr "sudo 特定环境文件的路径:%s" -#: plugins/sudoers/def_data.c:538 +#: plugins/sudoers/def_data.c:564 #, c-format msgid "Path to the sudoers certificate file: %s" msgstr "到 sudoers 证书文件的路径:%s" -#: plugins/sudoers/def_data.c:542 +#: plugins/sudoers/def_data.c:568 #, c-format msgid "Path to the sudoers private key file: %s" msgstr "到 sudoers 私钥文件的路径:%s" -#: plugins/sudoers/def_data.c:546 +#: plugins/sudoers/def_data.c:572 msgid "Verify that the log server's certificate is valid" msgstr "验证日志服务器证书有效性" -#: plugins/sudoers/def_data.c:550 +#: plugins/sudoers/def_data.c:576 msgid "Allow the use of unknown runas user and/or group ID" msgstr "" -#: plugins/sudoers/def_data.c:554 +#: plugins/sudoers/def_data.c:580 msgid "Only permit running commands as a user with a valid shell" msgstr "" -#: plugins/sudoers/def_data.c:558 +#: plugins/sudoers/def_data.c:584 msgid "Set the pam remote user to the user running sudo" msgstr "" -#: plugins/sudoers/def_data.c:562 +#: plugins/sudoers/def_data.c:588 msgid "Set the pam remote host to the local host name" msgstr "" -#: plugins/sudoers/def_data.c:566 +#: plugins/sudoers/def_data.c:592 #, fuzzy, c-format #| msgid "File descriptors >= %d will be closed before executing a command" msgid "Working directory to change to before executing the command: %s" msgstr ">= %d 的文件描述符将会在执行命令前关闭" -#: plugins/sudoers/def_data.c:570 +#: plugins/sudoers/def_data.c:596 #, fuzzy, c-format #| msgid "File descriptors >= %d will be closed before executing a command" msgid "Root directory to change to before executing the command: %s" msgstr ">= %d 的文件描述符将会在执行命令前关闭" -#: plugins/sudoers/def_data.c:574 +#: plugins/sudoers/def_data.c:600 #, c-format msgid "The format of logs to produce: %s" msgstr "要产生日志的格式:%s" -#: plugins/sudoers/def_data.c:578 +#: plugins/sudoers/def_data.c:604 msgid "Enable SELinux RBAC support" msgstr "启用 SELinux RBAC 支持" -#: plugins/sudoers/def_data.c:582 +#: plugins/sudoers/def_data.c:608 #, c-format msgid "Path to the file that is created the first time sudo is run: %s" -msgstr "" +msgstr "在 sudo 第一次运行时要创建的文件的路径:%s" -#: plugins/sudoers/def_data.c:586 +#: plugins/sudoers/def_data.c:612 msgid "Intercept further commands and apply sudoers restrictions to them" -msgstr "" +msgstr "截取未来的命令并对其施加 sudoers 限制" -#: plugins/sudoers/def_data.c:590 +#: plugins/sudoers/def_data.c:616 msgid "Log sub-commands run by the original command" msgstr "记录原始命令所执行的子命令" -#: plugins/sudoers/def_data.c:594 +#: plugins/sudoers/def_data.c:620 msgid "Log the exit status of commands" msgstr "记录所执行命令的返回状态值" -#: plugins/sudoers/def_data.c:598 +#: plugins/sudoers/def_data.c:624 msgid "Subsequent commands in an intercepted session must be authenticated" msgstr "" -#: plugins/sudoers/def_data.c:602 +#: plugins/sudoers/def_data.c:628 msgid "Allow an intercepted command to run set setuid or setgid programs" msgstr "" -#: plugins/sudoers/def_data.c:606 +#: plugins/sudoers/def_data.c:632 #, c-format msgid "The maximum size to which the process's address space may grow (in bytes): %s" msgstr "" -#: plugins/sudoers/def_data.c:610 +#: plugins/sudoers/def_data.c:636 #, c-format msgid "The largest size core dump file that may be created (in bytes): %s" msgstr "" -#: plugins/sudoers/def_data.c:614 +#: plugins/sudoers/def_data.c:640 #, c-format msgid "The maximum amount of CPU time that the process may use (in seconds): %s" msgstr "" -#: plugins/sudoers/def_data.c:618 +#: plugins/sudoers/def_data.c:644 #, c-format msgid "The maximum size of the data segment for the process (in bytes): %s" msgstr "" -#: plugins/sudoers/def_data.c:622 +#: plugins/sudoers/def_data.c:648 #, c-format msgid "The largest size file that the process may create (in bytes): %s" msgstr "" -#: plugins/sudoers/def_data.c:626 +#: plugins/sudoers/def_data.c:652 #, c-format msgid "The maximum number of locks that the process may establish: %s" msgstr "" -#: plugins/sudoers/def_data.c:630 +#: plugins/sudoers/def_data.c:656 #, c-format msgid "The maximum size that the process may lock in memory (in bytes): %s" msgstr "" -#: plugins/sudoers/def_data.c:634 +#: plugins/sudoers/def_data.c:660 #, c-format msgid "The maximum number of files that the process may have open: %s" msgstr "" -#: plugins/sudoers/def_data.c:638 +#: plugins/sudoers/def_data.c:664 #, c-format msgid "The maximum number of processes that the user may run simultaneously: %s" msgstr "" -#: plugins/sudoers/def_data.c:642 +#: plugins/sudoers/def_data.c:668 #, c-format msgid "The maximum size to which the process's resident set size may grow (in bytes): %s" msgstr "" -#: plugins/sudoers/def_data.c:646 +#: plugins/sudoers/def_data.c:672 #, c-format msgid "The maximum size to which the process's stack may grow (in bytes): %s" msgstr "" -#: plugins/sudoers/def_data.c:650 +#: plugins/sudoers/def_data.c:676 msgid "Attempt authentication even when in non-interactive mode" -msgstr "" +msgstr "即便在非交互模式下也尝试进行认证" -#: plugins/sudoers/def_data.c:654 +#: plugins/sudoers/def_data.c:680 msgid "Store plaintext passwords in I/O log input" -msgstr "" +msgstr "在 I/O 日志输入中存储纯文本密码" -#: plugins/sudoers/def_data.c:658 +#: plugins/sudoers/def_data.c:684 msgid "List of regular expressions to use when matching a password prompt" -msgstr "" +msgstr "尝试匹配密码提示符时要使用的正则表达式列表" -#: plugins/sudoers/defaults.c:193 +#: plugins/sudoers/def_data.c:688 #, c-format -msgid "%s: unknown defaults entry \"%s\"" -msgstr "%s:未知的默认条目“%s”" +msgid "The mechanism used by the intercept and log_subcmds options: %s" +msgstr "" -#: plugins/sudoers/defaults.c:242 +#: plugins/sudoers/def_data.c:692 +msgid "Attempt to verify the command and arguments after execution" +msgstr "在执行之后尝试验证命令和参数" + +#: plugins/sudoers/def_data.c:696 #, c-format -msgid "%s:%d:%d: no value specified for \"%s\"" -msgstr "%s:%d:%d:没有为“%s”指定值" +msgid "AppArmor profile to use in the new security context: %s" +msgstr "在新的安全环境中使用的 SELinux 配置文件:%s" -#: plugins/sudoers/defaults.c:245 +#: plugins/sudoers/defaults.c:191 #, c-format -msgid "%s: no value specified for \"%s\"" -msgstr "%s:没有给“%s”指定值" +msgid "unknown defaults entry \"%s\"" +msgstr "未知的默认条目“%s”" -#: plugins/sudoers/defaults.c:258 -#, fuzzy, c-format -#| msgid "%s:%d no value specified for \"%s\"" -msgid "%s:%d:%d: invalid operator \"%c=\" for \"%s\"" -msgstr "%s:%d 没有给“%s”指定值" +#: plugins/sudoers/defaults.c:234 +#, c-format +msgid "no value specified for \"%s\"" +msgstr "没有给“%s”指定值" -#: plugins/sudoers/defaults.c:261 +#: plugins/sudoers/defaults.c:243 #, fuzzy, c-format #| msgid "%s: invalid Defaults type 0x%x for option \"%s\"" -msgid "%s: invalid operator \"%c=\" for \"%s\"" +msgid "invalid operator \"%c=\" for \"%s\"" msgstr "%1$s:选项“%3$s”的默认类型 0x%2$x 无效" -#: plugins/sudoers/defaults.c:297 -#, c-format -msgid "%s:%d:%d: option \"%s\" does not take a value" -msgstr "%s:%d:%d:选项“%s”不接受值" - -#: plugins/sudoers/defaults.c:300 -#, c-format -msgid "%s: option \"%s\" does not take a value" +#: plugins/sudoers/defaults.c:275 +#, fuzzy, c-format +#| msgid "%s: option \"%s\" does not take a value" +msgid "option \"%s\" does not take a value" msgstr "%s:“%s”选项不接受值" -#: plugins/sudoers/defaults.c:328 +#: plugins/sudoers/defaults.c:299 #, fuzzy, c-format -#| msgid "%s:%d invalid Defaults type 0x%x for option \"%s\"" -msgid "%s:%d:%d: invalid Defaults type 0x%x for option \"%s\"" -msgstr "%1$s:%2$d 选项“%4$s”的默认类型 0x%3$x 无效" - -#: plugins/sudoers/defaults.c:331 -#, c-format -msgid "%s: invalid Defaults type 0x%x for option \"%s\"" +#| msgid "%s: invalid Defaults type 0x%x for option \"%s\"" +msgid "invalid Defaults type 0x%x for option \"%s\"" msgstr "%1$s:选项“%3$s”的默认类型 0x%2$x 无效" -#: plugins/sudoers/defaults.c:341 +#: plugins/sudoers/defaults.c:306 #, fuzzy, c-format -#| msgid "%s:%d value \"%s\" is invalid for option \"%s\"" -msgid "%s:%d:%d: value \"%s\" is invalid for option \"%s\"" -msgstr "%1$s:%2$d 值“%3$s”对选项“%4$s”无效" - -#: plugins/sudoers/defaults.c:344 -#, c-format -msgid "%s: value \"%s\" is invalid for option \"%s\"" +#| msgid "%s: value \"%s\" is invalid for option \"%s\"" +msgid "value \"%s\" is invalid for option \"%s\"" msgstr "%s:值“%s”对选项“%s”无效" -#: plugins/sudoers/defaults.c:1161 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:208 +#: plugins/sudoers/policy.c:217 #, c-format -msgid "%s:%d:%d: path name for \"%s\" too long" -msgstr "%s:%d:%d:“%s”的路径名过长" +msgid "path name for \"%s\" too long" +msgstr "“%s”的路径名过长" -#: plugins/sudoers/defaults.c:1164 +#: plugins/sudoers/defaults.c:1134 #, c-format -msgid "%s: path name for \"%s\" too long" -msgstr "%s:“%s”的路径名过长" - -#: plugins/sudoers/defaults.c:1175 -#, fuzzy, c-format -#| msgid "%s:%d values for \"%s\" must start with a '/'" -msgid "%s:%d:%d: values for \"%s\" must start with a '/', '~', or '*'" -msgstr "%s:%d “%s”的值必须以“/”开头" - -#: plugins/sudoers/defaults.c:1179 -#, fuzzy, c-format -#| msgid "%s: values for \"%s\" must start with a '/'" -msgid "%s: values for \"%s\" must start with a '/', '~', or '*'" -msgstr "%s:“%s”的值必须以“/”开头" +msgid "values for \"%s\" must start with a '/', '~', or '*'" +msgstr "“%s”的值必须以“/”、“~”或“*”开头" -#: plugins/sudoers/defaults.c:1190 -#, fuzzy, c-format -#| msgid "%s:%d values for \"%s\" must start with a '/'" -msgid "%s:%d:%d: values for \"%s\" must start with a '/'" -msgstr "%s:%d “%s”的值必须以“/”开头" - -#: plugins/sudoers/defaults.c:1194 +#: plugins/sudoers/defaults.c:1141 #, c-format -msgid "%s: values for \"%s\" must start with a '/'" -msgstr "%s:“%s”的值必须以“/”开头" +msgid "values for \"%s\" must start with a '/'" +msgstr "“%s”的值必须以“/”开头" -#: plugins/sudoers/env.c:412 +#: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv:envp 损坏,长度不符" -#: plugins/sudoers/env.c:1095 +#: plugins/sudoers/env.c:1109 msgid "unable to rebuild the environment" msgstr "无法重建环境" -#: plugins/sudoers/env.c:1169 +#: plugins/sudoers/env.c:1183 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "对不起,您无权设置以下环境变量:%s" -#: plugins/sudoers/file.c:108 -#, c-format -msgid "parse error in %s near line %d" -msgstr "%s 中第 %d 行附近有解析错误" - -#: plugins/sudoers/file.c:111 -#, c-format -msgid "parse error in %s" -msgstr "%s 中出现解析错误" - #: plugins/sudoers/filedigest.c:49 #, c-format msgid "unsupported digest type %d for %s" @@ -2657,27 +2693,27 @@ msgstr "%2$s 的摘要类型 %1$d 不支持" msgid "%s: read error" msgstr "%s:写错误" -#: plugins/sudoers/group_plugin.c:83 +#: plugins/sudoers/group_plugin.c:169 #, c-format msgid "%s must be owned by uid %d" msgstr "%s 必须属于用户 ID %d" -#: plugins/sudoers/group_plugin.c:87 +#: plugins/sudoers/group_plugin.c:173 #, c-format msgid "%s must only be writable by owner" msgstr "%s 必须只对所有者可写" -#: plugins/sudoers/group_plugin.c:96 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:185 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "无法加载 %s:%s" -#: plugins/sudoers/group_plugin.c:102 +#: plugins/sudoers/group_plugin.c:197 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "无法在 %s 中找到符号“group_plugin”" -#: plugins/sudoers/group_plugin.c:107 +#: plugins/sudoers/group_plugin.c:202 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s:不兼容的组插件主版本号 %d,应为 %d" @@ -2696,42 +2732,42 @@ msgstr "无法解析网络掩码“%s”" msgid "Local IP address and netmask pairs:\n" msgstr "本地 IP 地址和网络掩码对:\n" -#: plugins/sudoers/iolog.c:681 +#: plugins/sudoers/iolog.c:685 msgid "unable to update sequence file" msgstr "无法更新序列文件" -#: plugins/sudoers/iolog.c:715 plugins/sudoers/iolog.c:903 -#: plugins/sudoers/iolog.c:1065 plugins/sudoers/iolog.c:1072 -#: plugins/sudoers/iolog.c:1193 plugins/sudoers/iolog.c:1200 -#: plugins/sudoers/iolog.c:1299 plugins/sudoers/iolog.c:1306 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:909 +#: plugins/sudoers/iolog.c:1071 plugins/sudoers/iolog.c:1078 +#: plugins/sudoers/iolog.c:1199 plugins/sudoers/iolog.c:1206 +#: plugins/sudoers/iolog.c:1305 plugins/sudoers/iolog.c:1312 #, c-format msgid "unable to write to I/O log file: %s" msgstr "无法写入 I/O 日志文件:%s" -#: plugins/sudoers/iolog.c:723 +#: plugins/sudoers/iolog.c:727 #, c-format msgid "unable to create %s/%s" msgstr "无法创建 %s/%s" -#: plugins/sudoers/iolog.c:951 +#: plugins/sudoers/iolog.c:957 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s:内部错误,事件 %d 的 I/O 日志文件未打开" -#: plugins/sudoers/iolog.c:1050 plugins/sudoers/iolog.c:1178 -#: plugins/sudoers/iolog.c:1283 plugins/sudoers/timestamp.c:849 -#: plugins/sudoers/timestamp.c:941 plugins/sudoers/visudo.c:510 -#: plugins/sudoers/visudo.c:516 +#: plugins/sudoers/iolog.c:1056 plugins/sudoers/iolog.c:1184 +#: plugins/sudoers/iolog.c:1289 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:552 +#: plugins/sudoers/visudo.c:558 msgid "unable to read the clock" msgstr "无法读取时钟" -#: plugins/sudoers/iolog.c:1275 plugins/sudoers/log_client.c:1221 -#: plugins/sudoers/log_client.c:1231 plugins/sudoers/log_client.c:1235 +#: plugins/sudoers/iolog.c:1281 plugins/sudoers/log_client.c:1193 +#: plugins/sudoers/log_client.c:1203 plugins/sudoers/log_client.c:1207 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s:内部错误,信号 %d 无效" -#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:291 +#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:292 msgid "starttls not supported when using ldaps" msgstr "使用 ldaps 时不支持 starttls" @@ -2745,16 +2781,16 @@ msgstr "无法初始化 SSL 证书和密钥数据库:%s" msgid "you must set TLS_CERT in %s to use SSL" msgstr "要使用 SSL,您必须在 %s 中设置 TLS_CERT" -#: plugins/sudoers/ldap.c:1717 +#: plugins/sudoers/ldap.c:1712 #, c-format msgid "unable to initialize LDAP: %s" msgstr "无法初始化 LDAP:%s" -#: plugins/sudoers/ldap.c:1754 +#: plugins/sudoers/ldap.c:1749 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "指定了 start_tls,但 LDAP 库不支持 ldap_start_tls_s() 或 ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1891 plugins/sudoers/parse_ldif.c:747 +#: plugins/sudoers/ldap.c:1886 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "无效的 sudoOrder 属性:%s" @@ -2764,12 +2800,12 @@ msgstr "无效的 sudoOrder 属性:%s" msgid "%s: port too large" msgstr "%s:端口过大" -#: plugins/sudoers/ldap_conf.c:260 +#: plugins/sudoers/ldap_conf.c:261 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "不支持的 LDAP URI 类型:%s" -#: plugins/sudoers/ldap_conf.c:287 +#: plugins/sudoers/ldap_conf.c:288 msgid "unable to mix ldap and ldaps URIs" msgstr "无法混合 ldap 和 ldaps URI" @@ -2794,117 +2830,111 @@ msgstr "无法打开审核系统" msgid "unable to send audit message" msgstr "无法发送审核消息" -#: plugins/sudoers/log_client.c:120 plugins/sudoers/log_client.c:400 -#: plugins/sudoers/log_client.c:1468 plugins/sudoers/log_client.c:2069 +#: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 +#: plugins/sudoers/log_client.c:1440 plugins/sudoers/log_client.c:2056 msgid "error in event loop" msgstr "事件循环中出错" -#: plugins/sudoers/log_client.c:200 +#: plugins/sudoers/log_client.c:205 #, c-format msgid "Creation of new SSL_CTX object failed: %s" msgstr "创建新的 SSL_CTX 对象失败:%s" -#: plugins/sudoers/log_client.c:223 +#: plugins/sudoers/log_client.c:230 #, c-format msgid "unable to load certificate authority bundle %s" msgstr "无法加载数字证书认证机构集合(CA bundle) %s" -#: plugins/sudoers/log_client.c:243 +#: plugins/sudoers/log_client.c:252 #, c-format msgid "unable to load certificate %s" msgstr "无法加载证书 %s" -#: plugins/sudoers/log_client.c:256 +#: plugins/sudoers/log_client.c:266 #, c-format msgid "unable to load private key %s" msgstr "无法加载私钥 %s" -#: plugins/sudoers/log_client.c:265 +#: plugins/sudoers/log_client.c:275 #, c-format msgid "Unable to allocate ssl object: %s" msgstr "无法分配 ssl 对象:%s" -#: plugins/sudoers/log_client.c:353 plugins/sudoers/log_client.c:358 +#: plugins/sudoers/log_client.c:364 plugins/sudoers/log_client.c:369 #, c-format msgid "TLS connection to %s:%s failed: %s" msgstr "到 %s:%s 的 TLS 连接失败:%s" -#: plugins/sudoers/log_client.c:531 +#: plugins/sudoers/log_client.c:543 msgid "TLS initialization was unsuccessful" msgstr "TLS 初始化不成功" -#: plugins/sudoers/log_client.c:541 +#: plugins/sudoers/log_client.c:553 msgid "TLS handshake was unsuccessful" msgstr "TLS 握手不成功" -#: plugins/sudoers/log_client.c:1239 +#: plugins/sudoers/log_client.c:1211 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s:内部错误,无效的退出状态 %d" -#: plugins/sudoers/log_client.c:1608 -msgid "unable to unpack ServerMessage" -msgstr "无法解包 ServerMessage" - -#: plugins/sudoers/log_client.c:1763 plugins/sudoers/log_client.c:1787 +#: plugins/sudoers/log_client.c:1740 plugins/sudoers/log_client.c:1764 msgid "lost connection to log server" msgstr "丢失了到日志服务器的连接" -#: plugins/sudoers/log_client.c:1864 +#: plugins/sudoers/log_client.c:1841 msgid "missing write buffer" msgstr "缺失写缓冲" -#: plugins/sudoers/log_client.c:2010 +#: plugins/sudoers/log_client.c:1995 msgid "unable to connect to log server" msgstr "无法连接到日志服务器" -#: plugins/sudoers/logging.c:288 +#: plugins/sudoers/logging.c:290 msgid "user NOT in sudoers" msgstr "用户不在 sudoers 中" -#: plugins/sudoers/logging.c:290 +#: plugins/sudoers/logging.c:292 msgid "user NOT authorized on host" msgstr "用户未获得此主机上的授权" -#: plugins/sudoers/logging.c:292 +#: plugins/sudoers/logging.c:294 msgid "command not allowed" msgstr "命令禁止使用" -#: plugins/sudoers/logging.c:313 -#, fuzzy, c-format -#| msgid "" -#| "%s - safely edit the sudoers file\n" -#| "\n" +#: plugins/sudoers/logging.c:315 +#, c-format msgid "%s is not in the sudoers file.\n" -msgstr "" -"%s - 安全地编辑 sudoers 文件\n" -"\n" +msgstr "%s 不是 sudoers 文件。\n" -#: plugins/sudoers/logging.c:316 -#, fuzzy, c-format -#| msgid "User %s is not allowed to run sudo on %s.\n" +#: plugins/sudoers/logging.c:318 +#, c-format msgid "%s is not allowed to run sudo on %s.\n" -msgstr "用户 %s 无权在 %s 上运行 sudo。\n" +msgstr "%s 无权在 %s 上运行 sudo。\n" -#: plugins/sudoers/logging.c:319 +#: plugins/sudoers/logging.c:321 #, c-format msgid "Sorry, user %s may not run sudo on %s.\n" msgstr "对不起,用户 %s 不能在 %s 上运行 sudo。\n" -#: plugins/sudoers/logging.c:322 +#: plugins/sudoers/logging.c:324 #, c-format msgid "Sorry, user %s is not allowed to execute '%s%s%s' as %s%s%s on %s.\n" msgstr "对不起,用户 %1$s 无权以 %5$s%6$s%7$s 的身份在 %8$s 上执行 %2$s%3$s%4$s。\n" -#: plugins/sudoers/logging.c:359 plugins/sudoers/sudoers.c:629 -#: plugins/sudoers/sudoers.c:631 plugins/sudoers/sudoers.c:633 -#: plugins/sudoers/sudoers.c:635 plugins/sudoers/sudoers.c:785 -#: plugins/sudoers/sudoers.c:787 +#: plugins/sudoers/logging.c:334 +msgid "This incident has been reported to the administrator.\n" +msgstr "该事件已报告给管理员。\n" + +#: plugins/sudoers/logging.c:365 plugins/sudoers/sudoers.c:648 +#: plugins/sudoers/sudoers.c:650 plugins/sudoers/sudoers.c:652 +#: plugins/sudoers/sudoers.c:654 plugins/sudoers/sudoers.c:805 +#: plugins/sudoers/sudoers.c:807 #, c-format msgid "%s: command not found" msgstr "%s:找不到命令" -#: plugins/sudoers/logging.c:361 plugins/sudoers/sudoers.c:625 +#: plugins/sudoers/logging.c:367 plugins/sudoers/sudoers.c:644 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2913,39 +2943,45 @@ msgstr "" "忽略在“.”中找到的“%s”\n" "请使用“sudo ./%s”,如果这是您想运行的“%s”。" -#: plugins/sudoers/logging.c:380 +#: plugins/sudoers/logging.c:387 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" msgstr[0] "%u 次错误密码尝试" -#: plugins/sudoers/logging.c:436 +#: plugins/sudoers/logging.c:477 msgid "authentication failure" msgstr "认证失败" -#: plugins/sudoers/logging.c:476 plugins/sudoers/logging.c:496 +#: plugins/sudoers/logging.c:516 plugins/sudoers/logging.c:535 msgid "a password is required" msgstr "需要密码" -#: plugins/sudoers/logging.c:890 +#: plugins/sudoers/logging.c:799 plugins/sudoers/logging.c:811 +msgid "problem parsing sudoers" +msgstr "解析 sudoers 时出现问题" + +#: plugins/sudoers/logging.c:873 plugins/sudoers/logging.c:885 +#, c-format +msgid "%s:%d:%d: %s" +msgstr "%s:%d:%d: %s" + +#: plugins/sudoers/logging.c:1062 #, c-format msgid "unable to write log file: %s" msgstr "无法写入日志文件: %s" -#: plugins/sudoers/match_digest.c:129 +#: plugins/sudoers/match_digest.c:112 +#, c-format +msgid "digest for %s (%s) bad length %zu, expected %zu" +msgstr "%s(%s) 的摘要具有错误的长度 %zu,期望为 %zu" + +#: plugins/sudoers/match_digest.c:131 #, c-format msgid "digest for %s (%s) is not in %s form" msgstr "%s(%s) 的摘要不是 %s 形式" -#: plugins/sudoers/parse.c:233 -msgid "SELinux RBAC is not supported when intercept mode is enabled" -msgstr "" - -#: plugins/sudoers/parse.c:238 -msgid "SELinux RBAC is not supported when the log_subcmds flag is enabled" -msgstr "在 log_subcmds 启用时不支持 SELinux RBAC" - -#: plugins/sudoers/parse.c:549 +#: plugins/sudoers/parse.c:591 #, c-format msgid "" "\n" @@ -2954,7 +2990,7 @@ msgstr "" "\n" "LDAP 角色:%s\n" -#: plugins/sudoers/parse.c:552 +#: plugins/sudoers/parse.c:594 msgid "" "\n" "Sudoers entry:\n" @@ -2962,116 +2998,110 @@ msgstr "" "\n" "Sudoers 条目:\n" -#: plugins/sudoers/parse.c:554 +#: plugins/sudoers/parse.c:596 msgid " RunAsUsers: " msgstr " RunAs 用户:" -#: plugins/sudoers/parse.c:569 +#: plugins/sudoers/parse.c:611 msgid " RunAsGroups: " msgstr " RunAs 组:" -#: plugins/sudoers/parse.c:579 +#: plugins/sudoers/parse.c:621 msgid " Options: " msgstr " 选项:" -#: plugins/sudoers/parse.c:643 +#: plugins/sudoers/parse.c:685 msgid " Commands:\n" msgstr " 命令:\n" -#: plugins/sudoers/parse.c:834 +#: plugins/sudoers/parse.c:876 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "匹配 %2$s 上 %1$s 的默认条目:\n" -#: plugins/sudoers/parse.c:852 +#: plugins/sudoers/parse.c:894 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "%s Runas 和命令特定的默认值:\n" -#: plugins/sudoers/parse.c:870 +#: plugins/sudoers/parse.c:912 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "用户 %s 可以在 %s 上运行以下命令:\n" -#: plugins/sudoers/parse.c:885 +#: plugins/sudoers/parse.c:927 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "用户 %s 无权在 %s 上运行 sudo。\n" -#: plugins/sudoers/parse_ldif.c:617 +#: plugins/sudoers/parse_ldif.c:618 #, c-format msgid "ignoring incomplete sudoRole: cn: %s" msgstr "将忽略不完整的 sudoRole:cn:%s" -#: plugins/sudoers/parse_ldif.c:677 +#: plugins/sudoers/parse_ldif.c:678 #, c-format msgid "invalid LDIF attribute: %s" msgstr "无效的 LDIF 属性:%s" -#: plugins/sudoers/policy.c:80 plugins/sudoers/policy.c:111 +#: plugins/sudoers/policy.c:81 plugins/sudoers/policy.c:112 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "sudo 前端设置了无效的 %.*s" -#: plugins/sudoers/policy.c:206 plugins/sudoers/policy.c:215 -#, c-format -msgid "path name for \"%s\" too long" -msgstr "“%s”的路径名过长" - -#: plugins/sudoers/policy.c:328 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:358 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "无法解析网络地址列表" -#: plugins/sudoers/policy.c:485 +#: plugins/sudoers/policy.c:526 msgid "user name not set by sudo front-end" msgstr "用户名未通过 sudo 前端设置" -#: plugins/sudoers/policy.c:489 +#: plugins/sudoers/policy.c:530 msgid "user-ID not set by sudo front-end" msgstr "用户 ID 未通过 sudo 前端设置" -#: plugins/sudoers/policy.c:493 +#: plugins/sudoers/policy.c:534 msgid "group-ID not set by sudo front-end" msgstr "组 ID 未通过 sudo 前端设置" -#: plugins/sudoers/policy.c:497 +#: plugins/sudoers/policy.c:538 msgid "host name not set by sudo front-end" msgstr "主机名未通过 sudo 前端设置" -#: plugins/sudoers/policy.c:670 +#: plugins/sudoers/policy.c:730 #, c-format msgid "invalid working directory: %s" msgstr "无效的工作目录:%s" -#: plugins/sudoers/policy.c:846 +#: plugins/sudoers/policy.c:914 #, c-format msgid "invalid chroot directory: %s" msgstr "无法的 chroot 目录:%s" -#: plugins/sudoers/policy.c:1025 plugins/sudoers/visudo.c:243 -#: plugins/sudoers/visudo.c:880 +#: plugins/sudoers/policy.c:1101 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:902 #, c-format msgid "unable to execute %s" msgstr "无法执行 %s" -#: plugins/sudoers/policy.c:1095 plugins/sudoers/policy.c:1132 -#: plugins/sudoers/policy.c:1154 plugins/sudoers/policy.c:1180 -#, fuzzy, c-format -#| msgid "invalid %.*s set by sudo front-end" +#: plugins/sudoers/policy.c:1171 plugins/sudoers/policy.c:1208 +#: plugins/sudoers/policy.c:1230 plugins/sudoers/policy.c:1256 +#, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" -msgstr "sudo 前端设置了无效的 %.*s" +msgstr "%s:sudo 前端无效的模式标志位:0x%x" -#: plugins/sudoers/policy.c:1211 +#: plugins/sudoers/policy.c:1292 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Sudoers 策略插件版本 %s\n" -#: plugins/sudoers/policy.c:1213 +#: plugins/sudoers/policy.c:1294 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Sudoers 文件语法版本 %d\n" -#: plugins/sudoers/policy.c:1217 +#: plugins/sudoers/policy.c:1298 #, c-format msgid "" "\n" @@ -3080,27 +3110,27 @@ msgstr "" "\n" "Sudoers 路径:%s\n" -#: plugins/sudoers/policy.c:1220 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "nsswitch path: %s\n" msgstr "nsswitch 路径:%s\n" -#: plugins/sudoers/policy.c:1222 +#: plugins/sudoers/policy.c:1303 #, c-format msgid "ldap.conf path: %s\n" msgstr "ldap.conf 路径:%s\n" -#: plugins/sudoers/policy.c:1223 +#: plugins/sudoers/policy.c:1304 #, c-format msgid "ldap.secret path: %s\n" msgstr "ldap.secret 路径:%s\n" -#: plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1337 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "无法注册类型为 %d 的钩子(hook)(版本 %d.%d)" -#: plugins/sudoers/policy.c:1274 +#: plugins/sudoers/policy.c:1355 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "无法取消注册类型为 %d 的钩子(hook)(版本 %d.%d)" @@ -3239,149 +3269,143 @@ msgstr "无法初始化 SSS 资源。您的计算机上安装 SSSD 了吗?" msgid "unable to find symbol \"%s\" in %s" msgstr "无法在 %s 中找到符号“%s”" -#: plugins/sudoers/sudoers.c:166 plugins/sudoers/sudoers.c:174 -#: plugins/sudoers/sudoers.c:228 plugins/sudoers/sudoers.c:249 -#: plugins/sudoers/sudoers.c:1049 -msgid "problem with defaults entries" -msgstr "默认条目有问题" +#: plugins/sudoers/sudoers.c:263 +#, fuzzy, c-format +#| msgid "unable to parse gids for %s" +msgid "unable to get defaults from %s" +msgstr "无法解析 %s 的组 ID" -#: plugins/sudoers/sudoers.c:253 +#: plugins/sudoers/sudoers.c:270 msgid "no valid sudoers sources found, quitting" msgstr "没有找到有效的 sudoers 资源,退出" -#: plugins/sudoers/sudoers.c:327 +#: plugins/sudoers/sudoers.c:346 #, c-format msgid "user not allowed to change root directory to %s" msgstr "用户不允许将根目录设置为 %s" -#: plugins/sudoers/sudoers.c:329 +#: plugins/sudoers/sudoers.c:348 #, c-format msgid "you are not permitted to use the -R option with %s" msgstr "您无权和 %s 一起使用 -R 选项" -#: plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:373 #, c-format msgid "user not allowed to change directory to %s" msgstr "用户不允许将目录变更为 %s" -#: plugins/sudoers/sudoers.c:355 +#: plugins/sudoers/sudoers.c:374 #, c-format msgid "you are not permitted to use the -D option with %s" msgstr "您无权和 %s 一起使用 -D 选项" -#: plugins/sudoers/sudoers.c:382 +#: plugins/sudoers/sudoers.c:401 msgid "no command specified" msgstr "未指定命令" -#: plugins/sudoers/sudoers.c:407 +#: plugins/sudoers/sudoers.c:426 msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers 指定 root 不允许执行 sudo" -#: plugins/sudoers/sudoers.c:457 +#: plugins/sudoers/sudoers.c:476 msgid "user not allowed to override closefrom limit" msgstr "" -#: plugins/sudoers/sudoers.c:458 +#: plugins/sudoers/sudoers.c:477 msgid "you are not permitted to use the -C option" msgstr "您无权使用 -C 选项" -#: plugins/sudoers/sudoers.c:518 +#: plugins/sudoers/sudoers.c:537 #, c-format msgid "timestamp owner (%s): No such user" msgstr "时间戳所有者(%s):无此用户" -#: plugins/sudoers/sudoers.c:533 +#: plugins/sudoers/sudoers.c:552 msgid "no tty" msgstr "无终端" -#: plugins/sudoers/sudoers.c:534 +#: plugins/sudoers/sudoers.c:553 msgid "sorry, you must have a tty to run sudo" msgstr "抱歉,您必须拥有一个终端来执行 sudo" -#: plugins/sudoers/sudoers.c:541 +#: plugins/sudoers/sudoers.c:560 #, c-format msgid "invalid shell for user %s: %s" msgstr "用户 %s 的无效 shell:%s" -#: plugins/sudoers/sudoers.c:624 +#: plugins/sudoers/sudoers.c:643 msgid "command in current directory" msgstr "当前目录中的命令" -#: plugins/sudoers/sudoers.c:639 +#: plugins/sudoers/sudoers.c:658 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "“cd”是 shell 内置命令,它无法直接运行。" -#: plugins/sudoers/sudoers.c:641 +#: plugins/sudoers/sudoers.c:660 msgid "the -s option may be used to run a privileged shell." msgstr "-s 选项必须在特权 shell 中使用。" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:662 msgid "the -D option may be used to run a command in a specific directory." msgstr "" -#: plugins/sudoers/sudoers.c:652 +#: plugins/sudoers/sudoers.c:671 msgid "user not allowed to set a command timeout" msgstr "不允许用户设置超时时间" -#: plugins/sudoers/sudoers.c:654 +#: plugins/sudoers/sudoers.c:673 msgid "sorry, you are not allowed set a command timeout" msgstr "抱歉,您无权设置超时时间" -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:681 msgid "user not allowed to preserve the environment" msgstr "不允许用户保留环境" -#: plugins/sudoers/sudoers.c:664 +#: plugins/sudoers/sudoers.c:683 msgid "sorry, you are not allowed to preserve the environment" msgstr "抱歉,您无权保留环境" -#: plugins/sudoers/sudoers.c:1037 +#: plugins/sudoers/sudoers.c:1073 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit 无需经由 sudo 运行" -#: plugins/sudoers/sudoers.c:1096 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1118 plugins/sudoers/sudoreplay.c:1584 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "无法读取 %s" -#: plugins/sudoers/sudoers.c:1121 plugins/sudoers/visudo.c:449 -#: plugins/sudoers/visudo.c:748 -#, c-format -msgid "unable to stat %s" -msgstr "无法 stat %s" - -#: plugins/sudoers/sudoers.c:1125 plugins/sudoers/visudo.c:1045 +#: plugins/sudoers/sudoers.c:1147 plugins/sudoers/visudo.c:1064 #, c-format msgid "%s is not a regular file" msgstr "%s 不是常规文件" -#: plugins/sudoers/sudoers.c:1129 plugins/sudoers/timestamp.c:252 toke.l:1239 +#: plugins/sudoers/sudoers.c:1151 plugins/sudoers/timestamp.c:263 toke.l:1247 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s 属于用户 ID %u,应为 %u" -#: plugins/sudoers/sudoers.c:1133 toke.l:1244 +#: plugins/sudoers/sudoers.c:1155 plugins/sudoers/timestamp.c:270 toke.l:1252 #, c-format msgid "%s is world writable" msgstr "%s 可被任何人写" -#: plugins/sudoers/sudoers.c:1137 toke.l:1247 +#: plugins/sudoers/sudoers.c:1159 plugins/sudoers/timestamp.c:275 toke.l:1255 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s 属于组 ID %u,应为 %u" -#: plugins/sudoers/sudoers.c:1170 +#: plugins/sudoers/sudoers.c:1194 #, c-format msgid "only root can use \"-c %s\"" msgstr "只有 root 才能使用“-c %s”" -#: plugins/sudoers/sudoers.c:1189 +#: plugins/sudoers/sudoers.c:1213 #, c-format msgid "unknown login class %s" msgstr "未知的登录类别 %s" -#: plugins/sudoers/sudoers.c:1275 plugins/sudoers/sudoers.c:1290 +#: plugins/sudoers/sudoers.c:1300 plugins/sudoers/sudoers.c:1315 #, c-format msgid "unable to resolve host %s" msgstr "无法解析主机:%s" @@ -3479,17 +3503,17 @@ msgstr "非法的结尾字符“!”" msgid "unknown search type %d" msgstr "未知的搜索类型 %d" -#: plugins/sudoers/sudoreplay.c:1651 +#: plugins/sudoers/sudoreplay.c:1650 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "用法:%s [-hnRS] [-d 目录] [-m 数值] [-s 数值] ID\n" -#: plugins/sudoers/sudoreplay.c:1654 +#: plugins/sudoers/sudoreplay.c:1652 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "用法:%s [-h] [-d 目录] -l [搜索表达式]\n" -#: plugins/sudoers/sudoreplay.c:1663 +#: plugins/sudoers/sudoreplay.c:1666 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3498,7 +3522,7 @@ msgstr "" "%s - 回放 sudo 会话记录\n" "\n" -#: plugins/sudoers/sudoreplay.c:1665 +#: plugins/sudoers/sudoreplay.c:1668 msgid "" "\n" "Options:\n" @@ -3554,132 +3578,122 @@ msgstr "" "\n" "命令不匹配" -#: plugins/sudoers/timestamp.c:260 -#, c-format -msgid "%s is group writable" -msgstr "%s 可被组写" - -#: plugins/sudoers/timestamp.c:328 plugins/sudoers/timestamp.c:663 +#: plugins/sudoers/timestamp.c:354 plugins/sudoers/timestamp.c:693 #, c-format msgid "unable to truncate time stamp file to %lld bytes" msgstr "无法将时间戳文件截短为 %lld 字节" -#: plugins/sudoers/timestamp.c:860 +#: plugins/sudoers/timestamp.c:890 msgid "ignoring time stamp from the future" msgstr "将忽略超前的时间戳" -#: plugins/sudoers/timestamp.c:883 +#: plugins/sudoers/timestamp.c:913 #, c-format msgid "time stamp too far in the future: %20.20s" msgstr "时间戳太超前:%20.20s" -#: plugins/sudoers/timestamp.c:1005 +#: plugins/sudoers/timestamp.c:1042 #, c-format msgid "unable to lock time stamp file %s" msgstr "无法锁定时间戳文件 %s" -#: plugins/sudoers/timestamp.c:1049 plugins/sudoers/timestamp.c:1069 -#, c-format -msgid "lecture status path too long: %s/%s" -msgstr "致辞(lecture)状态路径过长:%s/%s" - #: plugins/sudoers/toke_util.c:156 msgid "sudoedit should not be specified with a path" msgstr "不应当带路径调用 sudoedit" -#: plugins/sudoers/visudo.c:238 +#: plugins/sudoers/visudo.c:254 msgid "the -x option will be removed in a future release" msgstr "未来版本中 -x 选项会移除" -#: plugins/sudoers/visudo.c:240 +#: plugins/sudoers/visudo.c:256 msgid "please consider using the cvtsudoers utility instead" msgstr "请考虑换用 cvtsudoers 工具" -#: plugins/sudoers/visudo.c:292 plugins/sudoers/visudo.c:676 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:698 #, c-format msgid "press return to edit %s: " msgstr "按回车键编辑 %s:" -#: plugins/sudoers/visudo.c:307 +#: plugins/sudoers/visudo.c:326 #, c-format msgid "contents of edit session left in %s" msgstr "" -#: plugins/sudoers/visudo.c:361 +#: plugins/sudoers/visudo.c:402 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "指定的编辑器(%s)不存在" -#: plugins/sudoers/visudo.c:363 +#: plugins/sudoers/visudo.c:404 #, c-format msgid "no editor found (editor path = %s)" msgstr "未找到编辑器(编辑器路径 = %s)" -#: plugins/sudoers/visudo.c:469 plugins/sudoers/visudo.c:477 +#: plugins/sudoers/visudo.c:491 plugins/sudoers/visudo.c:770 +#, c-format +msgid "unable to stat %s" +msgstr "无法 stat %s" + +#: plugins/sudoers/visudo.c:511 plugins/sudoers/visudo.c:519 msgid "write error" msgstr "写错误" -#: plugins/sudoers/visudo.c:523 +#: plugins/sudoers/visudo.c:565 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "无法 stat 临时文件(%s),%s 未更改" -#: plugins/sudoers/visudo.c:530 +#: plugins/sudoers/visudo.c:572 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "零长度的临时文件(%s),%s 未更改" -#: plugins/sudoers/visudo.c:536 +#: plugins/sudoers/visudo.c:578 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "编辑器(%s)失败,%s 未更改" -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/visudo.c:600 #, c-format msgid "%s unchanged" msgstr "%s 未更改" -#: plugins/sudoers/visudo.c:615 +#: plugins/sudoers/visudo.c:645 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "无法重新打开临时文件(%s),%s 未更改。" -#: plugins/sudoers/visudo.c:627 +#: plugins/sudoers/visudo.c:658 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "无法解析临时文件(%s),未知错误" -#: plugins/sudoers/visudo.c:665 -#, c-format -msgid "internal error, unable to find %s in list!" -msgstr "内部错误,在列表中找不到 %s!" - -#: plugins/sudoers/visudo.c:722 plugins/sudoers/visudo.c:752 -#: plugins/sudoers/visudo.c:759 +#: plugins/sudoers/visudo.c:744 plugins/sudoers/visudo.c:774 +#: plugins/sudoers/visudo.c:781 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "无法将 %s 的 (uid, gid) 设为 (%u, %u)" -#: plugins/sudoers/visudo.c:787 +#: plugins/sudoers/visudo.c:809 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s 和 %s 不在同一个文件系统,使用 mv 进行重命名" -#: plugins/sudoers/visudo.c:798 +#: plugins/sudoers/visudo.c:820 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "命令失败:“%s %s %s”,%s 未更改" -#: plugins/sudoers/visudo.c:805 +#: plugins/sudoers/visudo.c:827 #, c-format msgid "error renaming %s, %s unchanged" msgstr "重命名 %s 出错,%s 未更改" -#: plugins/sudoers/visudo.c:825 +#: plugins/sudoers/visudo.c:847 msgid "What now? " msgstr "现在做什么?" -#: plugins/sudoers/visudo.c:839 +#: plugins/sudoers/visudo.c:861 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3691,41 +3705,41 @@ msgstr "" " 退出,不保存对 sudoers 文件的更改(x)\n" " 退出并将更改保存到 sudoers 文件(危险!)(Q)\n" -#: plugins/sudoers/visudo.c:885 +#: plugins/sudoers/visudo.c:907 #, c-format msgid "unable to run %s" msgstr "无法运行 %s" -#: plugins/sudoers/visudo.c:916 +#: plugins/sudoers/visudo.c:938 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s:错误的所有者(uid, gid),应为 (%u, %u)\n" -#: plugins/sudoers/visudo.c:927 +#: plugins/sudoers/visudo.c:949 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s:权限不正确,模式应该是 0%o\n" -#: plugins/sudoers/visudo.c:978 plugins/sudoers/visudo.c:985 +#: plugins/sudoers/visudo.c:997 plugins/sudoers/visudo.c:1004 #, c-format msgid "%s: parsed OK\n" msgstr "%s:解析正确\n" -#: plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:1023 #, c-format msgid "%s busy, try again later" msgstr "%s 忙,请稍后重试" -#: plugins/sudoers/visudo.c:1008 +#: plugins/sudoers/visudo.c:1027 msgid "Edit anyway? [y/N]" msgstr "仍然编辑?[y/N]" -#: plugins/sudoers/visudo.c:1104 +#: plugins/sudoers/visudo.c:1128 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "警告:%s:%d:%d:未使用的 %s“%s”" -#: plugins/sudoers/visudo.c:1220 +#: plugins/sudoers/visudo.c:1240 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3734,13 +3748,14 @@ msgstr "" "%s - 安全地编辑 sudoers 文件\n" "\n" -#: plugins/sudoers/visudo.c:1222 +#: plugins/sudoers/visudo.c:1242 msgid "" "\n" "Options:\n" " -c, --check check-only mode\n" " -f, --file=sudoers specify sudoers file location\n" " -h, --help display help message and exit\n" +" -I, --no-includes do not edit include files\n" " -q, --quiet less verbose (quiet) syntax error messages\n" " -s, --strict strict syntax checking\n" " -V, --version display version information and exit\n" @@ -3750,6 +3765,7 @@ msgstr "" " -c, --check 纯检查模式\n" " -f, --file=sudoers 指定 sudoers 文件的位置\n" " -h, --help 显示帮助信息并退出\n" +" -I, --no-includes 不要编辑 include 文件\n" " -q, --quiet 较简略(安静)的语法错误信息\n" " -s, --strict 严格语法检查\n" " -V, --version 显示版本信息并退出\n" @@ -3780,14 +3796,90 @@ msgstr "无效的认证类型" msgid "invalid IPv6 address" msgstr "无效的 IPv6 地址" -#: toke.l:860 +#: toke.l:868 msgid "unexpected line break in string" msgstr "字符串中未预期的换行" -#: toke.l:1210 +#: toke.l:1218 msgid "too many levels of includes" msgstr "include 嵌套层数过多" +#~ msgid "Error: %s:%d:%d: cycle in %s \"%s\"" +#~ msgstr "错误:%s:%d:%d 在 %s “%s”中循环" + +#~ msgid "Warning: %s:%d:%d: cycle in %s \"%s\"" +#~ msgstr "警告:%s:%d:%d 在 %s “%s”中循环" + +#~ msgid "Warning: %s:%d:%d: %s \"%s\" referenced but not defined" +#~ msgstr "警告:%s:%d:%d:引用了 %s“%s”但尚未定义" + +#~ msgid "parse error in %s near line %d\n" +#~ msgstr "%s 中第 %d 行附近出现解析错误\n" + +#~ msgid "parse error in %s\n" +#~ msgstr "%s 中出现解析错误\n" + +#~ msgid "%s: unknown defaults entry \"%s\"" +#~ msgstr "%s:未知的默认条目“%s”" + +#~ msgid "%s:%d:%d: no value specified for \"%s\"" +#~ msgstr "%s:%d:%d:没有为“%s”指定值" + +#, fuzzy +#~| msgid "%s:%d no value specified for \"%s\"" +#~ msgid "%s:%d:%d: invalid operator \"%c=\" for \"%s\"" +#~ msgstr "%s:%d 没有给“%s”指定值" + +#~ msgid "%s:%d:%d: option \"%s\" does not take a value" +#~ msgstr "%s:%d:%d:选项“%s”不接受值" + +#, fuzzy +#~| msgid "%s:%d invalid Defaults type 0x%x for option \"%s\"" +#~ msgid "%s:%d:%d: invalid Defaults type 0x%x for option \"%s\"" +#~ msgstr "%1$s:%2$d 选项“%4$s”的默认类型 0x%3$x 无效" + +#, fuzzy +#~| msgid "%s:%d value \"%s\" is invalid for option \"%s\"" +#~ msgid "%s:%d:%d: value \"%s\" is invalid for option \"%s\"" +#~ msgstr "%1$s:%2$d 值“%3$s”对选项“%4$s”无效" + +#~ msgid "%s:%d:%d: path name for \"%s\" too long" +#~ msgstr "%s:%d:%d:“%s”的路径名过长" + +#~ msgid "%s: path name for \"%s\" too long" +#~ msgstr "%s:“%s”的路径名过长" + +#, fuzzy +#~| msgid "%s:%d values for \"%s\" must start with a '/'" +#~ msgid "%s:%d:%d: values for \"%s\" must start with a '/', '~', or '*'" +#~ msgstr "%s:%d “%s”的值必须以“/”开头" + +#, fuzzy +#~| msgid "%s:%d values for \"%s\" must start with a '/'" +#~ msgid "%s:%d:%d: values for \"%s\" must start with a '/'" +#~ msgstr "%s:%d “%s”的值必须以“/”开头" + +#~ msgid "parse error in %s near line %d" +#~ msgstr "%s 中第 %d 行附近有解析错误" + +#~ msgid "parse error in %s" +#~ msgstr "%s 中出现解析错误" + +#~ msgid "SELinux RBAC is not supported when the log_subcmds flag is enabled" +#~ msgstr "在 log_subcmds 启用时不支持 SELinux RBAC" + +#~ msgid "problem with defaults entries" +#~ msgstr "默认条目有问题" + +#~ msgid "%s is group writable" +#~ msgstr "%s 可被组写" + +#~ msgid "lecture status path too long: %s/%s" +#~ msgstr "致辞(lecture)状态路径过长:%s/%s" + +#~ msgid "internal error, unable to find %s in list!" +#~ msgstr "内部错误,在列表中找不到 %s!" + #~ msgid "%s is not in the sudoers file. This incident will be reported.\n" #~ msgstr "%s 不在 sudoers 文件中。此事将被报告。\n" @@ -3800,9 +3892,6 @@ msgstr "include 嵌套层数过多" #~ msgid "unable to read diffie-hellman parameters: %s" #~ msgstr "无法读取 diffie-hellman 参数:%s" -#~ msgid "unknown defaults entry \"%s\"" -#~ msgstr "未知的默认条目“%s”" - #~ msgid "%s:%d unknown key: %s" #~ msgstr "%s:%d 未知的键:%s" @@ -3883,9 +3972,6 @@ msgstr "include 嵌套层数过多" #~ "\n" #~ "SSSD 角色:未知\n" -#~ msgid "Warning: cycle in %s `%s'" -#~ msgstr "警告:在 %s “%s”中循环" - #~ msgid "Warning: unused %s `%s'" #~ msgstr "警告:%s “%s”未使用" diff --git a/plugins/sudoers/po/zh_TW.mo b/plugins/sudoers/po/zh_TW.mo index 7c63dca8ec..72f6af3958 100644 Binary files a/plugins/sudoers/po/zh_TW.mo and b/plugins/sudoers/po/zh_TW.mo differ diff --git a/plugins/sudoers/po/zh_TW.po b/plugins/sudoers/po/zh_TW.po index f3d5982ba0..192e5cba51 100644 --- a/plugins/sudoers/po/zh_TW.po +++ b/plugins/sudoers/po/zh_TW.po @@ -6,10 +6,10 @@ # Yi-Jyun Pan , 2019, 2020, 2021. msgid "" msgstr "" -"Project-Id-Version: sudoers 1.9.10b1\n" +"Project-Id-Version: sudoers 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-02-11 18:33-0700\n" -"PO-Revision-Date: 2022-02-16 00:24+0800\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-02-03 00:50+0800\n" "Last-Translator: Yi-Jyun Pan \n" "Language-Team: Chinese (traditional) \n" "Language: zh_TW\n" @@ -18,9 +18,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.2.2\n" -#: confstr.sh:1 gram.y:1198 +#: confstr.sh:1 gram.y:1220 plugins/sudoers/logging.c:866 msgid "syntax error" msgstr "語法錯誤" @@ -44,65 +44,78 @@ msgstr "*** %h 須知的安全資訊 ***" msgid "Sorry, try again." msgstr "抱歉,請重試。" -#: gram.y:233 gram.y:300 gram.y:309 gram.y:318 gram.y:328 gram.y:338 -#: gram.y:362 gram.y:389 gram.y:398 gram.y:406 gram.y:415 gram.y:424 -#: gram.y:498 gram.y:508 gram.y:520 gram.y:564 gram.y:573 gram.y:582 -#: gram.y:591 gram.y:718 gram.y:726 gram.y:737 gram.y:749 gram.y:768 -#: gram.y:923 gram.y:928 gram.y:936 gram.y:950 gram.y:956 gram.y:1078 -#: gram.y:1087 gram.y:1095 gram.y:1104 gram.y:1113 gram.y:1142 gram.y:1151 -#: gram.y:1159 gram.y:1252 gram.y:1382 gram.y:1748 gram.y:1798 -#: lib/eventlog/eventlog.c:309 lib/eventlog/eventlog.c:382 -#: lib/eventlog/eventlog.c:804 lib/eventlog/eventlog.c:881 -#: lib/eventlog/eventlog.c:1176 lib/iolog/iolog_filter.c:142 -#: lib/iolog/iolog_filter.c:204 lib/iolog/iolog_filter.c:233 +#: gram.y:237 gram.y:304 gram.y:313 gram.y:322 gram.y:332 gram.y:342 +#: gram.y:366 gram.y:393 gram.y:402 gram.y:410 gram.y:419 gram.y:428 +#: gram.y:502 gram.y:512 gram.y:524 gram.y:572 gram.y:581 gram.y:590 +#: gram.y:599 gram.y:731 gram.y:739 gram.y:750 gram.y:762 gram.y:781 +#: gram.y:944 gram.y:949 gram.y:957 gram.y:971 gram.y:977 gram.y:1099 +#: gram.y:1108 gram.y:1116 gram.y:1125 gram.y:1134 gram.y:1163 gram.y:1172 +#: gram.y:1180 gram.y:1280 gram.y:1410 gram.y:1777 gram.y:1827 +#: lib/eventlog/eventlog.c:235 lib/eventlog/eventlog.c:312 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:834 +#: lib/eventlog/eventlog.c:1135 lib/iolog/iolog_filter.c:142 +#: lib/iolog/iolog_filter.c:202 lib/iolog/iolog_filter.c:233 #: lib/iolog/iolog_json.c:150 lib/iolog/iolog_json.c:382 -#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_json.c:555 -#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 -#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 -#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 -#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:84 -#: logsrvd/iolog_writer.c:89 logsrvd/iolog_writer.c:123 -#: logsrvd/iolog_writer.c:172 logsrvd/iolog_writer.c:212 -#: logsrvd/iolog_writer.c:225 logsrvd/iolog_writer.c:261 -#: logsrvd/iolog_writer.c:286 logsrvd/iolog_writer.c:301 -#: logsrvd/iolog_writer.c:314 logsrvd/iolog_writer.c:327 -#: logsrvd/iolog_writer.c:340 logsrvd/iolog_writer.c:355 -#: logsrvd/iolog_writer.c:393 logsrvd/iolog_writer.c:399 -#: logsrvd/iolog_writer.c:406 logsrvd/iolog_writer.c:412 -#: logsrvd/iolog_writer.c:596 logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 -#: logsrvd/logsrvd.c:305 logsrvd/logsrvd.c:1011 logsrvd/logsrvd.c:1073 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:203 logsrvd/logsrvd_journal.c:204 -#: logsrvd/logsrvd_journal.c:260 logsrvd/logsrvd_journal.c:425 -#: logsrvd/logsrvd_journal.c:427 logsrvd/logsrvd_local.c:174 -#: logsrvd/logsrvd_local.c:175 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:238 logsrvd/logsrvd_local.c:376 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:426 -#: logsrvd/logsrvd_local.c:431 logsrvd/logsrvd_local.c:432 -#: logsrvd/logsrvd_queue.c:154 logsrvd/logsrvd_queue.c:184 -#: logsrvd/logsrvd_queue.c:261 logsrvd/logsrvd_relay.c:439 -#: logsrvd/logsrvd_relay.c:738 logsrvd/logsrvd_relay.c:843 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:118 -#: plugins/sudoers/auth/kerb5.c:146 plugins/sudoers/auth/pam.c:687 +#: lib/iolog/iolog_json.c:412 lib/iolog/iolog_legacy.c:100 +#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 +#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 +#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 +#: logsrvd/iolog_writer.c:95 logsrvd/iolog_writer.c:100 +#: logsrvd/iolog_writer.c:134 logsrvd/iolog_writer.c:182 +#: logsrvd/iolog_writer.c:215 logsrvd/iolog_writer.c:225 +#: logsrvd/iolog_writer.c:254 logsrvd/iolog_writer.c:275 +#: logsrvd/iolog_writer.c:287 logsrvd/iolog_writer.c:297 +#: logsrvd/iolog_writer.c:307 logsrvd/iolog_writer.c:317 +#: logsrvd/iolog_writer.c:329 logsrvd/iolog_writer.c:364 +#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:377 +#: logsrvd/iolog_writer.c:383 logsrvd/iolog_writer.c:567 +#: logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 logsrvd/logsrvd.c:310 +#: logsrvd/logsrvd.c:1050 logsrvd/logsrvd.c:1113 logsrvd/logsrvd.c:1582 +#: logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 logsrvd/logsrvd.c:1988 +#: logsrvd/logsrvd_conf.c:357 logsrvd/logsrvd_conf.c:370 +#: logsrvd/logsrvd_conf.c:511 logsrvd/logsrvd_conf.c:534 +#: logsrvd/logsrvd_conf.c:538 logsrvd/logsrvd_conf.c:556 +#: logsrvd/logsrvd_conf.c:626 logsrvd/logsrvd_conf.c:650 +#: logsrvd/logsrvd_conf.c:678 logsrvd/logsrvd_conf.c:692 +#: logsrvd/logsrvd_conf.c:706 logsrvd/logsrvd_conf.c:720 +#: logsrvd/logsrvd_conf.c:734 logsrvd/logsrvd_conf.c:748 +#: logsrvd/logsrvd_conf.c:829 logsrvd/logsrvd_conf.c:1036 +#: logsrvd/logsrvd_conf.c:1053 logsrvd/logsrvd_conf.c:1448 +#: logsrvd/logsrvd_conf.c:1595 logsrvd/logsrvd_conf.c:1621 +#: logsrvd/logsrvd_conf.c:1633 logsrvd/logsrvd_conf.c:1640 +#: logsrvd/logsrvd_conf.c:1646 logsrvd/logsrvd_conf.c:1743 +#: logsrvd/logsrvd_journal.c:76 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:217 logsrvd/logsrvd_journal.c:273 +#: logsrvd/logsrvd_journal.c:433 logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:216 +#: logsrvd/logsrvd_local.c:278 logsrvd/logsrvd_local.c:279 +#: logsrvd/logsrvd_local.c:417 logsrvd/logsrvd_local.c:466 +#: logsrvd/logsrvd_local.c:467 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:473 logsrvd/logsrvd_queue.c:159 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/logsrvd_relay.c:444 logsrvd/logsrvd_relay.c:743 +#: logsrvd/logsrvd_relay.c:850 logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 +#: logsrvd/sendlog.c:291 logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 +#: logsrvd/sendlog.c:1801 plugins/sudoers/audit.c:116 +#: plugins/sudoers/auth/bsdauth.c:150 plugins/sudoers/auth/kerb5.c:121 +#: plugins/sudoers/auth/kerb5.c:148 plugins/sudoers/auth/pam.c:687 #: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/auth/sia.c:59 -#: plugins/sudoers/check_aliases.c:134 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 #: plugins/sudoers/cvtsudoers.c:175 plugins/sudoers/cvtsudoers.c:192 #: plugins/sudoers/cvtsudoers.c:203 plugins/sudoers/cvtsudoers.c:333 #: plugins/sudoers/cvtsudoers.c:372 plugins/sudoers/cvtsudoers.c:392 #: plugins/sudoers/cvtsudoers.c:537 plugins/sudoers/cvtsudoers.c:670 -#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:758 -#: plugins/sudoers/cvtsudoers.c:873 plugins/sudoers/cvtsudoers.c:881 -#: plugins/sudoers/cvtsudoers.c:1376 plugins/sudoers/cvtsudoers.c:1380 -#: plugins/sudoers/cvtsudoers.c:1482 plugins/sudoers/cvtsudoers_csv.c:183 -#: plugins/sudoers/cvtsudoers_csv.c:246 plugins/sudoers/cvtsudoers_json.c:76 -#: plugins/sudoers/cvtsudoers_ldif.c:151 plugins/sudoers/cvtsudoers_ldif.c:194 -#: plugins/sudoers/cvtsudoers_ldif.c:235 plugins/sudoers/cvtsudoers_ldif.c:300 -#: plugins/sudoers/cvtsudoers_ldif.c:376 plugins/sudoers/cvtsudoers_ldif.c:430 -#: plugins/sudoers/cvtsudoers_ldif.c:438 plugins/sudoers/cvtsudoers_ldif.c:449 -#: plugins/sudoers/cvtsudoers_ldif.c:456 plugins/sudoers/cvtsudoers_ldif.c:469 -#: plugins/sudoers/cvtsudoers_ldif.c:477 plugins/sudoers/cvtsudoers_ldif.c:624 +#: plugins/sudoers/cvtsudoers.c:688 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:870 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 +#: plugins/sudoers/cvtsudoers_csv.c:183 plugins/sudoers/cvtsudoers_csv.c:246 +#: plugins/sudoers/cvtsudoers_json.c:76 plugins/sudoers/cvtsudoers_ldif.c:151 +#: plugins/sudoers/cvtsudoers_ldif.c:194 plugins/sudoers/cvtsudoers_ldif.c:235 +#: plugins/sudoers/cvtsudoers_ldif.c:300 plugins/sudoers/cvtsudoers_ldif.c:376 +#: plugins/sudoers/cvtsudoers_ldif.c:430 plugins/sudoers/cvtsudoers_ldif.c:438 +#: plugins/sudoers/cvtsudoers_ldif.c:449 plugins/sudoers/cvtsudoers_ldif.c:456 +#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:481 +#: plugins/sudoers/cvtsudoers_ldif.c:489 plugins/sudoers/cvtsudoers_ldif.c:636 #: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:52 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 @@ -111,195 +124,208 @@ msgstr "抱歉,請重試。" #: plugins/sudoers/cvtsudoers_merge.c:553 #: plugins/sudoers/cvtsudoers_merge.c:564 #: plugins/sudoers/cvtsudoers_merge.c:633 -#: plugins/sudoers/cvtsudoers_merge.c:1150 -#: plugins/sudoers/cvtsudoers_merge.c:1223 plugins/sudoers/defaults.c:468 -#: plugins/sudoers/defaults.c:690 plugins/sudoers/defaults.c:1051 -#: plugins/sudoers/defaults.c:1243 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/cvtsudoers_merge.c:1158 +#: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:133 -#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:264 -#: plugins/sudoers/iolog.c:664 plugins/sudoers/iolog.c:690 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:433 -#: plugins/sudoers/ldap.c:443 plugins/sudoers/ldap.c:448 -#: plugins/sudoers/ldap.c:452 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:760 plugins/sudoers/ldap.c:924 -#: plugins/sudoers/ldap.c:1340 plugins/sudoers/ldap.c:1766 -#: plugins/sudoers/ldap.c:1803 plugins/sudoers/ldap.c:1884 -#: plugins/sudoers/ldap.c:2019 plugins/sudoers/ldap.c:2120 -#: plugins/sudoers/ldap.c:2136 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:688 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:294 -#: plugins/sudoers/ldap_util.c:301 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:390 plugins/sudoers/log_client.c:703 -#: plugins/sudoers/log_client.c:724 plugins/sudoers/log_client.c:1444 -#: plugins/sudoers/log_client.c:1662 plugins/sudoers/log_client.c:1989 -#: plugins/sudoers/log_client.c:2045 plugins/sudoers/logging.c:104 -#: plugins/sudoers/logging.c:185 plugins/sudoers/logging.c:469 -#: plugins/sudoers/logging.c:489 plugins/sudoers/logging.c:628 -#: plugins/sudoers/match_command.c:324 plugins/sudoers/match_command.c:567 -#: plugins/sudoers/match_command.c:616 plugins/sudoers/match_command.c:688 -#: plugins/sudoers/match_command.c:736 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:201 plugins/sudoers/parse.c:218 -#: plugins/sudoers/parse.c:250 plugins/sudoers/parse.c:267 -#: plugins/sudoers/parse.c:290 plugins/sudoers/parse.c:301 -#: plugins/sudoers/parse_ldif.c:153 plugins/sudoers/parse_ldif.c:184 -#: plugins/sudoers/parse_ldif.c:253 plugins/sudoers/parse_ldif.c:261 -#: plugins/sudoers/parse_ldif.c:266 plugins/sudoers/parse_ldif.c:342 -#: plugins/sudoers/parse_ldif.c:353 plugins/sudoers/parse_ldif.c:380 -#: plugins/sudoers/parse_ldif.c:397 plugins/sudoers/parse_ldif.c:409 -#: plugins/sudoers/parse_ldif.c:413 plugins/sudoers/parse_ldif.c:427 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:597 -#: plugins/sudoers/parse_ldif.c:627 plugins/sudoers/parse_ldif.c:652 -#: plugins/sudoers/parse_ldif.c:710 plugins/sudoers/parse_ldif.c:727 -#: plugins/sudoers/parse_ldif.c:755 plugins/sudoers/parse_ldif.c:762 -#: plugins/sudoers/policy.c:570 plugins/sudoers/policy.c:952 -#: plugins/sudoers/prompt.c:93 plugins/sudoers/pwutil.c:199 -#: plugins/sudoers/pwutil.c:270 plugins/sudoers/pwutil.c:348 -#: plugins/sudoers/pwutil.c:522 plugins/sudoers/pwutil.c:587 -#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:857 -#: plugins/sudoers/pwutil.c:913 plugins/sudoers/pwutil.c:957 -#: plugins/sudoers/pwutil.c:1014 plugins/sudoers/sssd.c:145 -#: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 -#: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 -#: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:111 -#: plugins/sudoers/stubs.c:119 plugins/sudoers/sudoers.c:335 -#: plugins/sudoers/sudoers.c:361 plugins/sudoers/sudoers.c:429 -#: plugins/sudoers/sudoers.c:438 plugins/sudoers/sudoers.c:479 -#: plugins/sudoers/sudoers.c:842 plugins/sudoers/sudoers.c:980 -#: plugins/sudoers/sudoers.c:1039 plugins/sudoers/sudoers.c:1305 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 -#: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 -#: plugins/sudoers/testsudoers.c:580 plugins/sudoers/timestamp.c:424 -#: plugins/sudoers/timestamp.c:468 plugins/sudoers/timestamp.c:980 -#: plugins/sudoers/timestamp.c:1118 plugins/sudoers/toke_util.c:78 -#: plugins/sudoers/toke_util.c:106 plugins/sudoers/toke_util.c:131 -#: plugins/sudoers/toke_util.c:161 plugins/sudoers/toke_util.c:200 -#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:145 -#: plugins/sudoers/visudo.c:344 plugins/sudoers/visudo.c:350 -#: plugins/sudoers/visudo.c:456 plugins/sudoers/visudo.c:632 -#: plugins/sudoers/visudo.c:962 plugins/sudoers/visudo.c:1035 toke.l:1015 -#: toke.l:1147 toke.l:1218 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:212 +#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 +#: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:689 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:294 plugins/sudoers/ldap_util.c:301 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:402 +#: plugins/sudoers/log_client.c:715 plugins/sudoers/log_client.c:736 +#: plugins/sudoers/log_client.c:1415 plugins/sudoers/log_client.c:1536 +#: plugins/sudoers/log_client.c:1636 plugins/sudoers/log_client.c:1972 +#: plugins/sudoers/log_client.c:2031 plugins/sudoers/logging.c:110 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/match_command.c:335 plugins/sudoers/match_command.c:603 +#: plugins/sudoers/match_command.c:654 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:776 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:267 plugins/sudoers/parse.c:284 +#: plugins/sudoers/parse.c:303 plugins/sudoers/parse.c:322 +#: plugins/sudoers/parse.c:339 plugins/sudoers/parse.c:362 +#: plugins/sudoers/parse.c:373 plugins/sudoers/parse_ldif.c:153 +#: plugins/sudoers/parse_ldif.c:184 plugins/sudoers/parse_ldif.c:253 +#: plugins/sudoers/parse_ldif.c:261 plugins/sudoers/parse_ldif.c:266 +#: plugins/sudoers/parse_ldif.c:342 plugins/sudoers/parse_ldif.c:353 +#: plugins/sudoers/parse_ldif.c:380 plugins/sudoers/parse_ldif.c:397 +#: plugins/sudoers/parse_ldif.c:409 plugins/sudoers/parse_ldif.c:413 +#: plugins/sudoers/parse_ldif.c:427 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:628 +#: plugins/sudoers/parse_ldif.c:653 plugins/sudoers/parse_ldif.c:711 +#: plugins/sudoers/parse_ldif.c:728 plugins/sudoers/parse_ldif.c:756 +#: plugins/sudoers/parse_ldif.c:763 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 +#: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 +#: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 +#: plugins/sudoers/sssd.c:145 plugins/sudoers/sssd.c:185 +#: plugins/sudoers/sssd.c:414 plugins/sudoers/sssd.c:479 +#: plugins/sudoers/sssd.c:505 plugins/sudoers/sssd.c:568 +#: plugins/sudoers/sssd.c:761 plugins/sudoers/strvec_join.c:53 +#: plugins/sudoers/stubs.c:112 plugins/sudoers/stubs.c:120 +#: plugins/sudoers/sudoers.c:354 plugins/sudoers/sudoers.c:380 +#: plugins/sudoers/sudoers.c:447 plugins/sudoers/sudoers.c:464 +#: plugins/sudoers/sudoers.c:505 plugins/sudoers/sudoers.c:849 +#: plugins/sudoers/sudoers.c:902 plugins/sudoers/sudoers.c:1054 +#: plugins/sudoers/sudoers.c:1114 plugins/sudoers/sudoers.c:1369 +#: plugins/sudoers/sudoreplay.c:559 plugins/sudoers/sudoreplay.c:562 +#: plugins/sudoers/sudoreplay.c:1278 plugins/sudoers/sudoreplay.c:1334 +#: plugins/sudoers/sudoreplay.c:1530 plugins/sudoers/sudoreplay.c:1534 +#: plugins/sudoers/testsudoers.c:120 plugins/sudoers/testsudoers.c:224 +#: plugins/sudoers/testsudoers.c:241 plugins/sudoers/testsudoers.c:588 +#: plugins/sudoers/timestamp.c:451 plugins/sudoers/timestamp.c:495 +#: plugins/sudoers/timestamp.c:1017 plugins/sudoers/timestamp.c:1146 +#: plugins/sudoers/toke_util.c:78 plugins/sudoers/toke_util.c:106 +#: plugins/sudoers/toke_util.c:131 plugins/sudoers/toke_util.c:161 +#: plugins/sudoers/toke_util.c:200 plugins/sudoers/tsdump.c:123 +#: plugins/sudoers/visudo.c:150 plugins/sudoers/visudo.c:385 +#: plugins/sudoers/visudo.c:391 plugins/sudoers/visudo.c:502 +#: plugins/sudoers/visudo.c:1056 toke.l:1031 toke.l:1163 toke.l:1234 msgid "unable to allocate memory" msgstr "無法分配記憶體" -#: gram.y:615 +#: gram.y:623 msgid "a digest requires a path name" msgstr "摘要需要路徑名稱" -#: gram.y:637 +#: gram.y:645 msgid "values for \"CWD\" must start with a '/', '~', or '*'" msgstr "\"CWD\" 的值開頭必須是 '/'、'~' 或 '*'" -#: gram.y:643 +#: gram.y:651 msgid "\"CWD\" path too long" msgstr "「CWD」路徑過長" -#: gram.y:653 +#: gram.y:661 msgid "values for \"CHROOT\" must start with a '/', '~', or '*'" msgstr "\"CHROOT\" 的值開頭必須是 '/'、'~' 或 '*'" -#: gram.y:659 +#: gram.y:667 msgid "\"CHROOT\" path too long" msgstr "「CHROOT」路徑過長 " -#: gram.y:788 +#: gram.y:802 #, c-format msgid "syntax error, reserved word %s used as an alias name" msgstr "語法錯誤,保留字 %s 被用作別名名稱" -#: gram.y:811 +#: gram.y:825 msgid "invalid notbefore value" msgstr "notbefore 的值無效" -#: gram.y:820 +#: gram.y:834 msgid "invalid notafter value" msgstr "notafter 的值無效" -#: gram.y:830 plugins/sudoers/policy.c:353 +#: gram.y:844 plugins/sudoers/policy.c:385 msgid "timeout value too large" msgstr "timeout 值過長" -#: gram.y:832 plugins/sudoers/policy.c:355 +#: gram.y:846 plugins/sudoers/policy.c:387 msgid "invalid timeout value" msgstr "timeout 值無效" -#: gram.y:946 plugins/sudoers/sudoers.c:998 +#: gram.y:967 plugins/sudoers/sudoers.c:1072 msgid "command too long" msgstr "指令過長" -#: gram.y:1200 +#: gram.y:1224 plugins/sudoers/check_aliases.c:96 +#: plugins/sudoers/defaults.c:1276 #, c-format msgid "%s:%d:%d: %s\n" msgstr "%s:%d:%d: %s\n" -#: gram.y:1250 +#: gram.y:1278 #, c-format msgid "Alias \"%s\" already defined" msgstr "別名「%s」已定義過" -#: gram.y:1748 gram.y:1798 lib/eventlog/eventlog.c:309 -#: lib/eventlog/eventlog.c:804 lib/eventlog/eventlog.c:877 -#: lib/eventlog/eventlog.c:880 lib/eventlog/eventlog.c:1176 -#: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:204 +#: gram.y:1777 gram.y:1827 lib/eventlog/eventlog.c:235 +#: lib/eventlog/eventlog.c:757 lib/eventlog/eventlog.c:830 +#: lib/eventlog/eventlog.c:833 lib/eventlog/eventlog.c:1135 +#: lib/iolog/iolog_filter.c:142 lib/iolog/iolog_filter.c:202 #: lib/iolog/iolog_filter.c:232 lib/iolog/iolog_json.c:150 #: lib/iolog/iolog_json.c:381 lib/iolog/iolog_json.c:412 -#: lib/iolog/iolog_json.c:555 lib/iolog/iolog_legacy.c:100 -#: lib/iolog/iolog_legacy.c:111 lib/iolog/iolog_legacy.c:123 -#: lib/iolog/iolog_legacy.c:133 lib/iolog/iolog_legacy.c:139 -#: lib/iolog/iolog_loginfo.c:76 lib/iolog/iolog_loginfo.c:212 -#: logsrvd/iolog_writer.c:84 logsrvd/iolog_writer.c:89 -#: logsrvd/iolog_writer.c:123 logsrvd/iolog_writer.c:162 -#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:189 -#: logsrvd/iolog_writer.c:211 logsrvd/iolog_writer.c:224 -#: logsrvd/iolog_writer.c:251 logsrvd/iolog_writer.c:260 -#: logsrvd/iolog_writer.c:276 logsrvd/iolog_writer.c:285 -#: logsrvd/iolog_writer.c:300 logsrvd/iolog_writer.c:313 -#: logsrvd/iolog_writer.c:326 logsrvd/iolog_writer.c:339 -#: logsrvd/iolog_writer.c:354 logsrvd/iolog_writer.c:393 -#: logsrvd/iolog_writer.c:399 logsrvd/iolog_writer.c:406 -#: logsrvd/iolog_writer.c:412 logsrvd/iolog_writer.c:596 -#: logsrvd/logsrv_util.c:64 logsrvd/logsrvd.c:296 logsrvd/logsrvd.c:305 -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:593 -#: logsrvd/logsrvd.c:1084 logsrvd/logsrvd.c:1400 logsrvd/logsrvd.c:1406 -#: logsrvd/logsrvd_conf.c:1443 logsrvd/logsrvd_journal.c:70 -#: logsrvd/logsrvd_journal.c:114 logsrvd/logsrvd_journal.c:203 -#: logsrvd/logsrvd_journal.c:233 logsrvd/logsrvd_journal.c:237 -#: logsrvd/logsrvd_journal.c:245 logsrvd/logsrvd_journal.c:268 -#: logsrvd/logsrvd_journal.c:272 logsrvd/logsrvd_journal.c:425 -#: logsrvd/logsrvd_local.c:174 logsrvd/logsrvd_local.c:237 -#: logsrvd/logsrvd_local.c:425 logsrvd/logsrvd_local.c:431 -#: logsrvd/logsrvd_local.c:450 logsrvd/logsrvd_queue.c:153 -#: logsrvd/logsrvd_queue.c:184 logsrvd/logsrvd_queue.c:261 -#: logsrvd/sendlog.c:246 logsrvd/sendlog.c:255 logsrvd/sendlog.c:333 -#: logsrvd/sendlog.c:640 logsrvd/sendlog.c:1526 logsrvd/sendlog.c:1533 -#: logsrvd/sendlog.c:1756 logsrvd/tls_init.c:293 logsrvd/tls_init.c:314 -#: logsrvd/tls_init.c:324 plugins/sudoers/audit.c:116 -#: plugins/sudoers/auth/pam.c:502 plugins/sudoers/auth/pam.c:687 -#: plugins/sudoers/auth/rfc1938.c:111 plugins/sudoers/check_aliases.c:134 -#: plugins/sudoers/cvtsudoers.c:131 plugins/sudoers/cvtsudoers.c:174 -#: plugins/sudoers/cvtsudoers.c:191 plugins/sudoers/cvtsudoers.c:202 -#: plugins/sudoers/cvtsudoers.c:332 plugins/sudoers/cvtsudoers.c:536 -#: plugins/sudoers/cvtsudoers.c:669 plugins/sudoers/cvtsudoers.c:687 -#: plugins/sudoers/cvtsudoers.c:758 plugins/sudoers/cvtsudoers.c:873 -#: plugins/sudoers/cvtsudoers.c:880 plugins/sudoers/cvtsudoers.c:1376 -#: plugins/sudoers/cvtsudoers.c:1380 plugins/sudoers/cvtsudoers.c:1482 +#: lib/iolog/iolog_legacy.c:100 lib/iolog/iolog_legacy.c:111 +#: lib/iolog/iolog_legacy.c:123 lib/iolog/iolog_legacy.c:133 +#: lib/iolog/iolog_legacy.c:139 lib/iolog/iolog_loginfo.c:76 +#: lib/iolog/iolog_loginfo.c:212 logsrvd/iolog_writer.c:95 +#: logsrvd/iolog_writer.c:100 logsrvd/iolog_writer.c:134 +#: logsrvd/iolog_writer.c:171 logsrvd/iolog_writer.c:181 +#: logsrvd/iolog_writer.c:194 logsrvd/iolog_writer.c:214 +#: logsrvd/iolog_writer.c:224 logsrvd/iolog_writer.c:243 +#: logsrvd/iolog_writer.c:253 logsrvd/iolog_writer.c:264 +#: logsrvd/iolog_writer.c:274 logsrvd/iolog_writer.c:286 +#: logsrvd/iolog_writer.c:296 logsrvd/iolog_writer.c:306 +#: logsrvd/iolog_writer.c:316 logsrvd/iolog_writer.c:328 +#: logsrvd/iolog_writer.c:364 logsrvd/iolog_writer.c:370 +#: logsrvd/iolog_writer.c:377 logsrvd/iolog_writer.c:383 +#: logsrvd/iolog_writer.c:567 logsrvd/logsrv_util.c:69 logsrvd/logsrvd.c:301 +#: logsrvd/logsrvd.c:310 logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:490 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:611 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:732 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1439 logsrvd/logsrvd.c:1446 +#: logsrvd/logsrvd.c:1582 logsrvd/logsrvd.c:1587 logsrvd/logsrvd.c:1771 +#: logsrvd/logsrvd.c:1988 logsrvd/logsrvd_conf.c:357 +#: logsrvd/logsrvd_conf.c:370 logsrvd/logsrvd_conf.c:511 +#: logsrvd/logsrvd_conf.c:534 logsrvd/logsrvd_conf.c:538 +#: logsrvd/logsrvd_conf.c:556 logsrvd/logsrvd_conf.c:626 +#: logsrvd/logsrvd_conf.c:649 logsrvd/logsrvd_conf.c:678 +#: logsrvd/logsrvd_conf.c:692 logsrvd/logsrvd_conf.c:706 +#: logsrvd/logsrvd_conf.c:720 logsrvd/logsrvd_conf.c:734 +#: logsrvd/logsrvd_conf.c:748 logsrvd/logsrvd_conf.c:829 +#: logsrvd/logsrvd_conf.c:1036 logsrvd/logsrvd_conf.c:1053 +#: logsrvd/logsrvd_conf.c:1448 logsrvd/logsrvd_conf.c:1595 +#: logsrvd/logsrvd_conf.c:1621 logsrvd/logsrvd_conf.c:1633 +#: logsrvd/logsrvd_conf.c:1640 logsrvd/logsrvd_conf.c:1646 +#: logsrvd/logsrvd_conf.c:1742 logsrvd/logsrvd_journal.c:76 +#: logsrvd/logsrvd_journal.c:125 logsrvd/logsrvd_journal.c:216 +#: logsrvd/logsrvd_journal.c:246 logsrvd/logsrvd_journal.c:250 +#: logsrvd/logsrvd_journal.c:258 logsrvd/logsrvd_journal.c:281 +#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:433 +#: logsrvd/logsrvd_local.c:215 logsrvd/logsrvd_local.c:278 +#: logsrvd/logsrvd_local.c:466 logsrvd/logsrvd_local.c:472 +#: logsrvd/logsrvd_local.c:491 logsrvd/logsrvd_queue.c:158 +#: logsrvd/logsrvd_queue.c:189 logsrvd/logsrvd_queue.c:266 +#: logsrvd/sendlog.c:251 logsrvd/sendlog.c:260 logsrvd/sendlog.c:291 +#: logsrvd/sendlog.c:338 logsrvd/sendlog.c:615 logsrvd/sendlog.c:1503 +#: logsrvd/sendlog.c:1510 logsrvd/sendlog.c:1733 logsrvd/sendlog.c:1801 +#: logsrvd/tls_init.c:305 logsrvd/tls_init.c:329 logsrvd/tls_init.c:340 +#: plugins/sudoers/audit.c:116 plugins/sudoers/auth/pam.c:502 +#: plugins/sudoers/auth/pam.c:687 plugins/sudoers/auth/rfc1938.c:111 +#: plugins/sudoers/check_aliases.c:168 plugins/sudoers/cvtsudoers.c:131 +#: plugins/sudoers/cvtsudoers.c:174 plugins/sudoers/cvtsudoers.c:191 +#: plugins/sudoers/cvtsudoers.c:202 plugins/sudoers/cvtsudoers.c:332 +#: plugins/sudoers/cvtsudoers.c:536 plugins/sudoers/cvtsudoers.c:669 +#: plugins/sudoers/cvtsudoers.c:687 plugins/sudoers/cvtsudoers.c:862 +#: plugins/sudoers/cvtsudoers.c:869 plugins/sudoers/cvtsudoers.c:1365 +#: plugins/sudoers/cvtsudoers.c:1369 plugins/sudoers/cvtsudoers.c:1471 #: plugins/sudoers/cvtsudoers_csv.c:182 plugins/sudoers/cvtsudoers_csv.c:245 #: plugins/sudoers/cvtsudoers_json.c:75 plugins/sudoers/cvtsudoers_ldif.c:150 #: plugins/sudoers/cvtsudoers_ldif.c:193 plugins/sudoers/cvtsudoers_ldif.c:234 #: plugins/sudoers/cvtsudoers_ldif.c:299 plugins/sudoers/cvtsudoers_ldif.c:375 #: plugins/sudoers/cvtsudoers_ldif.c:429 plugins/sudoers/cvtsudoers_ldif.c:437 #: plugins/sudoers/cvtsudoers_ldif.c:448 plugins/sudoers/cvtsudoers_ldif.c:455 -#: plugins/sudoers/cvtsudoers_ldif.c:468 plugins/sudoers/cvtsudoers_ldif.c:476 -#: plugins/sudoers/cvtsudoers_ldif.c:623 plugins/sudoers/cvtsudoers_merge.c:47 -#: plugins/sudoers/cvtsudoers_merge.c:51 +#: plugins/sudoers/cvtsudoers_ldif.c:467 plugins/sudoers/cvtsudoers_ldif.c:480 +#: plugins/sudoers/cvtsudoers_ldif.c:488 plugins/sudoers/cvtsudoers_ldif.c:635 +#: plugins/sudoers/cvtsudoers_merge.c:47 plugins/sudoers/cvtsudoers_merge.c:51 #: plugins/sudoers/cvtsudoers_merge.c:353 #: plugins/sudoers/cvtsudoers_merge.c:399 #: plugins/sudoers/cvtsudoers_merge.c:445 @@ -309,151 +335,133 @@ msgstr "別名「%s」已定義過" #: plugins/sudoers/cvtsudoers_merge.c:564 #: plugins/sudoers/cvtsudoers_merge.c:630 #: plugins/sudoers/cvtsudoers_merge.c:633 -#: plugins/sudoers/cvtsudoers_merge.c:1149 -#: plugins/sudoers/cvtsudoers_merge.c:1223 plugins/sudoers/defaults.c:468 -#: plugins/sudoers/defaults.c:690 plugins/sudoers/defaults.c:1051 -#: plugins/sudoers/defaults.c:1243 plugins/sudoers/editor.c:190 -#: plugins/sudoers/env.c:262 plugins/sudoers/exptilde.c:92 +#: plugins/sudoers/cvtsudoers_merge.c:1157 +#: plugins/sudoers/cvtsudoers_merge.c:1231 plugins/sudoers/defaults.c:434 +#: plugins/sudoers/defaults.c:658 plugins/sudoers/defaults.c:1019 +#: plugins/sudoers/defaults.c:1187 plugins/sudoers/editor.c:197 +#: plugins/sudoers/env.c:263 plugins/sudoers/exptilde.c:92 #: plugins/sudoers/filedigest.c:54 plugins/sudoers/filedigest.c:70 -#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:132 -#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:264 -#: plugins/sudoers/iolog.c:664 plugins/sudoers/iolog.c:690 -#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:433 -#: plugins/sudoers/ldap.c:443 plugins/sudoers/ldap.c:448 -#: plugins/sudoers/ldap.c:452 plugins/sudoers/ldap.c:464 -#: plugins/sudoers/ldap.c:760 plugins/sudoers/ldap.c:924 -#: plugins/sudoers/ldap.c:1340 plugins/sudoers/ldap.c:1766 -#: plugins/sudoers/ldap.c:1803 plugins/sudoers/ldap.c:1884 -#: plugins/sudoers/ldap.c:2019 plugins/sudoers/ldap.c:2120 -#: plugins/sudoers/ldap.c:2136 plugins/sudoers/ldap_conf.c:218 -#: plugins/sudoers/ldap_conf.c:249 plugins/sudoers/ldap_conf.c:301 -#: plugins/sudoers/ldap_conf.c:337 plugins/sudoers/ldap_conf.c:443 -#: plugins/sudoers/ldap_conf.c:458 plugins/sudoers/ldap_conf.c:563 -#: plugins/sudoers/ldap_conf.c:596 plugins/sudoers/ldap_conf.c:687 -#: plugins/sudoers/ldap_conf.c:770 plugins/sudoers/ldap_util.c:293 -#: plugins/sudoers/ldap_util.c:300 plugins/sudoers/ldap_util.c:614 -#: plugins/sudoers/linux_audit.c:86 plugins/sudoers/log_client.c:112 -#: plugins/sudoers/log_client.c:221 plugins/sudoers/log_client.c:242 -#: plugins/sudoers/log_client.c:255 plugins/sudoers/log_client.c:390 -#: plugins/sudoers/log_client.c:703 plugins/sudoers/log_client.c:724 -#: plugins/sudoers/log_client.c:1444 plugins/sudoers/log_client.c:1662 -#: plugins/sudoers/log_client.c:1989 plugins/sudoers/log_client.c:2045 -#: plugins/sudoers/logging.c:104 plugins/sudoers/logging.c:184 -#: plugins/sudoers/logging.c:185 plugins/sudoers/logging.c:468 -#: plugins/sudoers/logging.c:488 plugins/sudoers/logging.c:628 -#: plugins/sudoers/match_command.c:323 plugins/sudoers/match_command.c:566 -#: plugins/sudoers/match_command.c:615 plugins/sudoers/match_command.c:688 -#: plugins/sudoers/match_command.c:735 plugins/sudoers/match_digest.c:93 -#: plugins/sudoers/parse.c:200 plugins/sudoers/parse.c:217 -#: plugins/sudoers/parse.c:249 plugins/sudoers/parse.c:266 -#: plugins/sudoers/parse.c:289 plugins/sudoers/parse.c:300 -#: plugins/sudoers/parse_ldif.c:152 plugins/sudoers/parse_ldif.c:183 -#: plugins/sudoers/parse_ldif.c:252 plugins/sudoers/parse_ldif.c:260 -#: plugins/sudoers/parse_ldif.c:265 plugins/sudoers/parse_ldif.c:341 -#: plugins/sudoers/parse_ldif.c:352 plugins/sudoers/parse_ldif.c:379 -#: plugins/sudoers/parse_ldif.c:396 plugins/sudoers/parse_ldif.c:408 -#: plugins/sudoers/parse_ldif.c:412 plugins/sudoers/parse_ldif.c:426 -#: plugins/sudoers/parse_ldif.c:484 plugins/sudoers/parse_ldif.c:597 -#: plugins/sudoers/parse_ldif.c:626 plugins/sudoers/parse_ldif.c:651 -#: plugins/sudoers/parse_ldif.c:709 plugins/sudoers/parse_ldif.c:726 -#: plugins/sudoers/parse_ldif.c:754 plugins/sudoers/parse_ldif.c:761 -#: plugins/sudoers/policy.c:152 plugins/sudoers/policy.c:161 -#: plugins/sudoers/policy.c:170 plugins/sudoers/policy.c:197 -#: plugins/sudoers/policy.c:338 plugins/sudoers/policy.c:353 -#: plugins/sudoers/policy.c:355 plugins/sudoers/policy.c:391 -#: plugins/sudoers/policy.c:400 plugins/sudoers/policy.c:448 -#: plugins/sudoers/policy.c:458 plugins/sudoers/policy.c:467 -#: plugins/sudoers/policy.c:476 plugins/sudoers/policy.c:570 -#: plugins/sudoers/policy.c:952 plugins/sudoers/prompt.c:93 +#: plugins/sudoers/gc.c:57 plugins/sudoers/group_plugin.c:211 +#: plugins/sudoers/interfaces.c:68 plugins/sudoers/iolog.c:268 +#: plugins/sudoers/iolog.c:668 plugins/sudoers/iolog.c:694 +#: plugins/sudoers/ldap.c:184 plugins/sudoers/ldap.c:466 +#: plugins/sudoers/ldap.c:757 plugins/sudoers/ldap.c:921 +#: plugins/sudoers/ldap.c:1337 plugins/sudoers/ldap.c:1763 +#: plugins/sudoers/ldap.c:1800 plugins/sudoers/ldap.c:2016 +#: plugins/sudoers/ldap.c:2117 plugins/sudoers/ldap.c:2133 +#: plugins/sudoers/ldap_conf.c:218 plugins/sudoers/ldap_conf.c:250 +#: plugins/sudoers/ldap_conf.c:302 plugins/sudoers/ldap_conf.c:338 +#: plugins/sudoers/ldap_conf.c:444 plugins/sudoers/ldap_conf.c:459 +#: plugins/sudoers/ldap_conf.c:564 plugins/sudoers/ldap_conf.c:597 +#: plugins/sudoers/ldap_conf.c:688 plugins/sudoers/ldap_conf.c:771 +#: plugins/sudoers/ldap_util.c:293 plugins/sudoers/ldap_util.c:300 +#: plugins/sudoers/ldap_util.c:614 plugins/sudoers/linux_audit.c:86 +#: plugins/sudoers/log_client.c:117 plugins/sudoers/log_client.c:228 +#: plugins/sudoers/log_client.c:250 plugins/sudoers/log_client.c:264 +#: plugins/sudoers/log_client.c:402 plugins/sudoers/log_client.c:715 +#: plugins/sudoers/log_client.c:736 plugins/sudoers/log_client.c:1415 +#: plugins/sudoers/log_client.c:1536 plugins/sudoers/log_client.c:1636 +#: plugins/sudoers/log_client.c:1972 plugins/sudoers/log_client.c:2031 +#: plugins/sudoers/logging.c:110 plugins/sudoers/logging.c:188 +#: plugins/sudoers/logging.c:189 plugins/sudoers/logging.c:457 +#: plugins/sudoers/logging.c:672 plugins/sudoers/logging.c:809 +#: plugins/sudoers/logging.c:880 plugins/sudoers/logging.c:892 +#: plugins/sudoers/match_command.c:334 plugins/sudoers/match_command.c:602 +#: plugins/sudoers/match_command.c:653 plugins/sudoers/match_command.c:728 +#: plugins/sudoers/match_command.c:775 plugins/sudoers/match_digest.c:93 +#: plugins/sudoers/parse.c:266 plugins/sudoers/parse.c:283 +#: plugins/sudoers/parse.c:302 plugins/sudoers/parse.c:321 +#: plugins/sudoers/parse.c:338 plugins/sudoers/parse.c:361 +#: plugins/sudoers/parse.c:372 plugins/sudoers/parse_ldif.c:152 +#: plugins/sudoers/parse_ldif.c:183 plugins/sudoers/parse_ldif.c:252 +#: plugins/sudoers/parse_ldif.c:260 plugins/sudoers/parse_ldif.c:265 +#: plugins/sudoers/parse_ldif.c:341 plugins/sudoers/parse_ldif.c:352 +#: plugins/sudoers/parse_ldif.c:379 plugins/sudoers/parse_ldif.c:396 +#: plugins/sudoers/parse_ldif.c:408 plugins/sudoers/parse_ldif.c:412 +#: plugins/sudoers/parse_ldif.c:426 plugins/sudoers/parse_ldif.c:484 +#: plugins/sudoers/parse_ldif.c:598 plugins/sudoers/parse_ldif.c:627 +#: plugins/sudoers/parse_ldif.c:652 plugins/sudoers/parse_ldif.c:710 +#: plugins/sudoers/parse_ldif.c:727 plugins/sudoers/parse_ldif.c:755 +#: plugins/sudoers/parse_ldif.c:762 plugins/sudoers/policy.c:154 +#: plugins/sudoers/policy.c:163 plugins/sudoers/policy.c:172 +#: plugins/sudoers/policy.c:201 plugins/sudoers/policy.c:370 +#: plugins/sudoers/policy.c:385 plugins/sudoers/policy.c:387 +#: plugins/sudoers/policy.c:425 plugins/sudoers/policy.c:434 +#: plugins/sudoers/policy.c:482 plugins/sudoers/policy.c:492 +#: plugins/sudoers/policy.c:501 plugins/sudoers/policy.c:510 +#: plugins/sudoers/policy.c:519 plugins/sudoers/policy.c:626 +#: plugins/sudoers/policy.c:1033 plugins/sudoers/prompt.c:93 #: plugins/sudoers/pwutil.c:199 plugins/sudoers/pwutil.c:270 #: plugins/sudoers/pwutil.c:348 plugins/sudoers/pwutil.c:522 #: plugins/sudoers/pwutil.c:587 plugins/sudoers/pwutil.c:659 -#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:913 -#: plugins/sudoers/pwutil.c:957 plugins/sudoers/pwutil.c:1014 +#: plugins/sudoers/pwutil.c:857 plugins/sudoers/pwutil.c:945 +#: plugins/sudoers/pwutil.c:993 plugins/sudoers/pwutil.c:1052 #: plugins/sudoers/set_perms.c:363 plugins/sudoers/set_perms.c:706 #: plugins/sudoers/set_perms.c:1073 plugins/sudoers/set_perms.c:1380 #: plugins/sudoers/set_perms.c:1549 plugins/sudoers/sssd.c:144 #: plugins/sudoers/sssd.c:185 plugins/sudoers/sssd.c:414 #: plugins/sudoers/sssd.c:479 plugins/sudoers/sssd.c:505 #: plugins/sudoers/sssd.c:568 plugins/sudoers/sssd.c:761 -#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:111 -#: plugins/sudoers/stubs.c:119 plugins/sudoers/sudoers.c:335 -#: plugins/sudoers/sudoers.c:361 plugins/sudoers/sudoers.c:429 -#: plugins/sudoers/sudoers.c:438 plugins/sudoers/sudoers.c:479 -#: plugins/sudoers/sudoers.c:842 plugins/sudoers/sudoers.c:980 -#: plugins/sudoers/sudoers.c:1039 plugins/sudoers/sudoers.c:1305 -#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:565 -#: plugins/sudoers/sudoreplay.c:1281 plugins/sudoers/sudoreplay.c:1503 -#: plugins/sudoers/sudoreplay.c:1507 plugins/sudoers/testsudoers.c:120 +#: plugins/sudoers/strvec_join.c:53 plugins/sudoers/stubs.c:112 +#: plugins/sudoers/stubs.c:120 plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:380 plugins/sudoers/sudoers.c:447 +#: plugins/sudoers/sudoers.c:464 plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:849 plugins/sudoers/sudoers.c:902 +#: plugins/sudoers/sudoers.c:1054 plugins/sudoers/sudoers.c:1114 +#: plugins/sudoers/sudoers.c:1369 plugins/sudoers/sudoreplay.c:559 +#: plugins/sudoers/sudoreplay.c:562 plugins/sudoers/sudoreplay.c:1278 +#: plugins/sudoers/sudoreplay.c:1334 plugins/sudoers/sudoreplay.c:1530 +#: plugins/sudoers/sudoreplay.c:1534 plugins/sudoers/testsudoers.c:120 #: plugins/sudoers/testsudoers.c:224 plugins/sudoers/testsudoers.c:241 -#: plugins/sudoers/testsudoers.c:580 plugins/sudoers/timestamp.c:424 -#: plugins/sudoers/timestamp.c:468 plugins/sudoers/timestamp.c:980 -#: plugins/sudoers/timestamp.c:1118 plugins/sudoers/toke_util.c:78 +#: plugins/sudoers/testsudoers.c:588 plugins/sudoers/timestamp.c:451 +#: plugins/sudoers/timestamp.c:495 plugins/sudoers/timestamp.c:1017 +#: plugins/sudoers/timestamp.c:1146 plugins/sudoers/toke_util.c:78 #: plugins/sudoers/toke_util.c:106 plugins/sudoers/toke_util.c:131 #: plugins/sudoers/toke_util.c:160 plugins/sudoers/toke_util.c:200 -#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:145 -#: plugins/sudoers/visudo.c:344 plugins/sudoers/visudo.c:350 -#: plugins/sudoers/visudo.c:456 plugins/sudoers/visudo.c:632 -#: plugins/sudoers/visudo.c:962 plugins/sudoers/visudo.c:1035 toke.l:1015 -#: toke.l:1147 toke.l:1210 toke.l:1218 +#: plugins/sudoers/tsdump.c:123 plugins/sudoers/visudo.c:150 +#: plugins/sudoers/visudo.c:385 plugins/sudoers/visudo.c:391 +#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:1056 toke.l:1031 +#: toke.l:1163 toke.l:1226 toke.l:1234 #, c-format msgid "%s: %s" msgstr "%s:%s" -#: lib/eventlog/eventlog.c:314 lib/iolog/iolog_json.c:562 -#: lib/iolog/iolog_json.c:568 lib/iolog/iolog_json.c:574 -#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 -#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 -#: plugins/sudoers/cvtsudoers_ldif.c:580 plugins/sudoers/env.c:326 -#: plugins/sudoers/env.c:333 plugins/sudoers/env.c:444 -#: plugins/sudoers/ldap.c:531 plugins/sudoers/ldap.c:764 -#: plugins/sudoers/ldap.c:1137 plugins/sudoers/ldap_conf.c:222 -#: plugins/sudoers/ldap_conf.c:312 plugins/sudoers/ldap_util.c:486 -#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/policy.c:740 -#: plugins/sudoers/policy.c:751 plugins/sudoers/prompt.c:168 -#: plugins/sudoers/serialize_list.c:62 plugins/sudoers/serialize_list.c:71 -#: plugins/sudoers/strvec_join.c:62 plugins/sudoers/testsudoers.c:245 -#: plugins/sudoers/toke_util.c:213 toke.l:979 toke.l:1181 -#, c-format -msgid "internal error, %s overflow" -msgstr "內部錯誤,%s 溢出" - -#: lib/eventlog/eventlog.c:373 +#: lib/eventlog/eventlog.c:303 #, c-format msgid "unable to dup stdin: %m" msgstr "無法 dup stdin:%m" -#: lib/eventlog/eventlog.c:415 +#: lib/eventlog/eventlog.c:345 #, c-format msgid "unable to execute %s: %m" msgstr "無法執行 %s:%m" -#: lib/eventlog/eventlog.c:456 plugins/sudoers/auth/aix_auth.c:198 +#: lib/eventlog/eventlog.c:393 plugins/sudoers/auth/aix_auth.c:198 msgid "unable to fork" msgstr "無法執行 fork" -#: lib/eventlog/eventlog.c:464 lib/eventlog/eventlog.c:518 +#: lib/eventlog/eventlog.c:403 lib/eventlog/eventlog.c:468 #, c-format msgid "unable to fork: %m" msgstr "無法執行 fork:%m" -#: lib/eventlog/eventlog.c:508 +#: lib/eventlog/eventlog.c:458 #, c-format msgid "unable to open pipe: %m" msgstr "無法開啟管線:%m" -#: lib/eventlog/eventlog.c:1007 +#: lib/eventlog/eventlog.c:960 #, c-format msgid "%8s : %s" msgstr "%8s : %s" -#: lib/eventlog/eventlog.c:1036 +#: lib/eventlog/eventlog.c:989 #, c-format msgid "%8s : (command continued) %s" msgstr "%8s : (指令繼續執行) %s" -#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1296 -#: plugins/sudoers/sudoreplay.c:1293 plugins/sudoers/sudoreplay.c:1558 +#: lib/iolog/iolog_filter.c:133 plugins/sudoers/defaults.c:1242 +#: plugins/sudoers/sudoreplay.c:1290 plugins/sudoers/sudoreplay.c:1586 #, c-format msgid "invalid regular expression \"%s\": %s" msgstr "無效的「%s」正規表達式:%s" @@ -471,64 +479,64 @@ msgstr "JSON_ARRAY 太大" msgid "missing double quote in name" msgstr "名稱中缺少雙引號" -#: lib/iolog/iolog_json.c:501 +#: lib/iolog/iolog_json.c:511 msgid "missing JSON_OBJECT" msgstr "缺少 JSON_OBJECT" -#: lib/iolog/iolog_json.c:505 +#: lib/iolog/iolog_json.c:515 #, c-format msgid "expected JSON_OBJECT, got %d" msgstr "應為 JSON_OBJECT,但收到 %d" -#: lib/iolog/iolog_json.c:661 +#: lib/iolog/iolog_json.c:632 #, c-format msgid "json stack exhausted (max %u frames)" msgstr "JSON 堆疊用盡(最多 %u 個框架)" -#: lib/iolog/iolog_json.c:735 +#: lib/iolog/iolog_json.c:706 msgid "objects must consist of name:value pairs" msgstr "物件必須由「鍵:值」對組成" -#: lib/iolog/iolog_json.c:740 lib/iolog/iolog_json.c:771 -#: lib/iolog/iolog_json.c:815 lib/iolog/iolog_json.c:837 -#: lib/iolog/iolog_json.c:859 lib/iolog/iolog_json.c:881 -#: lib/iolog/iolog_json.c:903 +#: lib/iolog/iolog_json.c:711 lib/iolog/iolog_json.c:742 +#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:830 lib/iolog/iolog_json.c:852 +#: lib/iolog/iolog_json.c:874 msgid "missing separator between values" msgstr "數值間缺少分隔符號" -#: lib/iolog/iolog_json.c:755 lib/iolog/iolog_json.c:929 +#: lib/iolog/iolog_json.c:726 lib/iolog/iolog_json.c:900 msgid "unmatched close brace" msgstr "未對稱的右大括弧" -#: lib/iolog/iolog_json.c:766 +#: lib/iolog/iolog_json.c:737 msgid "unexpected array" msgstr "不應有陣列" -#: lib/iolog/iolog_json.c:786 lib/iolog/iolog_json.c:932 +#: lib/iolog/iolog_json.c:757 lib/iolog/iolog_json.c:903 msgid "unmatched close bracket" msgstr "未對稱的右中括弧" -#: lib/iolog/iolog_json.c:797 +#: lib/iolog/iolog_json.c:768 msgid "unexpected string" msgstr "不應有字串" -#: lib/iolog/iolog_json.c:808 +#: lib/iolog/iolog_json.c:779 msgid "missing colon after name" msgstr "名稱後缺少冒號" -#: lib/iolog/iolog_json.c:829 lib/iolog/iolog_json.c:851 +#: lib/iolog/iolog_json.c:800 lib/iolog/iolog_json.c:822 msgid "unexpected boolean" msgstr "不應有布林值" -#: lib/iolog/iolog_json.c:873 +#: lib/iolog/iolog_json.c:844 msgid "unexpected null" msgstr "不應有 null" -#: lib/iolog/iolog_json.c:894 +#: lib/iolog/iolog_json.c:865 msgid "unexpected number" msgstr "不應有數字" -#: lib/iolog/iolog_json.c:941 +#: lib/iolog/iolog_json.c:912 msgid "parse error" msgstr "解析發生錯誤" @@ -567,14 +575,14 @@ msgstr "%s:缺少 runas 群組 欄位" msgid "%s exists but is not a directory (0%o)" msgstr "%s 存在,但非目錄 (0%o)" -#: lib/iolog/iolog_mkdirs.c:119 lib/iolog/iolog_mkdtemp.c:77 -#: logsrvd/iolog_writer.c:807 plugins/sudoers/timestamp.c:205 +#: lib/iolog/iolog_mkdirs.c:123 lib/iolog/iolog_mkdtemp.c:79 +#: logsrvd/iolog_writer.c:781 plugins/sudoers/timestamp.c:209 #, c-format msgid "unable to mkdir %s" msgstr "無法建立目錄 %s" -#: lib/iolog/iolog_mkdtemp.c:81 plugins/sudoers/visudo.c:731 -#: plugins/sudoers/visudo.c:765 plugins/sudoers/visudo.c:771 +#: lib/iolog/iolog_mkdtemp.c:84 plugins/sudoers/visudo.c:757 +#: plugins/sudoers/visudo.c:791 plugins/sudoers/visudo.c:797 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "無法將 %s 的模式變更為 0%o" @@ -589,773 +597,816 @@ msgstr "讀取計時檔案時發生錯誤:%s" msgid "invalid timing file line: %s" msgstr "無效的計時檔案行號:%s" -#: logsrvd/iolog_writer.c:130 plugins/sudoers/logging.c:804 -#: plugins/sudoers/policy.c:550 -msgid "unable to generate UUID" -msgstr "無法產生 UUID" +#: logsrvd/iolog_writer.c:65 +#, c-format +msgid "%s: protocol error: NULL key" +msgstr "%s:通訊協定有誤:NULL 鍵" -#: logsrvd/iolog_writer.c:158 logsrvd/iolog_writer.c:176 -#: logsrvd/iolog_writer.c:185 logsrvd/iolog_writer.c:203 -#: logsrvd/iolog_writer.c:216 logsrvd/iolog_writer.c:229 -#: logsrvd/iolog_writer.c:240 logsrvd/iolog_writer.c:247 -#: logsrvd/iolog_writer.c:265 logsrvd/iolog_writer.c:272 -#: logsrvd/iolog_writer.c:290 logsrvd/iolog_writer.c:305 -#: logsrvd/iolog_writer.c:318 logsrvd/iolog_writer.c:331 -#: logsrvd/iolog_writer.c:344 logsrvd/iolog_writer.c:359 +#: logsrvd/iolog_writer.c:69 #, c-format msgid "%s: protocol error: wrong type for %s" msgstr "%s:通訊協定有誤:%s 類型有錯" -#: logsrvd/iolog_writer.c:370 logsrvd/iolog_writer.c:375 -#: logsrvd/iolog_writer.c:380 logsrvd/iolog_writer.c:385 +#: logsrvd/iolog_writer.c:74 logsrvd/logsrvd_local.c:109 +#: logsrvd/logsrvd_local.c:123 logsrvd/logsrvd_local.c:131 +#: logsrvd/logsrvd_local.c:149 +#, c-format +msgid "%s: protocol error: NULL value found in %s" +msgstr "%s:通訊協定有誤:%s 中有 NULL 值" + +#: logsrvd/iolog_writer.c:141 plugins/sudoers/logging.c:980 +#: plugins/sudoers/policy.c:593 +msgid "unable to generate UUID" +msgstr "無法產生 UUID" + +#: logsrvd/iolog_writer.c:341 logsrvd/iolog_writer.c:346 +#: logsrvd/iolog_writer.c:351 logsrvd/iolog_writer.c:356 #, c-format msgid "%s: protocol error: %s missing from AcceptMessage" msgstr "%s:通訊協定有誤:AcceptMessage 缺少 %s" -#: logsrvd/iolog_writer.c:446 +#: logsrvd/iolog_writer.c:417 #, c-format msgid "%s: unable to format session id" msgstr "%s:無法格式化工作階段 ID" -#: logsrvd/iolog_writer.c:460 logsrvd/iolog_writer.c:474 -#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:503 -#: logsrvd/iolog_writer.c:517 logsrvd/iolog_writer.c:531 +#: logsrvd/iolog_writer.c:431 logsrvd/iolog_writer.c:445 +#: logsrvd/iolog_writer.c:459 logsrvd/iolog_writer.c:474 +#: logsrvd/iolog_writer.c:488 logsrvd/iolog_writer.c:502 #, c-format msgid "%s: %s is not set" msgstr "%s:%s 未設定" -#: logsrvd/iolog_writer.c:567 logsrvd/iolog_writer.c:574 +#: logsrvd/iolog_writer.c:538 logsrvd/iolog_writer.c:545 #, c-format msgid "unable to expand iolog path %s" msgstr "無法展開 iolog 路徑 %s" -#: logsrvd/iolog_writer.c:592 +#: logsrvd/iolog_writer.c:563 #, c-format msgid "unable to create iolog path %s" msgstr "無法建立 iolog 路徑 %s" -#: logsrvd/iolog_writer.c:622 +#: logsrvd/iolog_writer.c:593 #, c-format msgid "invalid iofd %d" msgstr "無效的 iofd %d" -#: logsrvd/iolog_writer.c:642 +#: logsrvd/iolog_writer.c:613 #, c-format msgid "error closing iofd %d: %s" msgstr "關閉 iofd %d 時發生錯誤:%s" -#: logsrvd/iolog_writer.c:662 +#: logsrvd/iolog_writer.c:633 #, c-format msgid "error flushing iofd %d: %s" msgstr "排清 iofd %d 時發生錯誤:%s" -#: logsrvd/iolog_writer.c:777 +#: logsrvd/iolog_writer.c:751 #, c-format msgid "invalid I/O log %s: %s referenced but not present" msgstr "無效的 I/O log %s:%s 有參考,但未呈現" -#: logsrvd/iolog_writer.c:789 logsrvd/logsrvd_journal.c:377 +#: logsrvd/iolog_writer.c:763 logsrvd/logsrvd_journal.c:385 #, c-format msgid "%s: unable to find resume point [%lld, %ld]" msgstr "%s:找不到繼續點 [%lld, %ld]" -#: logsrvd/iolog_writer.c:811 logsrvd/logsrvd_journal.c:420 -#: logsrvd/logsrvd_queue.c:110 logsrvd/tls_init.c:245 -#: plugins/sudoers/check.c:273 plugins/sudoers/cvtsudoers.c:730 -#: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1442 -#: plugins/sudoers/cvtsudoers_csv.c:681 plugins/sudoers/cvtsudoers_json.c:885 -#: plugins/sudoers/cvtsudoers_ldif.c:697 plugins/sudoers/sudoers.c:1092 -#: plugins/sudoers/sudoreplay.c:1469 plugins/sudoers/timestamp.c:433 -#: plugins/sudoers/tsdump.c:128 plugins/sudoers/visudo.c:949 +#: logsrvd/iolog_writer.c:785 logsrvd/logsrvd_journal.c:428 +#: logsrvd/logsrvd_queue.c:115 logsrvd/tls_init.c:256 +#: plugins/sudoers/check.c:292 plugins/sudoers/cvtsudoers.c:730 +#: plugins/sudoers/cvtsudoers.c:751 plugins/sudoers/cvtsudoers.c:1431 +#: plugins/sudoers/cvtsudoers_csv.c:695 plugins/sudoers/cvtsudoers_json.c:898 +#: plugins/sudoers/cvtsudoers_ldif.c:709 plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1182 plugins/sudoers/sudoreplay.c:1496 +#: plugins/sudoers/timestamp.c:460 plugins/sudoers/tsdump.c:128 +#: plugins/sudoers/visudo.c:975 #, c-format msgid "unable to open %s" msgstr "無法開啟 %s" -#: logsrvd/iolog_writer.c:823 logsrvd/logsrv_util.c:100 -#: logsrvd/logsrv_util.c:107 plugins/sudoers/sudoreplay.c:362 -#: plugins/sudoers/sudoreplay.c:368 +#: logsrvd/iolog_writer.c:797 logsrvd/logsrv_util.c:105 +#: logsrvd/logsrv_util.c:112 plugins/sudoers/sudoreplay.c:355 +#: plugins/sudoers/sudoreplay.c:361 #, c-format msgid "unable to open %s/%s" msgstr "無法開啟 %s/%s" -#: logsrvd/iolog_writer.c:836 +#: logsrvd/iolog_writer.c:810 #, c-format msgid "unable to copy %s/%s to %s/%s: %s" msgstr "無法複製 %s/%s 至 %s/%s:%s" -#: logsrvd/iolog_writer.c:865 logsrvd/logsrvd_journal.c:185 +#: logsrvd/iolog_writer.c:839 logsrvd/logsrvd_journal.c:198 #, c-format msgid "unable to rename %s to %s" msgstr "無法重新命名 %s 至 %s" -#: logsrvd/logsrv_util.c:139 logsrvd/logsrv_util.c:168 +#: logsrvd/logsrv_util.c:147 logsrvd/logsrv_util.c:176 #, c-format msgid "%s/%s: unable to find resume point [%lld, %ld]" msgstr "%s/%s:找不到繼續點 [%lld, %ld]" -#: logsrvd/logsrv_util.c:151 +#: logsrvd/logsrv_util.c:159 #, c-format msgid "missing I/O log file %s/%s" msgstr "缺少 I/O 記錄檔 %s/%s" -#: logsrvd/logsrv_util.c:158 +#: logsrvd/logsrv_util.c:166 #, c-format msgid "%s/%s: unable to seek forward %zu" msgstr "%s/%s:無法往前搜尋 %zu" -#: logsrvd/logsrvd.c:266 logsrvd/logsrvd_queue.c:130 +#: logsrvd/logsrvd.c:271 logsrvd/logsrvd_queue.c:135 msgid "unable to connect to relay" msgstr "無法連線至轉送點" -#: logsrvd/logsrvd.c:325 logsrvd/logsrvd_relay.c:835 +#: logsrvd/logsrvd.c:330 logsrvd/logsrvd_relay.c:842 #, c-format msgid "server message too large: %zu" msgstr "伺服器訊息過長:%zu" -#: logsrvd/logsrvd.c:417 logsrvd/logsrvd.c:534 logsrvd/logsrvd.c:613 -#: logsrvd/logsrvd.c:837 logsrvd/logsrvd.c:851 logsrvd/logsrvd.c:1010 -#: logsrvd/logsrvd.c:1134 logsrvd/logsrvd.c:1307 logsrvd/logsrvd.c:1325 -#: logsrvd/logsrvd.c:1423 logsrvd/logsrvd.c:1546 logsrvd/logsrvd.c:1730 -#: logsrvd/logsrvd_journal.c:489 logsrvd/logsrvd_local.c:197 -#: logsrvd/logsrvd_queue.c:159 logsrvd/logsrvd_relay.c:167 -#: logsrvd/logsrvd_relay.c:244 logsrvd/logsrvd_relay.c:248 -#: logsrvd/logsrvd_relay.c:384 logsrvd/logsrvd_relay.c:576 -#: logsrvd/logsrvd_relay.c:737 logsrvd/logsrvd_relay.c:1121 -#: logsrvd/sendlog.c:1316 logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 -#: logsrvd/tls_client.c:209 plugins/sudoers/audit.c:276 -#: plugins/sudoers/iolog.c:1027 plugins/sudoers/iolog.c:1160 -#: plugins/sudoers/iolog.c:1258 plugins/sudoers/log_client.c:116 -#: plugins/sudoers/log_client.c:332 plugins/sudoers/log_client.c:348 -#: plugins/sudoers/log_client.c:395 plugins/sudoers/log_client.c:599 -#: plugins/sudoers/log_client.c:606 plugins/sudoers/log_client.c:1131 -#: plugins/sudoers/log_client.c:1413 plugins/sudoers/log_client.c:1454 -#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1618 -#: plugins/sudoers/log_client.c:1734 plugins/sudoers/log_client.c:2053 -#: plugins/sudoers/log_client.c:2061 plugins/sudoers/logging.c:142 -#: plugins/sudoers/logging.c:199 plugins/sudoers/sudoreplay.c:522 -#: plugins/sudoers/sudoreplay.c:569 plugins/sudoers/sudoreplay.c:811 -#: plugins/sudoers/sudoreplay.c:923 plugins/sudoers/sudoreplay.c:1014 -#: plugins/sudoers/sudoreplay.c:1029 plugins/sudoers/sudoreplay.c:1036 -#: plugins/sudoers/sudoreplay.c:1043 plugins/sudoers/sudoreplay.c:1050 -#: plugins/sudoers/sudoreplay.c:1057 plugins/sudoers/sudoreplay.c:1184 +#: logsrvd/logsrvd.c:422 logsrvd/logsrvd.c:545 logsrvd/logsrvd.c:631 +#: logsrvd/logsrvd.c:873 logsrvd/logsrvd.c:887 logsrvd/logsrvd.c:1049 +#: logsrvd/logsrvd.c:1174 logsrvd/logsrvd.c:1347 logsrvd/logsrvd.c:1365 +#: logsrvd/logsrvd.c:1464 logsrvd/logsrvd.c:1589 logsrvd/logsrvd.c:1773 +#: logsrvd/logsrvd_journal.c:497 logsrvd/logsrvd_local.c:238 +#: logsrvd/logsrvd_queue.c:164 logsrvd/logsrvd_relay.c:172 +#: logsrvd/logsrvd_relay.c:249 logsrvd/logsrvd_relay.c:253 +#: logsrvd/logsrvd_relay.c:389 logsrvd/logsrvd_relay.c:581 +#: logsrvd/logsrvd_relay.c:742 logsrvd/logsrvd_relay.c:1131 +#: logsrvd/sendlog.c:1291 logsrvd/tls_client.c:136 logsrvd/tls_client.c:152 +#: logsrvd/tls_client.c:216 plugins/sudoers/audit.c:278 +#: plugins/sudoers/iolog.c:1031 plugins/sudoers/iolog.c:1164 +#: plugins/sudoers/iolog.c:1262 plugins/sudoers/log_client.c:121 +#: plugins/sudoers/log_client.c:343 plugins/sudoers/log_client.c:359 +#: plugins/sudoers/log_client.c:407 plugins/sudoers/log_client.c:611 +#: plugins/sudoers/log_client.c:618 plugins/sudoers/log_client.c:1103 +#: plugins/sudoers/log_client.c:1384 plugins/sudoers/log_client.c:1425 +#: plugins/sudoers/log_client.c:1433 plugins/sudoers/log_client.c:1592 +#: plugins/sudoers/log_client.c:1710 plugins/sudoers/log_client.c:2039 +#: plugins/sudoers/log_client.c:2047 plugins/sudoers/logging.c:147 +#: plugins/sudoers/logging.c:205 plugins/sudoers/sudoreplay.c:519 +#: plugins/sudoers/sudoreplay.c:566 plugins/sudoers/sudoreplay.c:808 +#: plugins/sudoers/sudoreplay.c:920 plugins/sudoers/sudoreplay.c:1011 +#: plugins/sudoers/sudoreplay.c:1026 plugins/sudoers/sudoreplay.c:1033 +#: plugins/sudoers/sudoreplay.c:1040 plugins/sudoers/sudoreplay.c:1047 +#: plugins/sudoers/sudoreplay.c:1054 plugins/sudoers/sudoreplay.c:1181 msgid "unable to add event to queue" msgstr "無法將事件附加到佇列" -#: logsrvd/logsrvd.c:441 logsrvd/logsrvd.c:478 logsrvd/logsrvd.c:510 -#: logsrvd/logsrvd.c:558 logsrvd/logsrvd.c:630 logsrvd/logsrvd.c:660 -#: logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:720 logsrvd/logsrvd_relay.c:505 -#: logsrvd/logsrvd_relay.c:538 +#: logsrvd/logsrvd.c:446 logsrvd/logsrvd.c:483 logsrvd/logsrvd.c:515 +#: logsrvd/logsrvd.c:569 logsrvd/logsrvd.c:648 logsrvd/logsrvd.c:684 +#: logsrvd/logsrvd.c:720 logsrvd/logsrvd.c:756 logsrvd/logsrvd_relay.c:510 +#: logsrvd/logsrvd_relay.c:543 #, c-format msgid "unexpected state %d for %s" msgstr "%2$s 發生非預期狀態 %1$d" -#: logsrvd/logsrvd.c:442 logsrvd/logsrvd.c:479 logsrvd/logsrvd.c:511 -#: logsrvd/logsrvd.c:559 logsrvd/logsrvd.c:631 logsrvd/logsrvd.c:661 -#: logsrvd/logsrvd.c:691 logsrvd/logsrvd.c:721 logsrvd/logsrvd_relay.c:507 -#: logsrvd/logsrvd_relay.c:540 +#: logsrvd/logsrvd.c:447 logsrvd/logsrvd.c:484 logsrvd/logsrvd.c:516 +#: logsrvd/logsrvd.c:570 logsrvd/logsrvd.c:649 logsrvd/logsrvd.c:685 +#: logsrvd/logsrvd.c:721 logsrvd/logsrvd.c:757 logsrvd/logsrvd_relay.c:512 +#: logsrvd/logsrvd_relay.c:545 msgid "state machine error" msgstr "狀態機器發生錯誤" -#: logsrvd/logsrvd.c:448 logsrvd/logsrvd.c:449 +#: logsrvd/logsrvd.c:453 logsrvd/logsrvd.c:454 msgid "invalid AcceptMessage" msgstr "無效的 AcceptMessage" -#: logsrvd/logsrvd.c:485 logsrvd/logsrvd.c:486 +#: logsrvd/logsrvd.c:490 logsrvd/logsrvd.c:491 msgid "invalid RejectMessage" msgstr "無效的 RejectMessage" -#: logsrvd/logsrvd.c:593 logsrvd/logsrvd.c:594 +#: logsrvd/logsrvd.c:522 logsrvd/logsrvd.c:523 +msgid "invalid ExitMessage" +msgstr "無效的 ExitMessage" + +#: logsrvd/logsrvd.c:576 logsrvd/logsrvd.c:577 +msgid "invalid RestartMessage" +msgstr "無效的 RestartMessage" + +#: logsrvd/logsrvd.c:611 logsrvd/logsrvd.c:612 msgid "invalid AlertMessage" msgstr "無效的 AlertMessage" -#: logsrvd/logsrvd.c:635 logsrvd/logsrvd.c:665 logsrvd/logsrvd.c:695 +#: logsrvd/logsrvd.c:653 logsrvd/logsrvd.c:689 logsrvd/logsrvd.c:725 #, c-format msgid "%s: unexpected IoBuffer" msgstr "%s:非預期的 IoBuffer" -#: logsrvd/logsrvd.c:636 logsrvd/logsrvd.c:666 logsrvd/logsrvd.c:696 +#: logsrvd/logsrvd.c:654 logsrvd/logsrvd.c:690 logsrvd/logsrvd.c:726 msgid "protocol error" msgstr "通訊協定錯誤" -#: logsrvd/logsrvd.c:791 logsrvd/logsrvd_journal.c:357 -#: logsrvd/logsrvd_local.c:125 logsrvd/logsrvd_relay.c:671 +#: logsrvd/logsrvd.c:660 logsrvd/logsrvd.c:661 +msgid "invalid IoBuffer" +msgstr "無效的 IoBuffer" + +#: logsrvd/logsrvd.c:696 logsrvd/logsrvd.c:697 +msgid "invalid ChangeWindowSize" +msgstr "無效的 ChangeWindowSize" + +#: logsrvd/logsrvd.c:732 logsrvd/logsrvd.c:733 +msgid "invalid CommandSuspend" +msgstr "無效的 CommandSuspend" + +#: logsrvd/logsrvd.c:782 logsrvd/logsrvd_journal.c:296 +#: logsrvd/logsrvd_relay.c:652 logsrvd/sendlog.c:1192 +#: plugins/sudoers/log_client.c:1582 +#, c-format +msgid "unable to unpack %s size %zu" +msgstr "無法解開 %s(大小 %zu)" + +#: logsrvd/logsrvd.c:827 logsrvd/logsrvd_journal.c:370 +#: logsrvd/logsrvd_relay.c:676 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "從 %3$s 收到的 %2$s 中,發現非預期的 type_case 值 %1$d" -#: logsrvd/logsrvd.c:793 +#: logsrvd/logsrvd.c:829 msgid "unrecognized ClientMessage type" msgstr "無法識別的 ClientMessage 類型" -#: logsrvd/logsrvd.c:883 +#: logsrvd/logsrvd.c:919 #, c-format msgid "timed out writing to client %s" msgstr "寫入 %s 用戶端等待逾時" -#: logsrvd/logsrvd.c:888 logsrvd/logsrvd_relay.c:907 logsrvd/sendlog.c:1420 +#: logsrvd/logsrvd.c:924 logsrvd/logsrvd_relay.c:914 logsrvd/sendlog.c:1395 #, c-format msgid "missing write buffer for client %s" msgstr "缺少 %s 用戶端的寫入緩衝區" -#: logsrvd/logsrvd.c:981 +#: logsrvd/logsrvd.c:1020 #, c-format msgid "timed out reading from client %s" msgstr "從 %s 用戶端讀取等待逾時" -#: logsrvd/logsrvd.c:1022 logsrvd/logsrvd_relay.c:771 +#: logsrvd/logsrvd.c:1061 logsrvd/logsrvd_relay.c:777 #, c-format msgid "EOF from %s without proper TLS shutdown" msgstr "從 %s 收到 EOF,但其未正確關閉 TLS。" -#: logsrvd/logsrvd.c:1065 logsrvd/logsrvd_relay.c:200 logsrvd/sendlog.c:317 -#: plugins/sudoers/log_client.c:709 +#: logsrvd/logsrvd.c:1105 logsrvd/logsrvd_relay.c:205 logsrvd/sendlog.c:322 +#: plugins/sudoers/log_client.c:721 #, c-format msgid "client message too large: %zu" msgstr "用戶端訊息過長:%zu" -#: logsrvd/logsrvd.c:1066 logsrvd/logsrvd_journal.c:246 -#: logsrvd/logsrvd_journal.c:247 +#: logsrvd/logsrvd.c:1106 logsrvd/logsrvd_journal.c:259 +#: logsrvd/logsrvd_journal.c:260 msgid "client message too large" msgstr "用戶端訊息過長" -#: logsrvd/logsrvd.c:1084 logsrvd/logsrvd.c:1085 +#: logsrvd/logsrvd.c:1124 logsrvd/logsrvd.c:1125 msgid "invalid ClientMessage" msgstr "無效的 ClientMessage" -#: logsrvd/logsrvd.c:1386 +#: logsrvd/logsrvd.c:1425 msgid "unable to get remote IP addr" msgstr "無法取得遠端 IP 地址" -#: logsrvd/logsrvd.c:1415 logsrvd/tls_client.c:196 -#: plugins/sudoers/log_client.c:270 +#: logsrvd/logsrvd.c:1456 logsrvd/tls_client.c:203 +#: plugins/sudoers/log_client.c:281 #, c-format msgid "Unable to attach user data to the ssl object: %s" msgstr "無法將使用者資料連結至 SSL 物件:%s" -#: logsrvd/logsrvd.c:1596 logsrvd/logsrvd.c:1948 +#: logsrvd/logsrvd.c:1639 logsrvd/logsrvd.c:1992 msgid "unable to setup listen socket" msgstr "無法設定監聽 socket 通訊端" -#: logsrvd/logsrvd.c:1713 +#: logsrvd/logsrvd.c:1756 #, c-format msgid "unexpected signal %d" msgstr "發生非預期信號 %d" -#: logsrvd/logsrvd.c:1850 +#: logsrvd/logsrvd.c:1894 msgid "sudo log server" msgstr "sudo 記錄伺服器" -#: logsrvd/logsrvd.c:1852 logsrvd/sendlog.c:116 +#: logsrvd/logsrvd.c:1896 logsrvd/sendlog.c:121 msgid "Options:" msgstr "選項:" -#: logsrvd/logsrvd.c:1854 +#: logsrvd/logsrvd.c:1898 msgid "path to configuration file" msgstr "設定檔路徑" -#: logsrvd/logsrvd.c:1856 logsrvd/sendlog.c:118 +#: logsrvd/logsrvd.c:1900 logsrvd/sendlog.c:123 msgid "display help message and exit" msgstr "顯示說明訊息後結束" -#: logsrvd/logsrvd.c:1858 +#: logsrvd/logsrvd.c:1902 msgid "do not fork, run in the foreground" msgstr "不要 fork,在前景執行" -#: logsrvd/logsrvd.c:1860 +#: logsrvd/logsrvd.c:1904 msgid "percent chance connections will drop" msgstr "拋棄連線的機率百分比" -#: logsrvd/logsrvd.c:1862 logsrvd/sendlog.c:148 +#: logsrvd/logsrvd.c:1906 logsrvd/sendlog.c:153 msgid "display version information and exit" msgstr "顯示版本資訊後結束" -#: logsrvd/logsrvd.c:1912 logsrvd/sendlog.c:1725 +#: logsrvd/logsrvd.c:1956 logsrvd/sendlog.c:1702 msgid "Protobuf-C version 1.3 or higher required" msgstr "需要 Protobuf-C 版本 1.3 或更高版本" -#: logsrvd/logsrvd.c:1928 +#: logsrvd/logsrvd.c:1972 #, c-format msgid "invalid random drop value: %s" msgstr "隨機丟棄值無效:%s" -#: logsrvd/logsrvd.c:1931 logsrvd/sendlog.c:1779 -#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:301 -#: plugins/sudoers/visudo.c:177 +#: logsrvd/logsrvd.c:1975 logsrvd/sendlog.c:1756 +#: plugins/sudoers/cvtsudoers.c:246 plugins/sudoers/sudoreplay.c:294 +#: plugins/sudoers/visudo.c:182 #, c-format msgid "%s version %s\n" msgstr "%s 版本 %s\n" -#: logsrvd/logsrvd_conf.c:417 plugins/sudoers/check.c:335 -#: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:120 -#: plugins/sudoers/policy.c:1188 plugins/sudoers/sudoers.c:486 -#: plugins/sudoers/sudoers.c:1347 plugins/sudoers/testsudoers.c:215 +#: logsrvd/logsrvd_conf.c:422 plugins/sudoers/check.c:358 +#: plugins/sudoers/exptilde.c:85 plugins/sudoers/iolog.c:122 +#: plugins/sudoers/policy.c:1271 plugins/sudoers/sudoers.c:512 +#: plugins/sudoers/sudoers.c:1411 plugins/sudoers/testsudoers.c:215 #: plugins/sudoers/testsudoers.c:382 #, c-format msgid "unknown user %s" msgstr "未知使用者 %s" -#: logsrvd/logsrvd_conf.c:434 plugins/sudoers/iolog.c:145 -#: plugins/sudoers/sudoers.c:491 plugins/sudoers/sudoers.c:1381 +#: logsrvd/logsrvd_conf.c:439 plugins/sudoers/iolog.c:148 +#: plugins/sudoers/sudoers.c:517 plugins/sudoers/sudoers.c:1445 #: plugins/sudoers/testsudoers.c:406 #, c-format msgid "unknown group %s" msgstr "未知群組 %s" -#: logsrvd/logsrvd_conf.c:452 +#: logsrvd/logsrvd_conf.c:457 #, c-format msgid "unable to parse iolog mode %s" msgstr "無法解析 iolog 模式 %s" -#: logsrvd/logsrvd_conf.c:469 logsrvd/logsrvd_conf.c:1238 +#: logsrvd/logsrvd_conf.c:474 logsrvd/logsrvd_conf.c:1243 #, c-format msgid "invalid value for %s: %s" msgstr "%s 的值無效:%s" -#: logsrvd/logsrvd_conf.c:522 +#: logsrvd/logsrvd_conf.c:527 msgid "TLS not supported" msgstr "不支援 TLS" -#: logsrvd/logsrvd_conf.c:544 +#: logsrvd/logsrvd_conf.c:549 #, c-format msgid "%s:%s" msgstr "%s:%s" -#: logsrvd/logsrvd_conf.c:617 logsrvd/logsrvd_conf.c:1027 +#: logsrvd/logsrvd_conf.c:622 logsrvd/logsrvd_conf.c:1032 #, c-format msgid "%s: not a fully qualified path" msgstr "%s:路徑不完全合法" -#: logsrvd/logsrvd_conf.c:945 logsrvd/logsrvd_conf.c:961 -#: logsrvd/logsrvd_conf.c:1671 +#: logsrvd/logsrvd_conf.c:951 logsrvd/logsrvd_conf.c:967 +#: logsrvd/logsrvd_conf.c:1676 #, c-format msgid "unknown syslog facility %s" msgstr "未知的 syslog 裝置 %s" -#: logsrvd/logsrvd_conf.c:977 logsrvd/logsrvd_conf.c:993 -#: logsrvd/logsrvd_conf.c:1009 logsrvd/logsrvd_conf.c:1675 -#: logsrvd/logsrvd_conf.c:1679 logsrvd/logsrvd_conf.c:1683 +#: logsrvd/logsrvd_conf.c:983 logsrvd/logsrvd_conf.c:999 +#: logsrvd/logsrvd_conf.c:1015 logsrvd/logsrvd_conf.c:1680 +#: logsrvd/logsrvd_conf.c:1684 logsrvd/logsrvd_conf.c:1688 #, c-format msgid "unknown syslog priority %s" msgstr "未知 syslog 優先級 %s" -#: logsrvd/logsrvd_conf.c:1192 +#: logsrvd/logsrvd_conf.c:1197 #, c-format msgid "%s:%d unmatched '[': %s" msgstr "%s:%d 不對稱的 '[': %s" -#: logsrvd/logsrvd_conf.c:1198 +#: logsrvd/logsrvd_conf.c:1203 #, c-format msgid "%s:%d garbage after ']': %s" msgstr "%s:%d ‘]’ 後有垃圾資料:%s" -#: logsrvd/logsrvd_conf.c:1210 +#: logsrvd/logsrvd_conf.c:1215 #, c-format msgid "%s:%d invalid config section: %s" msgstr "%s:%d 無效的設定檔區段:%s" -#: logsrvd/logsrvd_conf.c:1218 +#: logsrvd/logsrvd_conf.c:1223 #, c-format msgid "%s:%d invalid configuration line: %s" msgstr "%s:%d 無效的設定檔行:%s" -#: logsrvd/logsrvd_conf.c:1224 +#: logsrvd/logsrvd_conf.c:1229 #, c-format msgid "%s:%d expected section name: %s" msgstr "%s:%d 應有區段名稱:%s" -#: logsrvd/logsrvd_conf.c:1246 +#: logsrvd/logsrvd_conf.c:1251 #, c-format msgid "%s:%d [%s] illegal key: %s" msgstr "%s:%d [%s] 本設定鍵無效:%s" -#: logsrvd/logsrvd_conf.c:1276 plugins/sudoers/cvtsudoers.c:268 -#: plugins/sudoers/logging.c:857 +#: logsrvd/logsrvd_conf.c:1281 plugins/sudoers/cvtsudoers.c:268 +#: plugins/sudoers/logging.c:1033 #, c-format msgid "unable to open log file %s" msgstr "無法開啟記錄檔案 %s" -#: logsrvd/logsrvd_conf.c:1757 +#: logsrvd/logsrvd_conf.c:1763 msgid "unable to initialize server TLS context" msgstr "無法初始化伺服器 TLS 上下文" -#: logsrvd/logsrvd_conf.c:1777 +#: logsrvd/logsrvd_conf.c:1783 msgid "unable to initialize relay TLS context" msgstr "無法初始化轉送 TLS 上下文" -#: logsrvd/logsrvd_journal.c:136 logsrvd/logsrvd_journal.c:416 -#: logsrvd/logsrvd_journal.c:421 +#: logsrvd/logsrvd_journal.c:149 logsrvd/logsrvd_journal.c:424 +#: logsrvd/logsrvd_journal.c:429 msgid "unable to create journal file" msgstr "無法建立日誌檔案" -#: logsrvd/logsrvd_journal.c:140 logsrvd/logsrvd_queue.c:104 -#: plugins/sudoers/visudo.c:1007 +#: logsrvd/logsrvd_journal.c:153 logsrvd/logsrvd_queue.c:109 +#: plugins/sudoers/visudo.c:1028 #, c-format msgid "unable to lock %s" msgstr "無法鎖定 %s" -#: logsrvd/logsrvd_journal.c:143 +#: logsrvd/logsrvd_journal.c:156 msgid "unable to lock journal file" msgstr "無法鎖定日誌檔案" -#: logsrvd/logsrvd_journal.c:151 +#: logsrvd/logsrvd_journal.c:164 msgid "unable to open journal file" msgstr "無法開啟日誌檔案" -#: logsrvd/logsrvd_journal.c:172 logsrvd/logsrvd_journal.c:452 -#: logsrvd/logsrvd_journal.c:457 +#: logsrvd/logsrvd_journal.c:185 logsrvd/logsrvd_journal.c:460 +#: logsrvd/logsrvd_journal.c:465 msgid "unable to write journal file" msgstr "無法寫入日誌檔案" -#: logsrvd/logsrvd_journal.c:180 logsrvd/logsrvd_journal.c:187 +#: logsrvd/logsrvd_journal.c:193 logsrvd/logsrvd_journal.c:200 msgid "unable to rename journal file" msgstr "無法重新命名日誌檔案" -#: logsrvd/logsrvd_journal.c:234 logsrvd/logsrvd_journal.c:235 -#: logsrvd/logsrvd_journal.c:269 logsrvd/logsrvd_journal.c:270 +#: logsrvd/logsrvd_journal.c:247 logsrvd/logsrvd_journal.c:248 +#: logsrvd/logsrvd_journal.c:282 logsrvd/logsrvd_journal.c:283 msgid "unexpected EOF reading journal file" msgstr "讀取日誌檔案時遇到非預期的結束字元 (EOF)" -#: logsrvd/logsrvd_journal.c:238 logsrvd/logsrvd_journal.c:239 -#: logsrvd/logsrvd_journal.c:273 logsrvd/logsrvd_journal.c:274 +#: logsrvd/logsrvd_journal.c:251 logsrvd/logsrvd_journal.c:252 +#: logsrvd/logsrvd_journal.c:286 logsrvd/logsrvd_journal.c:287 msgid "error reading journal file" msgstr "讀取日誌檔案時發生錯誤" -#: logsrvd/logsrvd_journal.c:285 logsrvd/logsrvd_journal.c:376 +#: logsrvd/logsrvd_journal.c:298 logsrvd/logsrvd_journal.c:384 msgid "invalid journal file, unable to restart" msgstr "日誌檔案無效,無法重新開始" -#: logsrvd/logsrvd_journal.c:435 +#: logsrvd/logsrvd_journal.c:443 #, c-format msgid "unable to seek to [%lld, %ld] in journal file %s" msgstr "無法搜尋至 %3$s 檔案的 [%1$lld, %2$ld] 位置" -#: logsrvd/logsrvd_local.c:153 +#: logsrvd/logsrvd_local.c:166 +#, c-format +msgid "unexpected value_case %d in %s from %s" +msgstr "從 %3$s 收到的 %2$s 中,發現非預期的 value_case %1$d" + +#: logsrvd/logsrvd_local.c:194 msgid "error parsing AcceptMessage" msgstr "解析 AcceptMessage 時發生錯誤" -#: logsrvd/logsrvd_local.c:164 +#: logsrvd/logsrvd_local.c:205 msgid "error creating I/O log" msgstr "建立 I/O 日誌時發生錯誤" -#: logsrvd/logsrvd_local.c:187 +#: logsrvd/logsrvd_local.c:228 msgid "error logging accept event" msgstr "記錄接受事件時發生錯誤" -#: logsrvd/logsrvd_local.c:226 +#: logsrvd/logsrvd_local.c:267 msgid "error parsing RejectMessage" msgstr "解析 RejectMessage 時發生錯誤" -#: logsrvd/logsrvd_local.c:250 +#: logsrvd/logsrvd_local.c:291 msgid "error logging reject event" msgstr "記錄拒絕事件時發生錯誤" -#: logsrvd/logsrvd_local.c:386 logsrvd/logsrvd_local.c:394 +#: logsrvd/logsrvd_local.c:427 logsrvd/logsrvd_local.c:435 msgid "error logging exit event" msgstr "記錄離開 (exit) 事件時發生錯誤" -#: logsrvd/logsrvd_local.c:451 logsrvd/logsrvd_local.c:452 +#: logsrvd/logsrvd_local.c:492 logsrvd/logsrvd_local.c:493 msgid "log is already complete, cannot be restarted" msgstr "記錄已完成,無法重新開始" -#: logsrvd/logsrvd_local.c:482 +#: logsrvd/logsrvd_local.c:523 msgid "unable to restart log" msgstr "無法重新啟動記錄" -#: logsrvd/logsrvd_local.c:498 +#: logsrvd/logsrvd_local.c:539 msgid "error parsing AlertMessage" msgstr "解析 AlertMessage 時發生錯誤" -#: logsrvd/logsrvd_local.c:508 +#: logsrvd/logsrvd_local.c:549 msgid "error logging alert event" msgstr "記錄提醒事件時發生錯誤" -#: logsrvd/logsrvd_local.c:544 logsrvd/logsrvd_local.c:607 -#: logsrvd/logsrvd_local.c:642 +#: logsrvd/logsrvd_local.c:585 logsrvd/logsrvd_local.c:648 +#: logsrvd/logsrvd_local.c:683 #, c-format msgid "unable to format timing buffer, length %d" msgstr "無法格式化計時緩衝區,長度 %d" -#: logsrvd/logsrvd_local.c:558 logsrvd/logsrvd_local.c:566 -#: logsrvd/logsrvd_local.c:614 logsrvd/logsrvd_local.c:649 -#: plugins/sudoers/sudoreplay.c:351 +#: logsrvd/logsrvd_local.c:599 logsrvd/logsrvd_local.c:607 +#: logsrvd/logsrvd_local.c:655 logsrvd/logsrvd_local.c:690 +#: plugins/sudoers/sudoreplay.c:344 #, c-format msgid "%s/%s: %s" msgstr "%s/%s: %s" -#: logsrvd/logsrvd_local.c:577 +#: logsrvd/logsrvd_local.c:618 msgid "randomly dropping connection" msgstr "隨機丟棄連接" -#: logsrvd/logsrvd_local.c:589 +#: logsrvd/logsrvd_local.c:630 msgid "error writing IoBuffer" msgstr "寫入 IoBuffer 時發生錯誤" -#: logsrvd/logsrvd_local.c:624 +#: logsrvd/logsrvd_local.c:665 msgid "error writing ChangeWindowSize" msgstr "寫入 ChangeWindowSize 時發生錯誤" -#: logsrvd/logsrvd_local.c:659 +#: logsrvd/logsrvd_local.c:700 msgid "error writing CommandSuspend" msgstr "寫入 CommandSuspend 時發生錯誤" -#: logsrvd/logsrvd_relay.c:430 +#: logsrvd/logsrvd_relay.c:435 msgid "TLS handshake with relay host failed" msgstr "無法與轉送主機進行 TLS 交握" -#: logsrvd/logsrvd_relay.c:458 +#: logsrvd/logsrvd_relay.c:463 msgid "unable to connect to relay host" msgstr "無法連線至轉送主機" -#: logsrvd/logsrvd_relay.c:513 +#: logsrvd/logsrvd_relay.c:518 #, c-format msgid "%s: invalid ServerHello, missing server_id" msgstr "%s:無效的 ServerHello,缺少 server_id" -#: logsrvd/logsrvd_relay.c:515 logsrvd/sendlog.c:1121 -#: plugins/sudoers/log_client.c:1497 +#: logsrvd/logsrvd_relay.c:520 logsrvd/sendlog.c:1096 +#: plugins/sudoers/log_client.c:1468 msgid "invalid ServerHello" msgstr "無效的 ServerHello" -#: logsrvd/logsrvd_relay.c:674 +#: logsrvd/logsrvd_relay.c:679 msgid "unrecognized ServerMessage type" msgstr "未知 ServerMessage 類型" -#: logsrvd/logsrvd_relay.c:703 +#: logsrvd/logsrvd_relay.c:708 #, c-format msgid "timed out reading from relay %s (%s)" msgstr "從轉送點 %s 讀取等待逾時 (%s)" -#: logsrvd/logsrvd_relay.c:705 +#: logsrvd/logsrvd_relay.c:710 msgid "timeout reading from relay" msgstr "從轉送點讀取時等待逾時" -#: logsrvd/logsrvd_relay.c:757 +#: logsrvd/logsrvd_relay.c:762 msgid "relay host name does not match certificate" msgstr "轉送點主機名稱與憑證不同" -#: logsrvd/logsrvd_relay.c:763 logsrvd/logsrvd_relay.c:776 -#: logsrvd/logsrvd_relay.c:782 +#: logsrvd/logsrvd_relay.c:768 logsrvd/logsrvd_relay.c:782 +#: logsrvd/logsrvd_relay.c:789 msgid "error reading from relay" msgstr "從轉送點讀取時發生錯誤" -#: logsrvd/logsrvd_relay.c:803 +#: logsrvd/logsrvd_relay.c:810 msgid "unable to read from relay" msgstr "無法從轉送點讀取" -#: logsrvd/logsrvd_relay.c:818 logsrvd/logsrvd_relay.c:936 +#: logsrvd/logsrvd_relay.c:825 logsrvd/logsrvd_relay.c:943 msgid "relay server closed connection" msgstr "轉送伺服器已經關閉連線" -#: logsrvd/logsrvd_relay.c:836 +#: logsrvd/logsrvd_relay.c:843 msgid "server message too large" msgstr "伺服器訊息過長" -#: logsrvd/logsrvd_relay.c:900 +#: logsrvd/logsrvd_relay.c:907 #, c-format msgid "timed out writing to relay %s (%s)" msgstr "寫入轉送點 %s 等待逾時 (%s)" -#: logsrvd/logsrvd_relay.c:902 +#: logsrvd/logsrvd_relay.c:909 msgid "timeout writing to relay" msgstr "寫入至轉送點時等待逾時" -#: logsrvd/logsrvd_relay.c:955 logsrvd/logsrvd_relay.c:961 -#: logsrvd/logsrvd_relay.c:971 +#: logsrvd/logsrvd_relay.c:962 logsrvd/logsrvd_relay.c:969 +#: logsrvd/logsrvd_relay.c:981 msgid "error writing to relay" msgstr "寫入至轉送點時發生錯誤" -#: logsrvd/sendlog.c:114 +#: logsrvd/sendlog.c:119 msgid "send sudo I/O log to remote server" msgstr "傳送 sudo I/O 記錄到遠端伺服器" -#: logsrvd/sendlog.c:120 +#: logsrvd/sendlog.c:125 msgid "only send an accept event (no I/O)" msgstr "只傳送接受事件(無 I/O)" -#: logsrvd/sendlog.c:123 +#: logsrvd/sendlog.c:128 msgid "certificate bundle file to verify server's cert against" msgstr "用來驗證伺服器 cert against 的憑證組合檔案" -#: logsrvd/sendlog.c:125 +#: logsrvd/sendlog.c:130 msgid "certificate file for TLS handshake" msgstr "用在 TLS 交握的憑證檔案" -#: logsrvd/sendlog.c:128 +#: logsrvd/sendlog.c:133 msgid "host to send logs to" msgstr "記錄的傳送目的地主機" -#: logsrvd/sendlog.c:130 +#: logsrvd/sendlog.c:135 msgid "remote ID of I/O log to be resumed" msgstr "要恢復的 I/O 記錄的遠端 ID" -#: logsrvd/sendlog.c:133 +#: logsrvd/sendlog.c:138 msgid "private key file" msgstr "私鑰檔案" -#: logsrvd/sendlog.c:135 +#: logsrvd/sendlog.c:140 msgid "do not verify server certificate" msgstr "不要驗證伺服器的憑證" -#: logsrvd/sendlog.c:138 +#: logsrvd/sendlog.c:143 msgid "port to use when connecting to host" msgstr "連接主機時要使用的連接埠" -#: logsrvd/sendlog.c:140 +#: logsrvd/sendlog.c:145 msgid "restart previous I/O log transfer" msgstr "重新開始上一個 I/O 記錄傳輸" -#: logsrvd/sendlog.c:142 +#: logsrvd/sendlog.c:147 msgid "reject the command with the given reason" msgstr "以指定理由拒絕命令" -#: logsrvd/sendlog.c:144 +#: logsrvd/sendlog.c:149 msgid "stop transfer after reaching this time" msgstr "超過指定時間時停止傳輸" -#: logsrvd/sendlog.c:146 +#: logsrvd/sendlog.c:151 msgid "test audit server by sending selected I/O log n times in parallel" msgstr "透過平行傳送選取 I/O 記錄 n 次來測試稽核伺服器" -#: logsrvd/sendlog.c:171 plugins/sudoers/log_client.c:441 +#: logsrvd/sendlog.c:176 plugins/sudoers/log_client.c:453 #, c-format msgid "unable to look up %s:%s: %s" msgstr "無法查看 %s:%s: %s" -#: logsrvd/sendlog.c:209 +#: logsrvd/sendlog.c:214 msgid "unable to get server IP addr" msgstr "無法取得伺服器 IP 地址" -#: logsrvd/sendlog.c:295 plugins/sudoers/sudoreplay.c:871 +#: logsrvd/sendlog.c:300 plugins/sudoers/sudoreplay.c:868 #, c-format msgid "unable to read %s/%s: %s" msgstr "無法讀取 %s/%s: %s" -#: logsrvd/sendlog.c:1045 plugins/sudoers/iolog.c:945 -#: plugins/sudoers/iolog.c:1020 +#: logsrvd/sendlog.c:1020 plugins/sudoers/iolog.c:949 +#: plugins/sudoers/iolog.c:1024 #, c-format msgid "unexpected I/O event %d" msgstr "不應有的 I/O 事件 %d" -#: logsrvd/sendlog.c:1098 logsrvd/sendlog.c:1115 logsrvd/sendlog.c:1149 -#: plugins/sudoers/log_client.c:1146 plugins/sudoers/log_client.c:1423 -#: plugins/sudoers/log_client.c:1491 plugins/sudoers/log_client.c:1530 +#: logsrvd/sendlog.c:1073 logsrvd/sendlog.c:1090 logsrvd/sendlog.c:1124 +#: plugins/sudoers/log_client.c:1118 plugins/sudoers/log_client.c:1394 +#: plugins/sudoers/log_client.c:1462 plugins/sudoers/log_client.c:1501 #, c-format msgid "%s: unexpected state %d" msgstr "%s:不應有的狀態 %d" -#: logsrvd/sendlog.c:1185 plugins/sudoers/log_client.c:1576 +#: logsrvd/sendlog.c:1160 plugins/sudoers/log_client.c:1550 #, c-format msgid "error message received from server: %s" msgstr "自伺服器接收到錯誤訊息:%s" -#: logsrvd/sendlog.c:1198 plugins/sudoers/log_client.c:1589 +#: logsrvd/sendlog.c:1173 plugins/sudoers/log_client.c:1563 #, c-format msgid "abort message received from server: %s" msgstr "自伺服器接收到中止訊息:%s" -#: logsrvd/sendlog.c:1257 plugins/sudoers/log_client.c:1639 +#: logsrvd/sendlog.c:1232 plugins/sudoers/log_client.c:1613 #, c-format msgid "%s: unexpected type_case value %d" msgstr "%s:不應有的 type_case 值 %d" -#: logsrvd/sendlog.c:1286 +#: logsrvd/sendlog.c:1261 msgid "timeout reading from server" msgstr "從伺服器讀取逾時" -#: logsrvd/sendlog.c:1368 +#: logsrvd/sendlog.c:1310 plugins/sudoers/log_client.c:1729 +msgid "host name does not match certificate" +msgstr "主機名稱和憑證不符" + +#: logsrvd/sendlog.c:1343 msgid "premature EOF" msgstr "檔案過早結束" -#: logsrvd/sendlog.c:1381 plugins/sudoers/log_client.c:1800 +#: logsrvd/sendlog.c:1356 plugins/sudoers/log_client.c:1776 #, c-format msgid "server message too large: %u" msgstr "伺服器訊息過長:%u" -#: logsrvd/sendlog.c:1437 +#: logsrvd/sendlog.c:1412 msgid "timeout writing to server" msgstr "寫入至伺服器逾時" -#: logsrvd/sendlog.c:1802 +#: logsrvd/sendlog.c:1779 msgid "both restart point and iolog ID must be specified" msgstr "必須指定重新啟動點 (restart point) 和 iolog ID" -#: logsrvd/sendlog.c:1806 +#: logsrvd/sendlog.c:1783 msgid "a restart point may not be set when no I/O is sent" msgstr "未傳送 I/O 時,不應設定重新開始點" -#: logsrvd/sendlog.c:1882 +#: logsrvd/sendlog.c:1859 #, c-format msgid "exited prematurely with state %d" msgstr "過早結束,狀態碼 %d" -#: logsrvd/sendlog.c:1883 +#: logsrvd/sendlog.c:1860 #, c-format msgid "elapsed time sent to server [%lld, %ld]" msgstr "已傳送耗用時間至伺服器 [%lld, %ld]" -#: logsrvd/sendlog.c:1885 +#: logsrvd/sendlog.c:1862 #, c-format msgid "commit point received from server [%lld, %ld]" msgstr "自伺服器接收到提交點 (commit point) [%lld, %ld]" -#: logsrvd/tls_client.c:106 plugins/sudoers/log_client.c:304 +#: logsrvd/tls_client.c:111 plugins/sudoers/log_client.c:315 msgid "TLS handshake timeout occurred" msgstr "遇到 TLS 交握逾時" -#: logsrvd/tls_client.c:126 logsrvd/tls_client.c:142 -#: plugins/sudoers/log_client.c:326 plugins/sudoers/log_client.c:342 +#: logsrvd/tls_client.c:131 logsrvd/tls_client.c:147 +#: plugins/sudoers/log_client.c:337 plugins/sudoers/log_client.c:353 msgid "unable to set event" msgstr "無法設定事件" -#: logsrvd/tls_client.c:152 logsrvd/tls_client.c:156 +#: logsrvd/tls_client.c:157 logsrvd/tls_client.c:161 #, c-format msgid "TLS connection failed: %s" msgstr "TLS 連線失敗:%s" -#: logsrvd/tls_client.c:190 +#: logsrvd/tls_client.c:196 #, c-format msgid "unable to allocate ssl object: %s" msgstr "無法配置 SSL 物件:%s" -#: logsrvd/tls_client.c:203 +#: logsrvd/tls_client.c:210 #, c-format msgid "Unable to attach socket to the ssl object: %s" msgstr "無法將 socket 通訊端連結至 SSL 物件:%s" -#: logsrvd/tls_client.c:231 +#: logsrvd/tls_client.c:238 msgid "unable to initialize TLS context" msgstr "無法初始化 TLS 上下文" -#: logsrvd/tls_init.c:127 logsrvd/tls_init.c:135 +#: logsrvd/tls_init.c:138 logsrvd/tls_init.c:146 #, c-format msgid "unable to set TLS 1.2 ciphersuite to %s: %s" msgstr "無法將 TLS 1.2 加密套件設為 %s:%s" -#: logsrvd/tls_init.c:155 logsrvd/tls_init.c:163 +#: logsrvd/tls_init.c:166 logsrvd/tls_init.c:174 #, c-format msgid "unable to set TLS 1.3 ciphersuite to %s: %s" msgstr "無法將 TLS 1.3 加密套件設為 %s:%s" -#: logsrvd/tls_init.c:195 logsrvd/tls_init.c:216 +#: logsrvd/tls_init.c:206 logsrvd/tls_init.c:227 #, c-format msgid "unable to set diffie-hellman parameters: %s" msgstr "無法設定迪菲-赫爾曼參數:%s" -#: logsrvd/tls_init.c:272 +#: logsrvd/tls_init.c:283 #, c-format msgid "unable to create TLS context: %s" msgstr "無法建立 TLS 情境:%s" -#: logsrvd/tls_init.c:278 +#: logsrvd/tls_init.c:290 #, c-format msgid "unable to set minimum protocol version to TLS 1.2: %s" msgstr "無法將最低通訊協定版本設為 TLS 1.2:%s" -#: plugins/sudoers/audit.c:267 plugins/sudoers/audit.c:419 -#: plugins/sudoers/log_client.c:979 plugins/sudoers/log_client.c:1028 -#: plugins/sudoers/log_client.c:1077 plugins/sudoers/log_client.c:1203 -#: plugins/sudoers/logging.c:552 plugins/sudoers/logging.c:649 -#: plugins/sudoers/logging.c:811 plugins/sudoers/policy.c:123 +#: plugins/sudoers/audit.c:269 plugins/sudoers/audit.c:429 +#: plugins/sudoers/log_client.c:951 plugins/sudoers/log_client.c:1000 +#: plugins/sudoers/log_client.c:1049 plugins/sudoers/log_client.c:1174 +#: plugins/sudoers/logging.c:595 plugins/sudoers/logging.c:693 +#: plugins/sudoers/logging.c:796 plugins/sudoers/logging.c:987 +#: plugins/sudoers/policy.c:125 msgid "unable to get time of day" msgstr "無法取得一日時間" @@ -1411,47 +1462,47 @@ msgstr "" "認證伺服器發生錯誤:\n" "%s" -#: plugins/sudoers/auth/kerb5.c:110 +#: plugins/sudoers/auth/kerb5.c:115 #, c-format msgid "%s: unable to convert principal to string ('%s'): %s" msgstr "%s:無法將主體轉換成字串 ('%s'):%s" -#: plugins/sudoers/auth/kerb5.c:162 +#: plugins/sudoers/auth/kerb5.c:164 #, c-format msgid "%s: unable to parse '%s': %s" msgstr "%s:無法解析「%s」:%s" -#: plugins/sudoers/auth/kerb5.c:171 +#: plugins/sudoers/auth/kerb5.c:173 #, c-format msgid "%s: unable to resolve credential cache: %s" msgstr "%s:無法解析憑證快取:%s" -#: plugins/sudoers/auth/kerb5.c:220 +#: plugins/sudoers/auth/kerb5.c:222 #, c-format msgid "%s: unable to allocate options: %s" msgstr "%s:無法分配選項:%s" -#: plugins/sudoers/auth/kerb5.c:235 +#: plugins/sudoers/auth/kerb5.c:237 #, c-format msgid "%s: unable to get credentials: %s" msgstr "%s:無法取得憑證:%s" -#: plugins/sudoers/auth/kerb5.c:248 +#: plugins/sudoers/auth/kerb5.c:250 #, c-format msgid "%s: unable to initialize credential cache: %s" msgstr "%s:無法初始化憑證快取:%s" -#: plugins/sudoers/auth/kerb5.c:251 +#: plugins/sudoers/auth/kerb5.c:253 #, c-format msgid "%s: unable to store credential in cache: %s" msgstr "%s:無法將憑證儲存於快取:%s" -#: plugins/sudoers/auth/kerb5.c:315 +#: plugins/sudoers/auth/kerb5.c:317 #, c-format msgid "%s: unable to get host principal: %s" msgstr "%s:無法取得主機主體:%s" -#: plugins/sudoers/auth/kerb5.c:329 +#: plugins/sudoers/auth/kerb5.c:331 #, c-format msgid "%s: Cannot verify TGT! Possible attack!: %s" msgstr "%s:無法驗證 TGT!可能發生攻擊事件!:%s" @@ -1492,7 +1543,7 @@ msgstr "帳號已過期或是 PAM 組態設定缺少 sudo 的 \"account\" 部份 msgid "PAM account management error: %s" msgstr "PAM 帳號管理發生錯誤:%s" -#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:255 +#: plugins/sudoers/auth/rfc1938.c:99 plugins/sudoers/visudo.c:271 #, c-format msgid "you do not exist in the %s database" msgstr "您不在 %s 資料庫中" @@ -1509,11 +1560,11 @@ msgstr "無法聯繫 SecurID 伺服器" msgid "User ID locked for SecurID Authentication" msgstr "用於 SecurID 認證的使用者 ID 已被鎖定" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:170 +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:171 msgid "invalid username length for SecurID" msgstr "用於 SecurID 的使用者名稱長度無效" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:175 +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:176 msgid "invalid Authentication Handle for SecurID" msgstr "用於 SecurID 的認證處理無效" @@ -1521,11 +1572,11 @@ msgstr "用於 SecurID 的認證處理無效" msgid "SecurID communication failed" msgstr "SecurID 通訊失敗" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:218 +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:219 msgid "unknown SecurID error" msgstr "未知 SecurID 錯誤" -#: plugins/sudoers/auth/securid5.c:165 +#: plugins/sudoers/auth/securid5.c:166 msgid "invalid passcode length for SecurID" msgstr "用於 SecurID 的密碼長度無效" @@ -1533,27 +1584,27 @@ msgstr "用於 SecurID 的密碼長度無效" msgid "unable to initialize SIA session" msgstr "無法初始化 SIA 工作階段" -#: plugins/sudoers/auth/sudo_auth.c:134 +#: plugins/sudoers/auth/sudo_auth.c:135 msgid "invalid authentication methods" msgstr "無效的認證方式" -#: plugins/sudoers/auth/sudo_auth.c:136 +#: plugins/sudoers/auth/sudo_auth.c:137 msgid "Invalid authentication methods compiled into sudo! You may not mix standalone and non-standalone authentication." msgstr "sudo 被編譯進無效的認證方式!您不能混合獨立及非獨立認證方式。" -#: plugins/sudoers/auth/sudo_auth.c:257 plugins/sudoers/auth/sudo_auth.c:309 +#: plugins/sudoers/auth/sudo_auth.c:258 plugins/sudoers/auth/sudo_auth.c:310 msgid "no authentication methods" msgstr "沒有認證方式" -#: plugins/sudoers/auth/sudo_auth.c:259 +#: plugins/sudoers/auth/sudo_auth.c:260 msgid "There are no authentication methods compiled into sudo! If you want to turn off authentication, use the --disable-authentication configure option." msgstr "沒有編譯進 sudo 的認證方式!若要關閉認證功能,請使用 --disable-authentication 設定選項。" -#: plugins/sudoers/auth/sudo_auth.c:311 +#: plugins/sudoers/auth/sudo_auth.c:312 msgid "Unable to initialize authentication methods." msgstr "無法初始化認證方式。" -#: plugins/sudoers/auth/sudo_auth.c:482 +#: plugins/sudoers/auth/sudo_auth.c:486 msgid "Authentication methods:" msgstr "認證方式:" @@ -1565,17 +1616,17 @@ msgstr "無法確定稽核條件" msgid "unable to commit audit record" msgstr "無法提交稽核記錄" -#: plugins/sudoers/check.c:263 +#: plugins/sudoers/check.c:285 #, c-format msgid "error reading lecture file %s" msgstr "讀取使用指引檔案 %s 時發生錯誤" -#: plugins/sudoers/check.c:269 +#: plugins/sudoers/check.c:288 #, c-format msgid "ignoring lecture file %s: not a regular file" msgstr "忽略使用指引檔案 %s:不是一般檔案" -#: plugins/sudoers/check.c:282 +#: plugins/sudoers/check.c:301 msgid "" "\n" "We trust you have received the usual lecture from the local System\n" @@ -1595,32 +1646,35 @@ msgstr "" " #3) 權力越大則責任越大。\n" "\n" -#: plugins/sudoers/check.c:330 plugins/sudoers/check.c:340 -#: plugins/sudoers/sudoers.c:885 plugins/sudoers/sudoers.c:906 -#: plugins/sudoers/tsdump.c:119 +#: plugins/sudoers/check.c:309 +msgid "" +"For security reasons, the password you type will not be visible.\n" +"\n" +msgstr "" +"考量到安全性因素,不會顯示您輸入的密碼。\n" +"\n" + +#: plugins/sudoers/check.c:353 plugins/sudoers/check.c:363 +#: plugins/sudoers/parse.c:82 plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:966 plugins/sudoers/tsdump.c:119 #, c-format msgid "unknown uid %u" msgstr "未知 uid %u" -#: plugins/sudoers/check_aliases.c:92 -#, c-format -msgid "Error: %s:%d:%d: cycle in %s \"%s\"" -msgstr "錯誤:%s:%d:%d: %s「%s」中有循環" - -#: plugins/sudoers/check_aliases.c:93 +#: plugins/sudoers/check_aliases.c:99 plugins/sudoers/defaults.c:1279 #, c-format -msgid "Warning: %s:%d:%d: cycle in %s \"%s\"" -msgstr "警告:%s:%d:%d: %s「%s」中有循環" +msgid "%s: %s\n" +msgstr "%s:%s\n" -#: plugins/sudoers/check_aliases.c:97 +#: plugins/sudoers/check_aliases.c:133 #, c-format -msgid "Error: %s:%d:%d: %s \"%s\" referenced but not defined" -msgstr "錯誤:%s:%d:%d: 已引用但未定義 %s「%s」" +msgid "cycle in %s \"%s\"" +msgstr "%s「%s」中有循環" -#: plugins/sudoers/check_aliases.c:98 +#: plugins/sudoers/check_aliases.c:136 #, c-format -msgid "Warning: %s:%d:%d: %s \"%s\" referenced but not defined" -msgstr "警告:%s:%d:%d: 已引用但未定義 %s「%s」" +msgid "%s \"%s\" referenced but not defined" +msgstr "引用了尚未定義的 %s「%s」" #: plugins/sudoers/cvtsudoers.c:209 #, c-format @@ -1637,7 +1691,7 @@ msgstr "順序開頭:%s:%s" msgid "order padding: %s: %s" msgstr "順序間距:%s:%s" -#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:179 +#: plugins/sudoers/cvtsudoers.c:248 plugins/sudoers/visudo.c:184 #, c-format msgid "%s grammar version %d\n" msgstr "%s 語法版本 %d\n" @@ -1657,14 +1711,13 @@ msgstr "不支援的輸出格式 %s" msgid "%s: input and output files must be different" msgstr "%s:輸入及輸出檔案必須不一致" -#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:159 -#: plugins/sudoers/sudoers.c:205 plugins/sudoers/testsudoers.c:254 -#: plugins/sudoers/visudo.c:261 plugins/sudoers/visudo.c:620 -#: plugins/sudoers/visudo.c:953 +#: plugins/sudoers/cvtsudoers.c:399 plugins/sudoers/sudoers.c:166 +#: plugins/sudoers/sudoers.c:222 plugins/sudoers/testsudoers.c:254 +#: plugins/sudoers/visudo.c:280 plugins/sudoers/visudo.c:654 msgid "unable to initialize sudoers default values" msgstr "無法初始化 sudoers 預設值" -#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:433 +#: plugins/sudoers/cvtsudoers.c:525 plugins/sudoers/ldap_conf.c:434 #, c-format msgid "%s: %s: %s: %s" msgstr "%s: %s: %s: %s" @@ -1689,28 +1742,18 @@ msgstr "隱藏類型無效:%s" msgid "invalid filter: %s" msgstr "篩選器無效:%s" -#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:958 +#: plugins/sudoers/cvtsudoers.c:754 plugins/sudoers/visudo.c:982 #, c-format msgid "failed to parse %s file, unknown error" msgstr "無法解析 %s 檔案,原因:未知錯誤" -#: plugins/sudoers/cvtsudoers.c:762 -#, c-format -msgid "parse error in %s near line %d\n" -msgstr "因接近行 %2$d 的 %1$s 字串而導致解析錯誤\n" - -#: plugins/sudoers/cvtsudoers.c:765 -#, c-format -msgid "parse error in %s\n" -msgstr "因 %s 導致解析錯誤\n" - -#: plugins/sudoers/cvtsudoers.c:1489 plugins/sudoers/sudoreplay.c:1145 -#: plugins/sudoers/timestamp.c:317 plugins/sudoers/timestamp.c:320 +#: plugins/sudoers/cvtsudoers.c:1478 plugins/sudoers/sudoreplay.c:1142 +#: plugins/sudoers/timestamp.c:343 plugins/sudoers/timestamp.c:346 #, c-format msgid "unable to write to %s" msgstr "無法寫入 %s" -#: plugins/sudoers/cvtsudoers.c:1512 +#: plugins/sudoers/cvtsudoers.c:1506 #, c-format msgid "" "%s - convert between sudoers file formats\n" @@ -1719,7 +1762,7 @@ msgstr "" "%s - 轉換 sudoers 檔案之間的格式\n" "\n" -#: plugins/sudoers/cvtsudoers.c:1514 +#: plugins/sudoers/cvtsudoers.c:1508 msgid "" "\n" "Options:\n" @@ -1759,32 +1802,51 @@ msgstr "" " -s, --suppress=部份 隱藏某些部分的輸出\n" " -V, --version 顯示版本訊息後退出" +#: plugins/sudoers/cvtsudoers_csv.c:192 plugins/sudoers/cvtsudoers_csv.c:199 +#: plugins/sudoers/cvtsudoers_ldif.c:244 plugins/sudoers/cvtsudoers_ldif.c:251 +#: plugins/sudoers/cvtsudoers_ldif.c:592 plugins/sudoers/env.c:340 +#: plugins/sudoers/env.c:347 plugins/sudoers/env.c:458 +#: plugins/sudoers/ldap.c:528 plugins/sudoers/ldap.c:761 +#: plugins/sudoers/ldap.c:1134 plugins/sudoers/ldap_conf.c:222 +#: plugins/sudoers/ldap_conf.c:313 plugins/sudoers/ldap_util.c:486 +#: plugins/sudoers/linux_audit.c:92 plugins/sudoers/logging.c:461 +#: plugins/sudoers/logging.c:817 plugins/sudoers/logging.c:827 +#: plugins/sudoers/policy.c:807 plugins/sudoers/policy.c:818 +#: plugins/sudoers/prompt.c:168 plugins/sudoers/serialize_list.c:62 +#: plugins/sudoers/serialize_list.c:71 plugins/sudoers/strvec_join.c:62 +#: plugins/sudoers/sudoreplay.c:1339 plugins/sudoers/sudoreplay.c:1345 +#: plugins/sudoers/sudoreplay.c:1351 plugins/sudoers/testsudoers.c:245 +#: plugins/sudoers/toke_util.c:213 toke.l:995 toke.l:1197 +#, c-format +msgid "internal error, %s overflow" +msgstr "內部錯誤,%s 溢出" + #: plugins/sudoers/cvtsudoers_csv.c:452 plugins/sudoers/cvtsudoers_csv.c:466 -#: plugins/sudoers/cvtsudoers_json.c:654 plugins/sudoers/cvtsudoers_json.c:669 +#: plugins/sudoers/cvtsudoers_json.c:657 plugins/sudoers/cvtsudoers_json.c:672 #: plugins/sudoers/cvtsudoers_ldif.c:347 plugins/sudoers/cvtsudoers_ldif.c:360 -#: plugins/sudoers/ldap.c:515 +#: plugins/sudoers/ldap.c:512 msgid "unable to get GMT time" msgstr "無法取得 GMT 時間" #: plugins/sudoers/cvtsudoers_csv.c:457 plugins/sudoers/cvtsudoers_csv.c:471 -#: plugins/sudoers/cvtsudoers_json.c:659 plugins/sudoers/cvtsudoers_json.c:674 +#: plugins/sudoers/cvtsudoers_json.c:662 plugins/sudoers/cvtsudoers_json.c:677 #: plugins/sudoers/cvtsudoers_ldif.c:352 plugins/sudoers/cvtsudoers_ldif.c:365 -#: plugins/sudoers/ldap.c:523 +#: plugins/sudoers/ldap.c:520 msgid "unable to format timestamp" msgstr "無法格式化時間戳" #: plugins/sudoers/cvtsudoers_json.c:480 plugins/sudoers/cvtsudoers_json.c:515 -#: plugins/sudoers/cvtsudoers_json.c:725 plugins/sudoers/defaults.c:190 +#: plugins/sudoers/cvtsudoers_json.c:728 #, c-format msgid "%s:%d:%d: unknown defaults entry \"%s\"" msgstr "%s:%d:%d: 未知的預設條目「%s」" -#: plugins/sudoers/cvtsudoers_ldif.c:649 +#: plugins/sudoers/cvtsudoers_ldif.c:661 #, c-format msgid "too many sudoers entries, maximum %u" msgstr "過多 sudoers 項,最大值為 %u" -#: plugins/sudoers/cvtsudoers_ldif.c:692 +#: plugins/sudoers/cvtsudoers_ldif.c:704 msgid "the SUDOERS_BASE environment variable is not set and the -b option was not specified." msgstr "未設定 SUDOERS_BASE 環境變數,且亦未指定 -b 選項。" @@ -1829,804 +1891,798 @@ msgstr "%s:%d:%d: 無法讓 Defaults「%s」限定於主機" msgid "%s:%d:%d: removing Defaults \"%s\" overridden by subsequent entries" msgstr "%s:%d:%d: 移除被後續項目覆蓋的 Defaults「%s」" -#: plugins/sudoers/cvtsudoers_merge.c:1080 +#: plugins/sudoers/cvtsudoers_merge.c:1088 #, c-format msgid "%s:%d:%d: merging userspec into %s:%d:%d" msgstr "%s:%d:%d: 將使用者規格 (userspec) 合併至 %s:%d:%d" -#: plugins/sudoers/cvtsudoers_merge.c:1174 +#: plugins/sudoers/cvtsudoers_merge.c:1182 #, c-format msgid "%s:%d:%d: removing userspec overridden by subsequent entries" msgstr "%s:%d:%d: 移除被後續項目覆蓋的 userspec" -#: plugins/sudoers/def_data.c:50 +#: plugins/sudoers/def_data.c:56 #, c-format msgid "Syslog facility if syslog is being used for logging: %s" msgstr "若使用了 syslog 記錄,要使用的 syslog 裝置:%s" -#: plugins/sudoers/def_data.c:54 +#: plugins/sudoers/def_data.c:60 #, c-format msgid "Syslog priority to use when user authenticates successfully: %s" msgstr "使用者認證成功時要使用的 syslog 記錄優先級:%s" -#: plugins/sudoers/def_data.c:58 +#: plugins/sudoers/def_data.c:64 #, c-format msgid "Syslog priority to use when user authenticates unsuccessfully: %s" msgstr "使用者認證不成功時使用的 syslog 記錄優先級:%s" -#: plugins/sudoers/def_data.c:62 +#: plugins/sudoers/def_data.c:68 msgid "Put OTP prompt on its own line" msgstr "將 OPT 提示放在獨自的行中" -#: plugins/sudoers/def_data.c:66 +#: plugins/sudoers/def_data.c:72 msgid "Ignore '.' in $PATH" msgstr "忽略 $PATH 中的「.」" -#: plugins/sudoers/def_data.c:70 +#: plugins/sudoers/def_data.c:76 msgid "Always send mail when sudo is run" msgstr "永遠在 sudo 執行時傳送信件" -#: plugins/sudoers/def_data.c:74 +#: plugins/sudoers/def_data.c:80 msgid "Send mail if user authentication fails" msgstr "使用者認證失敗後傳送信件" -#: plugins/sudoers/def_data.c:78 +#: plugins/sudoers/def_data.c:84 msgid "Send mail if the user is not in sudoers" msgstr "當使用者不在 sudoers 中時傳送信件" -#: plugins/sudoers/def_data.c:82 +#: plugins/sudoers/def_data.c:88 msgid "Send mail if the user is not in sudoers for this host" msgstr "當使用者不在此主機的 sudoers 中時傳送信件" -#: plugins/sudoers/def_data.c:86 +#: plugins/sudoers/def_data.c:92 msgid "Send mail if the user is not allowed to run a command" msgstr "當使用者不允許執行某指令時傳送信件" -#: plugins/sudoers/def_data.c:90 +#: plugins/sudoers/def_data.c:96 msgid "Send mail if the user tries to run a command" msgstr "當使用者嘗試執行某指令時傳送信件" -#: plugins/sudoers/def_data.c:94 +#: plugins/sudoers/def_data.c:100 msgid "Use a separate timestamp for each user/tty combo" msgstr "對每個使用者和終端組合使用單獨的時間戳" -#: plugins/sudoers/def_data.c:98 +#: plugins/sudoers/def_data.c:104 msgid "Lecture user the first time they run sudo" msgstr "在使用者第一次執行 sudo 時,通知使用者相關使用指引" -#: plugins/sudoers/def_data.c:102 +#: plugins/sudoers/def_data.c:108 #, c-format msgid "File containing the sudo lecture: %s" msgstr "包含 sudo 使用指引的檔案:%s" -#: plugins/sudoers/def_data.c:106 +#: plugins/sudoers/def_data.c:112 msgid "Require users to authenticate by default" msgstr "預設要求使用者認證" -#: plugins/sudoers/def_data.c:110 +#: plugins/sudoers/def_data.c:116 msgid "Root may run sudo" msgstr "Root 可以執行 sudo" -#: plugins/sudoers/def_data.c:114 +#: plugins/sudoers/def_data.c:120 msgid "Log the hostname in the (non-syslog) log file" msgstr "在(非 syslog)記錄檔中記錄主機名稱" -#: plugins/sudoers/def_data.c:118 +#: plugins/sudoers/def_data.c:124 msgid "Log the year in the (non-syslog) log file" msgstr "在(非 syslog)記錄檔中記錄年份" -#: plugins/sudoers/def_data.c:122 +#: plugins/sudoers/def_data.c:128 msgid "If sudo is invoked with no arguments, start a shell" msgstr "若 sudo 不傳入參數呼叫,就開啟 shell" -#: plugins/sudoers/def_data.c:126 +#: plugins/sudoers/def_data.c:132 msgid "Set $HOME to the target user when starting a shell with -s" msgstr "若以 -s 參數開啟 shell,就設定目標使用者的 $HOME" -#: plugins/sudoers/def_data.c:130 +#: plugins/sudoers/def_data.c:136 msgid "Always set $HOME to the target user's home directory" msgstr "永遠將 $HOME 設定為目標使用者的家目錄" -#: plugins/sudoers/def_data.c:134 +#: plugins/sudoers/def_data.c:140 msgid "Allow some information gathering to give useful error messages" msgstr "允許收集一些訊息以提供有用的錯誤訊息" -#: plugins/sudoers/def_data.c:138 +#: plugins/sudoers/def_data.c:144 msgid "Require fully-qualified hostnames in the sudoers file" msgstr "要求在 sudoers 檔案中包含完整的主機名稱" -#: plugins/sudoers/def_data.c:142 +#: plugins/sudoers/def_data.c:148 msgid "Insult the user when they enter an incorrect password" msgstr "在使用者輸入錯誤密碼時嘲諷他們" -#: plugins/sudoers/def_data.c:146 +#: plugins/sudoers/def_data.c:152 msgid "Only allow the user to run sudo if they have a tty" msgstr "只允許有終端的使用者執行 sudo" -#: plugins/sudoers/def_data.c:150 +#: plugins/sudoers/def_data.c:156 msgid "Visudo will honor the EDITOR environment variable" msgstr "Visudo 將優先考慮 EDITOR 環境變數" -#: plugins/sudoers/def_data.c:154 +#: plugins/sudoers/def_data.c:160 msgid "Prompt for root's password, not the users's" msgstr "詢問 root 使用者的密碼而非使用者的密碼" -#: plugins/sudoers/def_data.c:158 +#: plugins/sudoers/def_data.c:164 msgid "Prompt for the runas_default user's password, not the users's" msgstr "詢問 runas_default 使用者的密碼,而非使用者密碼" -#: plugins/sudoers/def_data.c:162 +#: plugins/sudoers/def_data.c:168 msgid "Prompt for the target user's password, not the users's" msgstr "詢問目標使用者的密碼,而非使用者密碼" -#: plugins/sudoers/def_data.c:166 +#: plugins/sudoers/def_data.c:172 msgid "Apply defaults in the target user's login class if there is one" msgstr "若有則套用目標使用者登入類別中的預設設定" -#: plugins/sudoers/def_data.c:170 +#: plugins/sudoers/def_data.c:176 msgid "Set the LOGNAME and USER environment variables" msgstr "設定 LOGNAME 和 USER 環境變數" -#: plugins/sudoers/def_data.c:174 +#: plugins/sudoers/def_data.c:180 msgid "Only set the effective uid to the target user, not the real uid" msgstr "只將有效使用者 ID 設為目標使用者的 ID,而非實際使用者的 ID" -#: plugins/sudoers/def_data.c:178 +#: plugins/sudoers/def_data.c:184 msgid "Don't initialize the group vector to that of the target user" msgstr "不將群組集合初始化成目標使用者的群組集合" -#: plugins/sudoers/def_data.c:182 +#: plugins/sudoers/def_data.c:188 #, c-format msgid "Length at which to wrap log file lines (0 for no wrap): %u" msgstr "記錄檔案要換行的長度 (0 則不換行):%u" -#: plugins/sudoers/def_data.c:186 +#: plugins/sudoers/def_data.c:192 #, c-format msgid "Authentication timestamp timeout: %.1f minutes" msgstr "認證時間戳逾時:%.1f 分鐘" -#: plugins/sudoers/def_data.c:190 +#: plugins/sudoers/def_data.c:196 #, c-format msgid "Password prompt timeout: %.1f minutes" msgstr "密碼提示逾時:%.1f 分鐘" -#: plugins/sudoers/def_data.c:194 +#: plugins/sudoers/def_data.c:200 #, c-format msgid "Number of tries to enter a password: %u" msgstr "密碼輸入嘗試次數:%u" -#: plugins/sudoers/def_data.c:198 +#: plugins/sudoers/def_data.c:204 #, c-format msgid "Umask to use or 0777 to use user's: 0%o" msgstr "要使用的 umask,或設定 0777 以使用使用者的 umask:0%o" -#: plugins/sudoers/def_data.c:202 +#: plugins/sudoers/def_data.c:208 #, c-format msgid "Path to log file: %s" msgstr "記錄檔案路徑:%s" -#: plugins/sudoers/def_data.c:206 +#: plugins/sudoers/def_data.c:212 #, c-format msgid "Path to mail program: %s" msgstr "郵件程式路徑:%s" -#: plugins/sudoers/def_data.c:210 +#: plugins/sudoers/def_data.c:216 #, c-format msgid "Flags for mail program: %s" msgstr "郵件程式旗標:%s" -#: plugins/sudoers/def_data.c:214 +#: plugins/sudoers/def_data.c:220 #, c-format msgid "Address to send mail to: %s" msgstr "傳送郵件的位址:%s" -#: plugins/sudoers/def_data.c:218 +#: plugins/sudoers/def_data.c:224 #, c-format msgid "Address to send mail from: %s" msgstr "接收郵件的位址:%s" -#: plugins/sudoers/def_data.c:222 +#: plugins/sudoers/def_data.c:228 #, c-format msgid "Subject line for mail messages: %s" msgstr "郵件訊息的主旨:%s" -#: plugins/sudoers/def_data.c:226 +#: plugins/sudoers/def_data.c:232 #, c-format msgid "Incorrect password message: %s" msgstr "密碼不正確的訊息:%s" -#: plugins/sudoers/def_data.c:230 +#: plugins/sudoers/def_data.c:236 #, c-format msgid "Path to lecture status dir: %s" msgstr "指引狀態資料夾的路徑:%s" -#: plugins/sudoers/def_data.c:234 +#: plugins/sudoers/def_data.c:240 #, c-format msgid "Path to authentication timestamp dir: %s" msgstr "認證時間戳資料夾的路徑:%s" -#: plugins/sudoers/def_data.c:238 +#: plugins/sudoers/def_data.c:244 #, c-format msgid "Owner of the authentication timestamp dir: %s" msgstr "認證時間戳的所有者:%s" -#: plugins/sudoers/def_data.c:242 +#: plugins/sudoers/def_data.c:248 #, c-format msgid "Users in this group are exempt from password and PATH requirements: %s" msgstr "此群組內的使用者不需要輸入密碼和 PATH:%s" -#: plugins/sudoers/def_data.c:246 +#: plugins/sudoers/def_data.c:252 #, c-format msgid "Default password prompt: %s" msgstr "預設密碼提示:%s" -#: plugins/sudoers/def_data.c:250 +#: plugins/sudoers/def_data.c:256 msgid "If set, passprompt will override system prompt in all cases." msgstr "如果設定,密碼提示將覆蓋所有情況下的系統提示。" -#: plugins/sudoers/def_data.c:254 +#: plugins/sudoers/def_data.c:260 #, c-format msgid "Default user to run commands as: %s" msgstr "要執行指令的預設使用者:%s" -#: plugins/sudoers/def_data.c:258 +#: plugins/sudoers/def_data.c:264 #, c-format msgid "Value to override user's $PATH with: %s" msgstr "要覆蓋使用者 $PATH 變數的值:%s" -#: plugins/sudoers/def_data.c:262 +#: plugins/sudoers/def_data.c:268 #, c-format msgid "Path to the editor for use by visudo: %s" msgstr "visudo 所使用編輯器的路徑:%s" -#: plugins/sudoers/def_data.c:266 +#: plugins/sudoers/def_data.c:272 #, c-format msgid "When to require a password for 'list' pseudocommand: %s" msgstr "何時要為「list」偽指令請求密碼:%s" -#: plugins/sudoers/def_data.c:270 +#: plugins/sudoers/def_data.c:276 #, c-format msgid "When to require a password for 'verify' pseudocommand: %s" msgstr "何時要為「verify」偽指令請求密碼:%s" -#: plugins/sudoers/def_data.c:274 +#: plugins/sudoers/def_data.c:280 msgid "Preload the sudo_noexec library which replaces the exec functions" msgstr "預載會替換掉 exec 函數的 sudo_noexec 函式庫" -#: plugins/sudoers/def_data.c:278 +#: plugins/sudoers/def_data.c:284 msgid "If LDAP directory is up, do we ignore local sudoers file" msgstr "如果有啟用 LDAP 目錄,是否要忽略本機的 sudoers 檔案" -#: plugins/sudoers/def_data.c:282 +#: plugins/sudoers/def_data.c:288 #, c-format msgid "File descriptors >= %d will be closed before executing a command" msgstr ">= %d 的檔案描述符將會在執行指令前關閉" -#: plugins/sudoers/def_data.c:286 +#: plugins/sudoers/def_data.c:292 msgid "If set, users may override the value of \"closefrom\" with the -C option" msgstr "如果設定,使用者可以透過 -C 選項覆蓋「closefrom」的值" -#: plugins/sudoers/def_data.c:290 +#: plugins/sudoers/def_data.c:296 msgid "Allow users to set arbitrary environment variables" msgstr "允許使用者設定任意的環境變數" -#: plugins/sudoers/def_data.c:294 +#: plugins/sudoers/def_data.c:300 msgid "Reset the environment to a default set of variables" msgstr "將環境重設為預設的變數集" -#: plugins/sudoers/def_data.c:298 +#: plugins/sudoers/def_data.c:304 msgid "Environment variables to check for safety:" msgstr "用來檢查安全性的環境變數:" -#: plugins/sudoers/def_data.c:302 +#: plugins/sudoers/def_data.c:308 msgid "Environment variables to remove:" msgstr "要移除的環境變數:" -#: plugins/sudoers/def_data.c:306 +#: plugins/sudoers/def_data.c:312 msgid "Environment variables to preserve:" msgstr "要保留的環境變數:" -#: plugins/sudoers/def_data.c:310 +#: plugins/sudoers/def_data.c:316 #, c-format msgid "SELinux role to use in the new security context: %s" msgstr "要在新的安全上下文中使用的 SELinux 角色:%s" -#: plugins/sudoers/def_data.c:314 +#: plugins/sudoers/def_data.c:320 #, c-format msgid "SELinux type to use in the new security context: %s" msgstr "要在新的安全上下文中使用的 SELinux 類型:%s" -#: plugins/sudoers/def_data.c:318 +#: plugins/sudoers/def_data.c:324 #, c-format msgid "Path to the sudo-specific environment file: %s" msgstr "sudo 特定環境檔案的路徑:%s" -#: plugins/sudoers/def_data.c:322 +#: plugins/sudoers/def_data.c:328 #, c-format msgid "Path to the restricted sudo-specific environment file: %s" msgstr "受限 sudo 特定環境檔案的路徑:%s" -#: plugins/sudoers/def_data.c:326 +#: plugins/sudoers/def_data.c:332 #, c-format msgid "Locale to use while parsing sudoers: %s" msgstr "解析 sudoers 時要使用的區域設定:%s" -#: plugins/sudoers/def_data.c:330 +#: plugins/sudoers/def_data.c:336 msgid "Allow sudo to prompt for a password even if it would be visible" msgstr "允許 sudo 詢問密碼,即使它不可見" -#: plugins/sudoers/def_data.c:334 +#: plugins/sudoers/def_data.c:340 msgid "Provide visual feedback at the password prompt when there is user input" msgstr "使用者在密碼提示輸入時提供視覺回饋" -#: plugins/sudoers/def_data.c:338 +#: plugins/sudoers/def_data.c:344 msgid "Use faster globbing that is less accurate but does not access the filesystem" msgstr "使用不太精確但不用存取檔案系統的較快 glob 方法" -#: plugins/sudoers/def_data.c:342 +#: plugins/sudoers/def_data.c:348 msgid "The umask specified in sudoers will override the user's, even if it is more permissive" msgstr "sudoers 中指定的 umask 會覆蓋使用者的 umask,即使使用者允許的權限更多" -#: plugins/sudoers/def_data.c:346 +#: plugins/sudoers/def_data.c:352 msgid "Log user's input for the command being run" msgstr "記錄指令執行時使用者的輸入內容" -#: plugins/sudoers/def_data.c:350 +#: plugins/sudoers/def_data.c:356 +msgid "Log the command's standard input if not connected to a terminal" +msgstr "如果未連結至終端機,則記錄命令的標準輸入" + +#: plugins/sudoers/def_data.c:360 +msgid "Log the user's terminal input for the command being run" +msgstr "記錄命令執行時,使用者在終端機的輸入內容" + +#: plugins/sudoers/def_data.c:364 msgid "Log the output of the command being run" -msgstr "記錄指令執行時的輸出內容" +msgstr "記錄命令執行時的輸出內容" + +#: plugins/sudoers/def_data.c:368 +msgid "Log the command's standard output if not connected to a terminal" +msgstr "如果未連結至終端機,則記錄命令的標準輸出" -#: plugins/sudoers/def_data.c:354 +#: plugins/sudoers/def_data.c:372 +msgid "Log the command's standard error if not connected to a terminal" +msgstr "如果未連結至終端機,則記錄命令的標準錯誤" + +#: plugins/sudoers/def_data.c:376 +msgid "Log the terminal output of the command being run" +msgstr "記錄命令執行時的終端機輸出內容" + +#: plugins/sudoers/def_data.c:380 msgid "Compress I/O logs using zlib" msgstr "使用 zlib 壓縮 I/O 記錄" -#: plugins/sudoers/def_data.c:358 +#: plugins/sudoers/def_data.c:384 msgid "Always run commands in a pseudo-tty" msgstr "總是在偽終端中執行指令" -#: plugins/sudoers/def_data.c:362 +#: plugins/sudoers/def_data.c:388 #, c-format msgid "Plugin for non-Unix group support: %s" msgstr "用於非 Unix 群組支援的外掛程式:%s" -#: plugins/sudoers/def_data.c:366 +#: plugins/sudoers/def_data.c:392 #, c-format msgid "Directory in which to store input/output logs: %s" msgstr "用於儲存輸入/輸出記錄的目錄:%s" -#: plugins/sudoers/def_data.c:370 +#: plugins/sudoers/def_data.c:396 #, c-format msgid "File in which to store the input/output log: %s" msgstr "用於儲存輸入/輸出記錄的檔案:%s" -#: plugins/sudoers/def_data.c:374 +#: plugins/sudoers/def_data.c:400 msgid "Add an entry to the utmp/utmpx file when allocating a pty" msgstr "在分配偽終端時向 utmp/utmpx 檔案中附加一條記錄" -#: plugins/sudoers/def_data.c:378 +#: plugins/sudoers/def_data.c:404 msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "將 utmp 中的使用者設為 runas 使用者,而不是呼叫使用者" -#: plugins/sudoers/def_data.c:382 +#: plugins/sudoers/def_data.c:408 #, c-format msgid "Set of permitted privileges: %s" msgstr "核准的權限集合:%s" -#: plugins/sudoers/def_data.c:386 +#: plugins/sudoers/def_data.c:412 #, c-format msgid "Set of limit privileges: %s" msgstr "限制的權限集合:%s" -#: plugins/sudoers/def_data.c:390 +#: plugins/sudoers/def_data.c:416 msgid "Run commands on a pty in the background" msgstr "在背景的偽終端上執行指令" -#: plugins/sudoers/def_data.c:394 +#: plugins/sudoers/def_data.c:420 #, c-format msgid "PAM service name to use: %s" msgstr "要使用的 PAM 服務名稱:%s" -#: plugins/sudoers/def_data.c:398 +#: plugins/sudoers/def_data.c:424 #, c-format msgid "PAM service name to use for login shells: %s" msgstr "用於登入 shell 的 PAM 服務名稱:%s" -#: plugins/sudoers/def_data.c:402 +#: plugins/sudoers/def_data.c:428 #, c-format msgid "PAM service name to use when sudo is run with the -A option: %s" msgstr "sudo 以 -A 選項執行時,要使用的 PAM 服務名稱:%s" -#: plugins/sudoers/def_data.c:406 +#: plugins/sudoers/def_data.c:432 msgid "Attempt to establish PAM credentials for the target user" msgstr "嘗試為目標使用者建立 PAM 憑證" -#: plugins/sudoers/def_data.c:410 +#: plugins/sudoers/def_data.c:436 msgid "Create a new PAM session for the command to run in" msgstr "建立一個新的 PAM 工作階段來執行該指令" -#: plugins/sudoers/def_data.c:414 +#: plugins/sudoers/def_data.c:440 msgid "Perform PAM account validation management" msgstr "執行 PAM 帳戶驗證管理工具" -#: plugins/sudoers/def_data.c:418 +#: plugins/sudoers/def_data.c:444 #, c-format msgid "Maximum I/O log sequence number: %s" msgstr "最大 I/O 記錄序號:%s" -#: plugins/sudoers/def_data.c:422 +#: plugins/sudoers/def_data.c:448 msgid "Enable sudoers netgroup support" msgstr "啟用 sudoers netgroup 支援" -#: plugins/sudoers/def_data.c:426 +#: plugins/sudoers/def_data.c:452 msgid "Check parent directories for writability when editing files with sudoedit" msgstr "在使用 sudoedit 編輯檔案時檢查上層目錄是否可寫" -#: plugins/sudoers/def_data.c:430 +#: plugins/sudoers/def_data.c:456 msgid "Follow symbolic links when editing files with sudoedit" msgstr "使用 sudoedit 編輯檔案時跟隨符號連結(定位到原檔案)" -#: plugins/sudoers/def_data.c:434 +#: plugins/sudoers/def_data.c:460 msgid "Query the group plugin for unknown system groups" msgstr "透過群組外掛程式查詢未知的系統群組" -#: plugins/sudoers/def_data.c:438 +#: plugins/sudoers/def_data.c:464 msgid "Match netgroups based on the entire tuple: user, host and domain" msgstr "基於整個元組(使用者、主機和網域)來符合網路群組" -#: plugins/sudoers/def_data.c:442 +#: plugins/sudoers/def_data.c:468 msgid "Allow commands to be run even if sudo cannot write to the audit log" msgstr "即使 sudo 無法寫入稽核記錄也允許執行指令" -#: plugins/sudoers/def_data.c:446 +#: plugins/sudoers/def_data.c:472 msgid "Allow commands to be run even if sudo cannot write to the I/O log" msgstr "即使 sudo 無法寫入 I/O 記錄也允許執行指令" -#: plugins/sudoers/def_data.c:450 +#: plugins/sudoers/def_data.c:476 msgid "Allow commands to be run even if sudo cannot write to the log file" msgstr "即使 sudo 無法寫入記錄檔案也允許執行指令" -#: plugins/sudoers/def_data.c:454 +#: plugins/sudoers/def_data.c:480 msgid "Resolve groups in sudoers and match on the group ID, not the name" msgstr "解析 sudoers 中的群組並基於群組 ID(不是名稱)比較" -#: plugins/sudoers/def_data.c:458 +#: plugins/sudoers/def_data.c:484 #, c-format msgid "Log entries larger than this value will be split into multiple syslog messages: %u" msgstr "大於此數值的記錄條目會分為多條 syslog 訊息:%u" -#: plugins/sudoers/def_data.c:462 +#: plugins/sudoers/def_data.c:488 #, c-format msgid "User that will own the I/O log files: %s" msgstr "將擁有 I/O 記錄檔案的使用者:%s" -#: plugins/sudoers/def_data.c:466 +#: plugins/sudoers/def_data.c:492 #, c-format msgid "Group that will own the I/O log files: %s" msgstr "將擁有 I/O 記錄檔案的群組:%s" -#: plugins/sudoers/def_data.c:470 +#: plugins/sudoers/def_data.c:496 #, c-format msgid "File mode to use for the I/O log files: 0%o" msgstr "I/O 記錄檔案要使用的檔案模式:0%o" -#: plugins/sudoers/def_data.c:474 +#: plugins/sudoers/def_data.c:500 #, c-format msgid "Execute commands by file descriptor instead of by path: %s" msgstr "根據檔案描述符執行指令,而非根據路徑:%s" -#: plugins/sudoers/def_data.c:478 +#: plugins/sudoers/def_data.c:504 msgid "Ignore unknown Defaults entries in sudoers instead of producing a warning" msgstr "忽略 sudoers 中未知的預設 (Defaults) 條目而非產生警告" -#: plugins/sudoers/def_data.c:482 +#: plugins/sudoers/def_data.c:508 #, c-format msgid "Time in seconds after which the command will be terminated: %u" msgstr "超過指定時間後終止指令 (秒):%u" -#: plugins/sudoers/def_data.c:486 +#: plugins/sudoers/def_data.c:512 msgid "Allow the user to specify a timeout on the command line" msgstr "允許使用者在指令行中指定逾時時間" -#: plugins/sudoers/def_data.c:490 +#: plugins/sudoers/def_data.c:516 msgid "Flush I/O log data to disk immediately instead of buffering it" msgstr "立即重新整理 I/O 記錄資料而非快取資料" -#: plugins/sudoers/def_data.c:494 +#: plugins/sudoers/def_data.c:520 msgid "Include the process ID when logging via syslog" msgstr "透過 syslog 登入時包含行程 ID" -#: plugins/sudoers/def_data.c:498 +#: plugins/sudoers/def_data.c:524 #, c-format msgid "Type of authentication timestamp record: %s" msgstr "認證時間戳記錄的類型:%s" -#: plugins/sudoers/def_data.c:502 +#: plugins/sudoers/def_data.c:528 #, c-format msgid "Authentication failure message: %s" msgstr "認證失敗訊息:%s" -#: plugins/sudoers/def_data.c:506 +#: plugins/sudoers/def_data.c:532 msgid "Ignore case when matching user names" msgstr "在比較使用者名稱時忽略大小寫" -#: plugins/sudoers/def_data.c:510 +#: plugins/sudoers/def_data.c:536 msgid "Ignore case when matching group names" msgstr "在比較群組名稱時忽略大小寫" -#: plugins/sudoers/def_data.c:514 +#: plugins/sudoers/def_data.c:540 msgid "Log when a command is allowed by sudoers" msgstr "當指令被 sudoers 允許通行時記錄" -#: plugins/sudoers/def_data.c:518 +#: plugins/sudoers/def_data.c:544 msgid "Log when a command is denied by sudoers" msgstr "當指令被 sudoers 拒絕通行時記錄" -#: plugins/sudoers/def_data.c:522 +#: plugins/sudoers/def_data.c:548 msgid "Sudo log server(s) to connect to with optional port" msgstr "要連線的 Sudo 記錄伺服器 (可加連線埠)" -#: plugins/sudoers/def_data.c:526 +#: plugins/sudoers/def_data.c:552 #, c-format msgid "Sudo log server timeout in seconds: %u" msgstr "Sudo 記錄伺服器逾時 (秒):%u" -#: plugins/sudoers/def_data.c:530 +#: plugins/sudoers/def_data.c:556 msgid "Enable SO_KEEPALIVE socket option on the socket connected to the logserver" msgstr "請在已連線至記錄伺服器的 socket 通訊端啟用 SO_KEEPALIVE socket 選項" -#: plugins/sudoers/def_data.c:534 +#: plugins/sudoers/def_data.c:560 #, c-format msgid "Path to the audit server's CA bundle file: %s" msgstr "稽核伺服器的 CA 組合 (bundle) 檔案路徑:%s" -#: plugins/sudoers/def_data.c:538 +#: plugins/sudoers/def_data.c:564 #, c-format msgid "Path to the sudoers certificate file: %s" msgstr "sudoers 憑證檔案的路徑:%s" -#: plugins/sudoers/def_data.c:542 +#: plugins/sudoers/def_data.c:568 #, c-format msgid "Path to the sudoers private key file: %s" msgstr "sudoers 私鑰檔案的路徑:%s" -#: plugins/sudoers/def_data.c:546 +#: plugins/sudoers/def_data.c:572 msgid "Verify that the log server's certificate is valid" msgstr "核驗記錄伺服器的憑證是否有效" -#: plugins/sudoers/def_data.c:550 +#: plugins/sudoers/def_data.c:576 msgid "Allow the use of unknown runas user and/or group ID" msgstr "允許使用未知 runas 使用者及 (或) 群組 ID" -#: plugins/sudoers/def_data.c:554 +#: plugins/sudoers/def_data.c:580 msgid "Only permit running commands as a user with a valid shell" msgstr "只允許以使用有效 Shell 的使用者執行命令" -#: plugins/sudoers/def_data.c:558 +#: plugins/sudoers/def_data.c:584 msgid "Set the pam remote user to the user running sudo" msgstr "設定 pam 遠端使用者為執行 sudo 的使用者" -#: plugins/sudoers/def_data.c:562 +#: plugins/sudoers/def_data.c:588 msgid "Set the pam remote host to the local host name" msgstr "設定 pam 遠端主機至本機主機名稱" -#: plugins/sudoers/def_data.c:566 +#: plugins/sudoers/def_data.c:592 #, c-format msgid "Working directory to change to before executing the command: %s" msgstr "執行命令前,要切換到的工作目錄:%s" -#: plugins/sudoers/def_data.c:570 +#: plugins/sudoers/def_data.c:596 #, c-format msgid "Root directory to change to before executing the command: %s" msgstr "執行命令前,要切換到的根目錄:%s" -#: plugins/sudoers/def_data.c:574 +#: plugins/sudoers/def_data.c:600 #, c-format msgid "The format of logs to produce: %s" msgstr "要產出的記錄格式:%s" -#: plugins/sudoers/def_data.c:578 +#: plugins/sudoers/def_data.c:604 msgid "Enable SELinux RBAC support" msgstr "啟用 SELinux RBAC 支援" -#: plugins/sudoers/def_data.c:582 +#: plugins/sudoers/def_data.c:608 #, c-format msgid "Path to the file that is created the first time sudo is run: %s" msgstr "sudo 第一次執行時建立的檔案路徑:%s" -#: plugins/sudoers/def_data.c:586 +#: plugins/sudoers/def_data.c:612 msgid "Intercept further commands and apply sudoers restrictions to them" msgstr "攔截之後的命令,並對這些命令套用 sudoers 限制" -#: plugins/sudoers/def_data.c:590 +#: plugins/sudoers/def_data.c:616 msgid "Log sub-commands run by the original command" msgstr "記錄原始命令執行的子命令" -#: plugins/sudoers/def_data.c:594 +#: plugins/sudoers/def_data.c:620 msgid "Log the exit status of commands" msgstr "記錄命令的離開狀態碼" -#: plugins/sudoers/def_data.c:598 +#: plugins/sudoers/def_data.c:624 msgid "Subsequent commands in an intercepted session must be authenticated" msgstr "被攔截工作階段中的後續命令需要進行身份驗證" -#: plugins/sudoers/def_data.c:602 +#: plugins/sudoers/def_data.c:628 msgid "Allow an intercepted command to run set setuid or setgid programs" msgstr "允許被攔截的命令執行設定 setuid 或 setgid 的程式" -#: plugins/sudoers/def_data.c:606 +#: plugins/sudoers/def_data.c:632 #, c-format msgid "The maximum size to which the process's address space may grow (in bytes): %s" msgstr "這個處理程序的地址空間可能增長到的最大大小(位元組):%s" -#: plugins/sudoers/def_data.c:610 +#: plugins/sudoers/def_data.c:636 #, c-format msgid "The largest size core dump file that may be created (in bytes): %s" msgstr "可能建立出的最大核心傾印檔案大小(位元組):%s" -#: plugins/sudoers/def_data.c:614 +#: plugins/sudoers/def_data.c:640 #, c-format msgid "The maximum amount of CPU time that the process may use (in seconds): %s" msgstr "處理程序最長可能耗用的 CPU 時間(秒):%s" -#: plugins/sudoers/def_data.c:618 +#: plugins/sudoers/def_data.c:644 #, c-format msgid "The maximum size of the data segment for the process (in bytes): %s" msgstr "處理程序資料區段的最大大小(位元組):%s" -#: plugins/sudoers/def_data.c:622 +#: plugins/sudoers/def_data.c:648 #, c-format msgid "The largest size file that the process may create (in bytes): %s" msgstr "處理程式最大可能建立出的檔案大小(位元組):%s" -#: plugins/sudoers/def_data.c:626 +#: plugins/sudoers/def_data.c:652 #, c-format msgid "The maximum number of locks that the process may establish: %s" msgstr "處理程序最多可能建立的鎖 (lock) 數量:%s" -#: plugins/sudoers/def_data.c:630 +#: plugins/sudoers/def_data.c:656 #, c-format msgid "The maximum size that the process may lock in memory (in bytes): %s" msgstr "處理程序最大可能在記憶體中鎖定的大小(位元組):%s" -#: plugins/sudoers/def_data.c:634 +#: plugins/sudoers/def_data.c:660 #, c-format msgid "The maximum number of files that the process may have open: %s" msgstr "處理程序最多可能開啟的檔案數量:%s" -#: plugins/sudoers/def_data.c:638 +#: plugins/sudoers/def_data.c:664 #, c-format msgid "The maximum number of processes that the user may run simultaneously: %s" msgstr "使用者可能同時執行的最大處理程序數量:%s" -#: plugins/sudoers/def_data.c:642 +#: plugins/sudoers/def_data.c:668 #, c-format msgid "The maximum size to which the process's resident set size may grow (in bytes): %s" msgstr "這個處理程序的 resident set 可能增長到的最大大小(位元組):%s" -#: plugins/sudoers/def_data.c:646 +#: plugins/sudoers/def_data.c:672 #, c-format msgid "The maximum size to which the process's stack may grow (in bytes): %s" msgstr "這個處理程序的堆疊可能增長到的最大大小(位元組):%s" -#: plugins/sudoers/def_data.c:650 +#: plugins/sudoers/def_data.c:676 msgid "Attempt authentication even when in non-interactive mode" msgstr "非互動模式下仍嘗試進行身份認證" -#: plugins/sudoers/def_data.c:654 +#: plugins/sudoers/def_data.c:680 msgid "Store plaintext passwords in I/O log input" msgstr "在 I/O 日誌輸入儲存純文字密碼" -#: plugins/sudoers/def_data.c:658 +#: plugins/sudoers/def_data.c:684 msgid "List of regular expressions to use when matching a password prompt" msgstr "比對密碼提示時,要使用的正規表達式清單" -#: plugins/sudoers/defaults.c:193 -#, c-format -msgid "%s: unknown defaults entry \"%s\"" -msgstr "%s:未知的預設條目「%s」" - -#: plugins/sudoers/defaults.c:242 -#, c-format -msgid "%s:%d:%d: no value specified for \"%s\"" -msgstr "%s:%d:%d: 沒有指定「%s」的值" - -#: plugins/sudoers/defaults.c:245 +#: plugins/sudoers/def_data.c:688 #, c-format -msgid "%s: no value specified for \"%s\"" -msgstr "%s:沒有給「%s」指定值" +msgid "The mechanism used by the intercept and log_subcmds options: %s" +msgstr "intercept 和 log_subcmds 選項使用的機制:%s" -#: plugins/sudoers/defaults.c:258 -#, c-format -msgid "%s:%d:%d: invalid operator \"%c=\" for \"%s\"" -msgstr "%1$s:%2$d:%3$d: 「%5$s」的運算子「%4$c=」無效" +#: plugins/sudoers/def_data.c:692 +msgid "Attempt to verify the command and arguments after execution" +msgstr "嘗試在執行後驗證命令和引數" -#: plugins/sudoers/defaults.c:261 +#: plugins/sudoers/def_data.c:696 #, c-format -msgid "%s: invalid operator \"%c=\" for \"%s\"" -msgstr "%1$s:「%3$s」的運算子「%2$c=」無效" +msgid "AppArmor profile to use in the new security context: %s" +msgstr "要在新的安全上下文中使用的 AppArmor 設定檔:%s" -#: plugins/sudoers/defaults.c:297 +#: plugins/sudoers/defaults.c:191 #, c-format -msgid "%s:%d:%d: option \"%s\" does not take a value" -msgstr "%s:%d:%d: 「%s」選項不帶值" +msgid "unknown defaults entry \"%s\"" +msgstr "預設項目「%s」未知" -#: plugins/sudoers/defaults.c:300 +#: plugins/sudoers/defaults.c:234 #, c-format -msgid "%s: option \"%s\" does not take a value" -msgstr "%s:「%s」選項不帶值" +msgid "no value specified for \"%s\"" +msgstr "未指定「%s」的值" -#: plugins/sudoers/defaults.c:328 +#: plugins/sudoers/defaults.c:243 #, c-format -msgid "%s:%d:%d: invalid Defaults type 0x%x for option \"%s\"" -msgstr "%1$s:%2$d:%3$d: 選項「%5$s」的預設 (Defaults) 類型 0x%4$x 無效" +msgid "invalid operator \"%c=\" for \"%s\"" +msgstr "「%2$s」的運算子「%1$c=」無效" -#: plugins/sudoers/defaults.c:331 +#: plugins/sudoers/defaults.c:275 #, c-format -msgid "%s: invalid Defaults type 0x%x for option \"%s\"" -msgstr "%1$s:選項「%3$s」的預設類型 0x%2$x 無效" +msgid "option \"%s\" does not take a value" +msgstr "「%s」選項不取數值" -#: plugins/sudoers/defaults.c:341 +#: plugins/sudoers/defaults.c:299 #, c-format -msgid "%s:%d:%d: value \"%s\" is invalid for option \"%s\"" -msgstr "%s:%d:%d: 「%s」值對「%s」選項無效" +msgid "invalid Defaults type 0x%x for option \"%s\"" +msgstr "「%2$s」選項的 Defaults 類型 0x%1$x 無效" -#: plugins/sudoers/defaults.c:344 +#: plugins/sudoers/defaults.c:306 #, c-format -msgid "%s: value \"%s\" is invalid for option \"%s\"" -msgstr "%s:值「%s」對選項「%s」無效" +msgid "value \"%s\" is invalid for option \"%s\"" +msgstr "「%s」數值對「%s」選項無效" -#: plugins/sudoers/defaults.c:1161 +#: plugins/sudoers/defaults.c:1128 plugins/sudoers/policy.c:210 +#: plugins/sudoers/policy.c:219 #, c-format -msgid "%s:%d:%d: path name for \"%s\" too long" -msgstr "%s:%d:%d: 「%s」的路徑名稱過長" - -#: plugins/sudoers/defaults.c:1164 -#, c-format -msgid "%s: path name for \"%s\" too long" -msgstr "%s:「%s」的路徑名稱過長" +msgid "path name for \"%s\" too long" +msgstr "「%s」的路徑名稱太長" -#: plugins/sudoers/defaults.c:1175 +#: plugins/sudoers/defaults.c:1134 #, c-format -msgid "%s:%d:%d: values for \"%s\" must start with a '/', '~', or '*'" -msgstr "%s:%d:%d: \"%s\" 的值開頭必須是 '/'、'~' 或 '*'" +msgid "values for \"%s\" must start with a '/', '~', or '*'" +msgstr "「%s」的值必須以「/」、「~」或「*」開頭" -#: plugins/sudoers/defaults.c:1179 +#: plugins/sudoers/defaults.c:1141 #, c-format -msgid "%s: values for \"%s\" must start with a '/', '~', or '*'" -msgstr "%s: \"%s\" 的值開頭必須是 '/'、'~' 或 '*'" +msgid "values for \"%s\" must start with a '/'" +msgstr "「%s」的值必須以「/」開頭" -#: plugins/sudoers/defaults.c:1190 +#: plugins/sudoers/editor.c:180 #, c-format -msgid "%s:%d:%d: values for \"%s\" must start with a '/'" -msgstr "%s:%d:%d: \"%s\" 的值開頭必須是 '/'" +msgid "ignoring editor: %.*s" +msgstr "忽略編輯器:%.*s" -#: plugins/sudoers/defaults.c:1194 -#, c-format -msgid "%s: values for \"%s\" must start with a '/'" -msgstr "%s:「%s」的值必須以「/」開頭" +#: plugins/sudoers/editor.c:181 +msgid "editor arguments may not contain \"--\"" +msgstr "編輯器引數不能包含「--」" -#: plugins/sudoers/env.c:412 +#: plugins/sudoers/env.c:426 msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "sudo_putenv:envp 損壞,長度不符" -#: plugins/sudoers/env.c:1095 +#: plugins/sudoers/env.c:1113 msgid "unable to rebuild the environment" msgstr "無法重建環境" -#: plugins/sudoers/env.c:1169 +#: plugins/sudoers/env.c:1192 #, c-format msgid "sorry, you are not allowed to set the following environment variables: %s" msgstr "對不起,您沒有權限設定以下環境變數:%s" -#: plugins/sudoers/file.c:108 -#, c-format -msgid "parse error in %s near line %d" -msgstr "解析接近第 %2$d 行的 %1$s 時發生錯誤" - -#: plugins/sudoers/file.c:111 -#, c-format -msgid "parse error in %s" -msgstr "解析 %s 中的內容時發生錯誤" - #: plugins/sudoers/filedigest.c:49 #, c-format msgid "unsupported digest type %d for %s" @@ -2637,27 +2693,17 @@ msgstr "不支援 %2$s 的摘要類型 %1$d" msgid "%s: read error" msgstr "%s:讀取錯誤" -#: plugins/sudoers/group_plugin.c:83 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s 必須由使用者 ID %d 所有" - -#: plugins/sudoers/group_plugin.c:87 -#, c-format -msgid "%s must only be writable by owner" -msgstr "%s 必須只允許所有者可寫" - -#: plugins/sudoers/group_plugin.c:96 plugins/sudoers/sssd.c:576 +#: plugins/sudoers/group_plugin.c:169 plugins/sudoers/sssd.c:576 #, c-format msgid "unable to load %s: %s" msgstr "無法載入 %s:%s" -#: plugins/sudoers/group_plugin.c:102 +#: plugins/sudoers/group_plugin.c:181 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "無法在 %s 中找到符號「group_plugin」" -#: plugins/sudoers/group_plugin.c:107 +#: plugins/sudoers/group_plugin.c:186 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s:不相容的群組外掛程式主要版本號碼 %d,版本應該為 %d" @@ -2676,42 +2722,42 @@ msgstr "無法解析網路遮罩「%s」" msgid "Local IP address and netmask pairs:\n" msgstr "本機 IP 位址和網路遮罩配對:\n" -#: plugins/sudoers/iolog.c:681 +#: plugins/sudoers/iolog.c:685 msgid "unable to update sequence file" msgstr "無法更新序列檔" -#: plugins/sudoers/iolog.c:715 plugins/sudoers/iolog.c:903 -#: plugins/sudoers/iolog.c:1065 plugins/sudoers/iolog.c:1072 -#: plugins/sudoers/iolog.c:1193 plugins/sudoers/iolog.c:1200 -#: plugins/sudoers/iolog.c:1299 plugins/sudoers/iolog.c:1306 +#: plugins/sudoers/iolog.c:719 plugins/sudoers/iolog.c:907 +#: plugins/sudoers/iolog.c:1069 plugins/sudoers/iolog.c:1076 +#: plugins/sudoers/iolog.c:1197 plugins/sudoers/iolog.c:1204 +#: plugins/sudoers/iolog.c:1303 plugins/sudoers/iolog.c:1310 #, c-format msgid "unable to write to I/O log file: %s" msgstr "無法寫入 I/O 記錄檔案:%s" -#: plugins/sudoers/iolog.c:723 +#: plugins/sudoers/iolog.c:727 #, c-format msgid "unable to create %s/%s" msgstr "無法建立 %s/%s" -#: plugins/sudoers/iolog.c:951 +#: plugins/sudoers/iolog.c:955 #, c-format msgid "%s: internal error, I/O log file for event %d not open" msgstr "%s:內部錯誤,未開啟事件 %d 的 I/O 記錄檔案" -#: plugins/sudoers/iolog.c:1050 plugins/sudoers/iolog.c:1178 -#: plugins/sudoers/iolog.c:1283 plugins/sudoers/timestamp.c:849 -#: plugins/sudoers/timestamp.c:941 plugins/sudoers/visudo.c:510 -#: plugins/sudoers/visudo.c:516 +#: plugins/sudoers/iolog.c:1054 plugins/sudoers/iolog.c:1182 +#: plugins/sudoers/iolog.c:1287 plugins/sudoers/timestamp.c:879 +#: plugins/sudoers/timestamp.c:971 plugins/sudoers/visudo.c:556 +#: plugins/sudoers/visudo.c:562 msgid "unable to read the clock" msgstr "無法讀取時鐘" -#: plugins/sudoers/iolog.c:1275 plugins/sudoers/log_client.c:1221 -#: plugins/sudoers/log_client.c:1231 plugins/sudoers/log_client.c:1235 +#: plugins/sudoers/iolog.c:1279 plugins/sudoers/log_client.c:1192 +#: plugins/sudoers/log_client.c:1202 plugins/sudoers/log_client.c:1206 #, c-format msgid "%s: internal error, invalid signal %d" msgstr "%s:內部錯誤,訊號 %d 無效" -#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:291 +#: plugins/sudoers/ldap.c:177 plugins/sudoers/ldap_conf.c:292 msgid "starttls not supported when using ldaps" msgstr "使用 ldaps 時不支援使用 starttls" @@ -2725,16 +2771,16 @@ msgstr "無法初始化 SSL 憑證和金鑰資料庫:%s" msgid "you must set TLS_CERT in %s to use SSL" msgstr "要使用 SSL,您必須在 %s 設定 TLS_CERT" -#: plugins/sudoers/ldap.c:1717 +#: plugins/sudoers/ldap.c:1714 #, c-format msgid "unable to initialize LDAP: %s" msgstr "無法初始化 LDAP:%s" -#: plugins/sudoers/ldap.c:1754 +#: plugins/sudoers/ldap.c:1751 msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "指定了 start_tls,但 LDAP 函式庫不支援 ldap_start_tls_s() 或 ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:1891 plugins/sudoers/parse_ldif.c:747 +#: plugins/sudoers/ldap.c:1888 plugins/sudoers/parse_ldif.c:748 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "無效的 sudoOrder 屬性:%s" @@ -2744,12 +2790,12 @@ msgstr "無效的 sudoOrder 屬性:%s" msgid "%s: port too large" msgstr "%s:連線埠過大" -#: plugins/sudoers/ldap_conf.c:260 +#: plugins/sudoers/ldap_conf.c:261 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "不支援的 LDAP URI 類型:%s" -#: plugins/sudoers/ldap_conf.c:287 +#: plugins/sudoers/ldap_conf.c:288 msgid "unable to mix ldap and ldaps URIs" msgstr "無法混合 ldap 和 ldaps URI" @@ -2774,111 +2820,111 @@ msgstr "無法開啟稽核系統" msgid "unable to send audit message" msgstr "無法傳送稽核訊息" -#: plugins/sudoers/log_client.c:120 plugins/sudoers/log_client.c:400 -#: plugins/sudoers/log_client.c:1468 plugins/sudoers/log_client.c:2069 +#: plugins/sudoers/log_client.c:125 plugins/sudoers/log_client.c:412 +#: plugins/sudoers/log_client.c:1439 plugins/sudoers/log_client.c:2055 msgid "error in event loop" msgstr "事件循環中發生錯誤" -#: plugins/sudoers/log_client.c:200 +#: plugins/sudoers/log_client.c:205 #, c-format msgid "Creation of new SSL_CTX object failed: %s" msgstr "建立新 SSL_CTX 物件失敗:%s" -#: plugins/sudoers/log_client.c:223 +#: plugins/sudoers/log_client.c:230 #, c-format msgid "unable to load certificate authority bundle %s" msgstr "無法載入 %s 憑證授權單位組合" -#: plugins/sudoers/log_client.c:243 +#: plugins/sudoers/log_client.c:252 #, c-format msgid "unable to load certificate %s" msgstr "無法載入 %s 憑證" -#: plugins/sudoers/log_client.c:256 +#: plugins/sudoers/log_client.c:266 #, c-format msgid "unable to load private key %s" msgstr "無法載入 %s 私鑰" -#: plugins/sudoers/log_client.c:265 +#: plugins/sudoers/log_client.c:275 #, c-format msgid "Unable to allocate ssl object: %s" msgstr "無法配置 SSL 物件:%s" -#: plugins/sudoers/log_client.c:353 plugins/sudoers/log_client.c:358 +#: plugins/sudoers/log_client.c:364 plugins/sudoers/log_client.c:369 #, c-format msgid "TLS connection to %s:%s failed: %s" msgstr "TLS 連線至 %s:%s 失敗:%s" -#: plugins/sudoers/log_client.c:531 +#: plugins/sudoers/log_client.c:543 msgid "TLS initialization was unsuccessful" msgstr "TLS 初始化失敗" -#: plugins/sudoers/log_client.c:541 +#: plugins/sudoers/log_client.c:553 msgid "TLS handshake was unsuccessful" msgstr "TLS 交握失敗" -#: plugins/sudoers/log_client.c:1239 +#: plugins/sudoers/log_client.c:1210 #, c-format msgid "%s: internal error, invalid exit status %d" msgstr "%s:內部錯誤,退出狀態碼 %d 無效" -#: plugins/sudoers/log_client.c:1608 -msgid "unable to unpack ServerMessage" -msgstr "無法解開 ServerMessage" - -#: plugins/sudoers/log_client.c:1763 plugins/sudoers/log_client.c:1787 +#: plugins/sudoers/log_client.c:1739 plugins/sudoers/log_client.c:1763 msgid "lost connection to log server" msgstr "失去對記錄伺服器的連線" -#: plugins/sudoers/log_client.c:1864 +#: plugins/sudoers/log_client.c:1840 msgid "missing write buffer" msgstr "缺少寫入緩衝區" -#: plugins/sudoers/log_client.c:2010 +#: plugins/sudoers/log_client.c:1994 msgid "unable to connect to log server" msgstr "無法連線到記錄伺服器" -#: plugins/sudoers/logging.c:288 +#: plugins/sudoers/logging.c:290 msgid "user NOT in sudoers" msgstr "使用者不在 sudoers 中" -#: plugins/sudoers/logging.c:290 +#: plugins/sudoers/logging.c:292 msgid "user NOT authorized on host" msgstr "使用者未取得此主機上的授權" -#: plugins/sudoers/logging.c:292 +#: plugins/sudoers/logging.c:294 msgid "command not allowed" msgstr "不允許使用指令" -#: plugins/sudoers/logging.c:313 +#: plugins/sudoers/logging.c:315 #, c-format msgid "%s is not in the sudoers file.\n" msgstr "%s 不在 sudoers 檔案中。\n" -#: plugins/sudoers/logging.c:316 +#: plugins/sudoers/logging.c:318 #, c-format msgid "%s is not allowed to run sudo on %s.\n" msgstr "%s 不允許在 %s 執行 sudo。\n" -#: plugins/sudoers/logging.c:319 +#: plugins/sudoers/logging.c:321 #, c-format msgid "Sorry, user %s may not run sudo on %s.\n" msgstr "對不起,使用者 %s 不能在 %s 上執行 sudo。\n" -#: plugins/sudoers/logging.c:322 +#: plugins/sudoers/logging.c:324 #, c-format msgid "Sorry, user %s is not allowed to execute '%s%s%s' as %s%s%s on %s.\n" msgstr "對不起,使用者 %1$s 不允許以 %8$s 上的 %5$s%6$s%7$s 身份執行「%2$s%3$s%4$s」\n" -#: plugins/sudoers/logging.c:359 plugins/sudoers/sudoers.c:629 -#: plugins/sudoers/sudoers.c:631 plugins/sudoers/sudoers.c:633 -#: plugins/sudoers/sudoers.c:635 plugins/sudoers/sudoers.c:785 -#: plugins/sudoers/sudoers.c:787 +#: plugins/sudoers/logging.c:334 +msgid "This incident has been reported to the administrator.\n" +msgstr "本事件已向管理員報告。\n" + +#: plugins/sudoers/logging.c:369 plugins/sudoers/sudoers.c:655 +#: plugins/sudoers/sudoers.c:657 plugins/sudoers/sudoers.c:659 +#: plugins/sudoers/sudoers.c:661 plugins/sudoers/sudoers.c:816 +#: plugins/sudoers/sudoers.c:818 #, c-format msgid "%s: command not found" msgstr "%s:找不到指令" -#: plugins/sudoers/logging.c:361 plugins/sudoers/sudoers.c:625 +#: plugins/sudoers/logging.c:371 plugins/sudoers/sudoers.c:651 #, c-format msgid "" "ignoring \"%s\" found in '.'\n" @@ -2887,39 +2933,45 @@ msgstr "" "忽略在「.」中找到的「%s」\n" "請使用「sudo ./%s」,若這是您想執行的「%s」。" -#: plugins/sudoers/logging.c:380 +#: plugins/sudoers/logging.c:391 #, c-format msgid "%u incorrect password attempt" msgid_plural "%u incorrect password attempts" msgstr[0] "%u 次密碼錯誤嘗試" -#: plugins/sudoers/logging.c:436 +#: plugins/sudoers/logging.c:481 msgid "authentication failure" msgstr "認證失敗" -#: plugins/sudoers/logging.c:476 plugins/sudoers/logging.c:496 +#: plugins/sudoers/logging.c:520 plugins/sudoers/logging.c:539 msgid "a password is required" msgstr "需要密碼" -#: plugins/sudoers/logging.c:890 +#: plugins/sudoers/logging.c:803 plugins/sudoers/logging.c:815 +msgid "problem parsing sudoers" +msgstr "解析 sudoers 時發生問題" + +#: plugins/sudoers/logging.c:877 plugins/sudoers/logging.c:889 +#, c-format +msgid "%s:%d:%d: %s" +msgstr "%s:%d:%d: %s" + +#: plugins/sudoers/logging.c:1066 #, c-format msgid "unable to write log file: %s" msgstr "無法寫入記錄檔案:%s" -#: plugins/sudoers/match_digest.c:129 +#: plugins/sudoers/match_digest.c:112 +#, c-format +msgid "digest for %s (%s) bad length %zu, expected %zu" +msgstr "%s (%s) 的摘要長度 %zu 是錯誤的(預期是 %zu)" + +#: plugins/sudoers/match_digest.c:131 #, c-format msgid "digest for %s (%s) is not in %s form" msgstr "%s(%s) 的摘要的形式不是 %s" -#: plugins/sudoers/parse.c:233 -msgid "SELinux RBAC is not supported when intercept mode is enabled" -msgstr "不支援在啟用攔截模式時使用 SELinux RBAC" - -#: plugins/sudoers/parse.c:238 -msgid "SELinux RBAC is not supported when the log_subcmds flag is enabled" -msgstr "不支援在啟用 log_subcmds 旗標時使用 SELinux RBAC" - -#: plugins/sudoers/parse.c:549 +#: plugins/sudoers/parse.c:631 #, c-format msgid "" "\n" @@ -2928,7 +2980,7 @@ msgstr "" "\n" "LDAP 角色:%s\n" -#: plugins/sudoers/parse.c:552 +#: plugins/sudoers/parse.c:634 msgid "" "\n" "Sudoers entry:\n" @@ -2936,115 +2988,110 @@ msgstr "" "\n" "Sudoers 條目:\n" -#: plugins/sudoers/parse.c:554 +#: plugins/sudoers/parse.c:636 msgid " RunAsUsers: " msgstr " RunAs 使用者:" -#: plugins/sudoers/parse.c:569 +#: plugins/sudoers/parse.c:651 msgid " RunAsGroups: " msgstr " RunAs 群組:" -#: plugins/sudoers/parse.c:579 +#: plugins/sudoers/parse.c:661 msgid " Options: " msgstr " 選項:" -#: plugins/sudoers/parse.c:643 +#: plugins/sudoers/parse.c:725 msgid " Commands:\n" msgstr " 指令:\n" -#: plugins/sudoers/parse.c:834 +#: plugins/sudoers/parse.c:916 #, c-format msgid "Matching Defaults entries for %s on %s:\n" msgstr "比較 %s (%s 上) 的預設條目:\n" -#: plugins/sudoers/parse.c:852 +#: plugins/sudoers/parse.c:934 #, c-format msgid "Runas and Command-specific defaults for %s:\n" msgstr "%s RunAs 和指令指定的預設值:\n" -#: plugins/sudoers/parse.c:870 +#: plugins/sudoers/parse.c:952 #, c-format msgid "User %s may run the following commands on %s:\n" msgstr "使用者 %s 可以在 %s 上執行以下指令:\n" -#: plugins/sudoers/parse.c:885 +#: plugins/sudoers/parse.c:967 #, c-format msgid "User %s is not allowed to run sudo on %s.\n" msgstr "使用者 %s 沒有權限在 %s 上執行 sudo。\n" -#: plugins/sudoers/parse_ldif.c:617 +#: plugins/sudoers/parse_ldif.c:618 #, c-format msgid "ignoring incomplete sudoRole: cn: %s" msgstr "將忽略不完整的 sudoRole:cn:%s" -#: plugins/sudoers/parse_ldif.c:677 +#: plugins/sudoers/parse_ldif.c:678 #, c-format msgid "invalid LDIF attribute: %s" msgstr "LDIF 屬性無效:%s" -#: plugins/sudoers/policy.c:80 plugins/sudoers/policy.c:111 +#: plugins/sudoers/policy.c:82 plugins/sudoers/policy.c:113 #, c-format msgid "invalid %.*s set by sudo front-end" msgstr "sudo 前端設定的 %.*s 無效" -#: plugins/sudoers/policy.c:206 plugins/sudoers/policy.c:215 -#, c-format -msgid "path name for \"%s\" too long" -msgstr "「%s」的路徑名稱太長" - -#: plugins/sudoers/policy.c:328 plugins/sudoers/testsudoers.c:268 +#: plugins/sudoers/policy.c:360 plugins/sudoers/testsudoers.c:268 msgid "unable to parse network address list" msgstr "無法解析網路位址列表" -#: plugins/sudoers/policy.c:485 +#: plugins/sudoers/policy.c:528 msgid "user name not set by sudo front-end" msgstr "sudo 前端未設定使用者名稱" -#: plugins/sudoers/policy.c:489 +#: plugins/sudoers/policy.c:532 msgid "user-ID not set by sudo front-end" msgstr "sudo 前端未設定使用者 ID (user-ID)" -#: plugins/sudoers/policy.c:493 +#: plugins/sudoers/policy.c:536 msgid "group-ID not set by sudo front-end" msgstr "sudo 前端未設定群組 ID (group-ID)" -#: plugins/sudoers/policy.c:497 +#: plugins/sudoers/policy.c:540 msgid "host name not set by sudo front-end" msgstr "sudo 前端未設定主機名稱" -#: plugins/sudoers/policy.c:670 +#: plugins/sudoers/policy.c:737 #, c-format msgid "invalid working directory: %s" msgstr "無效的工作目錄:%s" -#: plugins/sudoers/policy.c:846 +#: plugins/sudoers/policy.c:921 #, c-format msgid "invalid chroot directory: %s" msgstr "無效的 chroot 目錄:%s" -#: plugins/sudoers/policy.c:1025 plugins/sudoers/visudo.c:243 -#: plugins/sudoers/visudo.c:880 +#: plugins/sudoers/policy.c:1108 plugins/sudoers/visudo.c:259 +#: plugins/sudoers/visudo.c:906 #, c-format msgid "unable to execute %s" msgstr "無法執行 %s" -#: plugins/sudoers/policy.c:1095 plugins/sudoers/policy.c:1132 -#: plugins/sudoers/policy.c:1154 plugins/sudoers/policy.c:1180 +#: plugins/sudoers/policy.c:1178 plugins/sudoers/policy.c:1215 +#: plugins/sudoers/policy.c:1237 plugins/sudoers/policy.c:1263 #, c-format msgid "%s: invalid mode flags from sudo front end: 0x%x" msgstr "%s:來自 sudo 前端的無效 mode 旗標:0x%x" -#: plugins/sudoers/policy.c:1211 +#: plugins/sudoers/policy.c:1299 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Sudoers 策略外掛程式版本 %s\n" -#: plugins/sudoers/policy.c:1213 +#: plugins/sudoers/policy.c:1301 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Sudoers 檔案文法版本 %d\n" -#: plugins/sudoers/policy.c:1217 +#: plugins/sudoers/policy.c:1305 #, c-format msgid "" "\n" @@ -3053,27 +3100,27 @@ msgstr "" "\n" "Sudoers 路徑:%s\n" -#: plugins/sudoers/policy.c:1220 +#: plugins/sudoers/policy.c:1308 #, c-format msgid "nsswitch path: %s\n" msgstr "nsswitch 路徑:%s\n" -#: plugins/sudoers/policy.c:1222 +#: plugins/sudoers/policy.c:1310 #, c-format msgid "ldap.conf path: %s\n" msgstr "ldap.conf 路徑:%s\n" -#: plugins/sudoers/policy.c:1223 +#: plugins/sudoers/policy.c:1311 #, c-format msgid "ldap.secret path: %s\n" msgstr "ldap.secret 路徑:%s\n" -#: plugins/sudoers/policy.c:1256 +#: plugins/sudoers/policy.c:1344 #, c-format msgid "unable to register hook of type %d (version %d.%d)" msgstr "無法註冊類型為 %d 的觸發器 (版本 %d.%d)" -#: plugins/sudoers/policy.c:1274 +#: plugins/sudoers/policy.c:1362 #, c-format msgid "unable to deregister hook of type %d (version %d.%d)" msgstr "無法取消註冊類型為 %d 的觸發器 (版本 %d.%d)" @@ -3120,24 +3167,24 @@ msgstr "無法快取 %s 群組" msgid "unable to cache group %s, already exists" msgstr "無法快取群組 %s,原因:已經存在" -#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:931 -#: plugins/sudoers/pwutil.c:981 plugins/sudoers/pwutil.c:1033 +#: plugins/sudoers/pwutil.c:880 plugins/sudoers/pwutil.c:963 +#: plugins/sudoers/pwutil.c:1017 plugins/sudoers/pwutil.c:1071 #, c-format msgid "unable to cache group list for %s, already exists" msgstr "無法快取群組列表 %s,原因:已經存在" -#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:936 -#: plugins/sudoers/pwutil.c:987 plugins/sudoers/pwutil.c:1038 +#: plugins/sudoers/pwutil.c:886 plugins/sudoers/pwutil.c:968 +#: plugins/sudoers/pwutil.c:1023 plugins/sudoers/pwutil.c:1076 #, c-format msgid "unable to cache group list for %s" msgstr "無法快取 %s 的群組列表" -#: plugins/sudoers/pwutil.c:925 +#: plugins/sudoers/pwutil.c:957 #, c-format msgid "unable to parse groups for %s" msgstr "無法解析 %s 的群組" -#: plugins/sudoers/pwutil.c:1027 +#: plugins/sudoers/pwutil.c:1065 #, c-format msgid "unable to parse gids for %s" msgstr "無法解析 %s 的群組 ID" @@ -3212,257 +3259,254 @@ msgstr "無法初始化 SSS 來源。是否已在您的電腦上安裝 SSSD?" msgid "unable to find symbol \"%s\" in %s" msgstr "無法在 %2$s 中找到符號「%1$s」" -#: plugins/sudoers/sudoers.c:166 plugins/sudoers/sudoers.c:174 -#: plugins/sudoers/sudoers.c:228 plugins/sudoers/sudoers.c:249 -#: plugins/sudoers/sudoers.c:1049 -msgid "problem with defaults entries" -msgstr "預設條目有問題" +#: plugins/sudoers/sudoers.c:263 +#, c-format +msgid "unable to get defaults from %s" +msgstr "無法從 %s 取得預設值" -#: plugins/sudoers/sudoers.c:253 +#: plugins/sudoers/sudoers.c:270 msgid "no valid sudoers sources found, quitting" msgstr "未找到有效的 sudoers 來源,退出" -#: plugins/sudoers/sudoers.c:327 +#: plugins/sudoers/sudoers.c:346 #, c-format msgid "user not allowed to change root directory to %s" msgstr "不允許使用者切換根目錄至 %s" -#: plugins/sudoers/sudoers.c:329 +#: plugins/sudoers/sudoers.c:348 #, c-format msgid "you are not permitted to use the -R option with %s" msgstr "不允許您將 -R 選項與 %s 一起使用" -#: plugins/sudoers/sudoers.c:354 +#: plugins/sudoers/sudoers.c:373 #, c-format msgid "user not allowed to change directory to %s" msgstr "不允許使用者切換至 %s 目錄" -#: plugins/sudoers/sudoers.c:355 +#: plugins/sudoers/sudoers.c:374 #, c-format msgid "you are not permitted to use the -D option with %s" msgstr "不允許您將 -D 選項與 %s 一起使用" -#: plugins/sudoers/sudoers.c:382 +#: plugins/sudoers/sudoers.c:401 msgid "no command specified" msgstr "未指定命令" -#: plugins/sudoers/sudoers.c:407 +#: plugins/sudoers/sudoers.c:426 msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers 指定 root 不允許執行 sudo" -#: plugins/sudoers/sudoers.c:457 +#: plugins/sudoers/sudoers.c:483 msgid "user not allowed to override closefrom limit" msgstr "使用者不允許覆蓋 closefrom 限制" -#: plugins/sudoers/sudoers.c:458 +#: plugins/sudoers/sudoers.c:484 msgid "you are not permitted to use the -C option" msgstr "您沒有權限使用 -C 選項" -#: plugins/sudoers/sudoers.c:518 +#: plugins/sudoers/sudoers.c:544 #, c-format msgid "timestamp owner (%s): No such user" msgstr "時間戳所有者 (%s):無此使用者" -#: plugins/sudoers/sudoers.c:533 +#: plugins/sudoers/sudoers.c:559 msgid "no tty" msgstr "找不到終端" -#: plugins/sudoers/sudoers.c:534 +#: plugins/sudoers/sudoers.c:560 msgid "sorry, you must have a tty to run sudo" msgstr "抱歉,您必須先要有終端才能執行 sudo" -#: plugins/sudoers/sudoers.c:541 +#: plugins/sudoers/sudoers.c:567 #, c-format msgid "invalid shell for user %s: %s" msgstr "%s 使用者的 Shell 無效:%s" -#: plugins/sudoers/sudoers.c:624 +#: plugins/sudoers/sudoers.c:650 msgid "command in current directory" msgstr "目前目錄中的指令" -#: plugins/sudoers/sudoers.c:639 +#: plugins/sudoers/sudoers.c:665 msgid "\"cd\" is a shell built-in command, it cannot be run directly." msgstr "「cd」是 shell 內建的命令,不能直接執行。" -#: plugins/sudoers/sudoers.c:641 +#: plugins/sudoers/sudoers.c:667 msgid "the -s option may be used to run a privileged shell." msgstr "-s 選項可用來執行具特殊權限的 shell。" -#: plugins/sudoers/sudoers.c:643 +#: plugins/sudoers/sudoers.c:669 msgid "the -D option may be used to run a command in a specific directory." msgstr "-D 選項可用來在特定目錄執行命令。" -#: plugins/sudoers/sudoers.c:652 +#: plugins/sudoers/sudoers.c:678 msgid "user not allowed to set a command timeout" msgstr "使用者不允許設定命令逾時" -#: plugins/sudoers/sudoers.c:654 +#: plugins/sudoers/sudoers.c:680 msgid "sorry, you are not allowed set a command timeout" msgstr "抱歉,您沒有權限設定逾時時間" -#: plugins/sudoers/sudoers.c:662 +#: plugins/sudoers/sudoers.c:688 msgid "user not allowed to preserve the environment" msgstr "使用者不允許保留環境" -#: plugins/sudoers/sudoers.c:664 +#: plugins/sudoers/sudoers.c:690 msgid "sorry, you are not allowed to preserve the environment" msgstr "抱歉,您沒有權限保留環境" -#: plugins/sudoers/sudoers.c:1037 +#: plugins/sudoers/sudoers.c:799 +msgid "error setting user-specified environment variables" +msgstr "設定使用者指定的環境變數時發生錯誤" + +#: plugins/sudoers/sudoers.c:1112 msgid "sudoedit doesn't need to be run via sudo" msgstr "sudoedit 不用以 sudo 執行" -#: plugins/sudoers/sudoers.c:1096 plugins/sudoers/sudoreplay.c:1584 +#: plugins/sudoers/sudoers.c:1157 plugins/sudoers/sudoreplay.c:1612 #: plugins/sudoers/tsdump.c:138 #, c-format msgid "unable to read %s" msgstr "無法讀取 %s" -#: plugins/sudoers/sudoers.c:1121 plugins/sudoers/visudo.c:449 -#: plugins/sudoers/visudo.c:748 -#, c-format -msgid "unable to stat %s" -msgstr "無法 stat %s" - -#: plugins/sudoers/sudoers.c:1125 plugins/sudoers/visudo.c:1045 +#: plugins/sudoers/sudoers.c:1186 plugins/sudoers/visudo.c:1066 #, c-format msgid "%s is not a regular file" msgstr "%s 不是一般檔案" -#: plugins/sudoers/sudoers.c:1129 plugins/sudoers/timestamp.c:252 toke.l:1239 +#: plugins/sudoers/sudoers.c:1190 plugins/sudoers/timestamp.c:263 toke.l:1255 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s 由使用者 ID %u 所有,應為 %u" -#: plugins/sudoers/sudoers.c:1133 toke.l:1244 +#: plugins/sudoers/sudoers.c:1194 plugins/sudoers/timestamp.c:270 toke.l:1260 #, c-format msgid "%s is world writable" msgstr "%s 允許任何人寫入" -#: plugins/sudoers/sudoers.c:1137 toke.l:1247 +#: plugins/sudoers/sudoers.c:1198 plugins/sudoers/timestamp.c:275 toke.l:1263 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s 屬於群組 ID %u,應為 %u" -#: plugins/sudoers/sudoers.c:1170 +#: plugins/sudoers/sudoers.c:1233 #, c-format msgid "only root can use \"-c %s\"" msgstr "只有 root 才能使用「-c %s」" -#: plugins/sudoers/sudoers.c:1189 +#: plugins/sudoers/sudoers.c:1252 #, c-format msgid "unknown login class %s" msgstr "未知登入類別 %s" -#: plugins/sudoers/sudoers.c:1275 plugins/sudoers/sudoers.c:1290 +#: plugins/sudoers/sudoers.c:1339 plugins/sudoers/sudoers.c:1354 #, c-format msgid "unable to resolve host %s" msgstr "無法解析主機:%s" -#: plugins/sudoers/sudoreplay.c:259 +#: plugins/sudoers/sudoreplay.c:252 #, c-format msgid "invalid filter option: %s" msgstr "無效的過濾器選項:%s" -#: plugins/sudoers/sudoreplay.c:275 +#: plugins/sudoers/sudoreplay.c:268 #, c-format msgid "invalid max wait: %s" msgstr "無效的最大等待時間:%s" -#: plugins/sudoers/sudoreplay.c:298 +#: plugins/sudoers/sudoreplay.c:291 #, c-format msgid "invalid speed factor: %s" msgstr "無效的速度因數:%s" -#: plugins/sudoers/sudoreplay.c:333 +#: plugins/sudoers/sudoreplay.c:326 #, c-format msgid "invalid time offset %s" msgstr "時間偏移值 %s 無效" -#: plugins/sudoers/sudoreplay.c:342 +#: plugins/sudoers/sudoreplay.c:335 #, c-format msgid "%s/%.2s/%.2s/%.2s: %s" msgstr "%s/%.2s/%.2s/%.2s: %s" -#: plugins/sudoers/sudoreplay.c:347 +#: plugins/sudoers/sudoreplay.c:340 #, c-format msgid "%s/timing: %s" msgstr "%s/計時:%s" -#: plugins/sudoers/sudoreplay.c:375 +#: plugins/sudoers/sudoreplay.c:368 #, c-format msgid "Replaying sudo session: %s" msgstr "重播 sudo 工作階段:%s" -#: plugins/sudoers/sudoreplay.c:637 +#: plugins/sudoers/sudoreplay.c:634 msgid "unable to set tty to raw mode" msgstr "無法將終端設為原始 (RAW) 模式" -#: plugins/sudoers/sudoreplay.c:688 +#: plugins/sudoers/sudoreplay.c:685 msgid "Warning: your terminal is too small to properly replay the log.\n" msgstr "警告:您的終端尺寸太小,不能正常地重播記錄。\n" -#: plugins/sudoers/sudoreplay.c:689 +#: plugins/sudoers/sudoreplay.c:686 #, c-format msgid "Log geometry is %d x %d, your terminal's geometry is %d x %d." msgstr "記錄的幾何尺寸為 %dx%d,但您終端的幾何尺寸為 %dx%d。" -#: plugins/sudoers/sudoreplay.c:717 +#: plugins/sudoers/sudoreplay.c:714 msgid "Replay finished, press any key to restore the terminal." msgstr "重播完成,請按任意鍵返回終端。" -#: plugins/sudoers/sudoreplay.c:1219 plugins/sudoers/sudoreplay.c:1249 +#: plugins/sudoers/sudoreplay.c:1216 plugins/sudoers/sudoreplay.c:1246 #, c-format msgid "ambiguous expression \"%s\"" msgstr "不明確的表達式「%s」" -#: plugins/sudoers/sudoreplay.c:1271 +#: plugins/sudoers/sudoreplay.c:1268 msgid "unmatched ')' in expression" msgstr "表達式中的「)」不對稱" -#: plugins/sudoers/sudoreplay.c:1275 +#: plugins/sudoers/sudoreplay.c:1272 #, c-format msgid "unknown search term \"%s\"" msgstr "未知的搜尋詞彙「%s」" -#: plugins/sudoers/sudoreplay.c:1290 +#: plugins/sudoers/sudoreplay.c:1287 #, c-format msgid "%s requires an argument" msgstr "%s 需要參數" -#: plugins/sudoers/sudoreplay.c:1300 +#: plugins/sudoers/sudoreplay.c:1297 #, c-format msgid "could not parse date \"%s\"" msgstr "無法解析日期「%s」" -#: plugins/sudoers/sudoreplay.c:1309 +#: plugins/sudoers/sudoreplay.c:1306 msgid "unmatched '(' in expression" msgstr "表達式中的「(」不對稱" -#: plugins/sudoers/sudoreplay.c:1311 +#: plugins/sudoers/sudoreplay.c:1308 msgid "illegal trailing \"or\"" msgstr "無效的結尾字元「or」" -#: plugins/sudoers/sudoreplay.c:1313 +#: plugins/sudoers/sudoreplay.c:1310 msgid "illegal trailing \"!\"" msgstr "無效的結尾字元「!」" -#: plugins/sudoers/sudoreplay.c:1371 +#: plugins/sudoers/sudoreplay.c:1416 #, c-format msgid "unknown search type %d" msgstr "未知的搜尋類型 %d" -#: plugins/sudoers/sudoreplay.c:1651 +#: plugins/sudoers/sudoreplay.c:1678 #, c-format msgid "usage: %s [-hnRS] [-d dir] [-m num] [-s num] ID\n" msgstr "用法:%s [-hnRS] [-d 目錄] [-m 數值] [-s 數值] ID\n" -#: plugins/sudoers/sudoreplay.c:1654 +#: plugins/sudoers/sudoreplay.c:1680 #, c-format msgid "usage: %s [-h] [-d dir] -l [search expression]\n" msgstr "用法:%s [-h] [-d 目錄] -l [搜尋表達式]\n" -#: plugins/sudoers/sudoreplay.c:1663 +#: plugins/sudoers/sudoreplay.c:1694 #, c-format msgid "" "%s - replay sudo session logs\n" @@ -3471,7 +3515,7 @@ msgstr "" "%s - 重播 sudo 工作階段記錄\n" "\n" -#: plugins/sudoers/sudoreplay.c:1665 +#: plugins/sudoers/sudoreplay.c:1696 msgid "" "\n" "Options:\n" @@ -3527,132 +3571,122 @@ msgstr "" "\n" "指令不相符" -#: plugins/sudoers/timestamp.c:260 -#, c-format -msgid "%s is group writable" -msgstr "%s 允許群組寫入" - -#: plugins/sudoers/timestamp.c:328 plugins/sudoers/timestamp.c:663 +#: plugins/sudoers/timestamp.c:354 plugins/sudoers/timestamp.c:693 #, c-format msgid "unable to truncate time stamp file to %lld bytes" msgstr "無法將時間戳檔案截短為 %lld 位元組" -#: plugins/sudoers/timestamp.c:860 +#: plugins/sudoers/timestamp.c:890 msgid "ignoring time stamp from the future" msgstr "將忽略未來時間的時間戳" -#: plugins/sudoers/timestamp.c:883 +#: plugins/sudoers/timestamp.c:913 #, c-format msgid "time stamp too far in the future: %20.20s" msgstr "時間戳超前目前時間過多:%20.20s" -#: plugins/sudoers/timestamp.c:1005 +#: plugins/sudoers/timestamp.c:1042 #, c-format msgid "unable to lock time stamp file %s" msgstr "無法鎖定時間戳檔案 %s" -#: plugins/sudoers/timestamp.c:1049 plugins/sudoers/timestamp.c:1069 -#, c-format -msgid "lecture status path too long: %s/%s" -msgstr "指引狀態路徑過長:%s/%s" - #: plugins/sudoers/toke_util.c:156 msgid "sudoedit should not be specified with a path" msgstr "sudoedit 不應用路徑指定" -#: plugins/sudoers/visudo.c:238 +#: plugins/sudoers/visudo.c:254 msgid "the -x option will be removed in a future release" msgstr "未來版本會移除 -x 選項" -#: plugins/sudoers/visudo.c:240 +#: plugins/sudoers/visudo.c:256 msgid "please consider using the cvtsudoers utility instead" msgstr "請考慮換用 cvtsudoers 工具" -#: plugins/sudoers/visudo.c:292 plugins/sudoers/visudo.c:676 +#: plugins/sudoers/visudo.c:311 plugins/sudoers/visudo.c:702 #, c-format msgid "press return to edit %s: " msgstr "按確認鍵編輯 %s:" -#: plugins/sudoers/visudo.c:307 +#: plugins/sudoers/visudo.c:326 #, c-format msgid "contents of edit session left in %s" msgstr "編輯階段的內容留在 %s" -#: plugins/sudoers/visudo.c:361 +#: plugins/sudoers/visudo.c:403 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "指定的編輯器 (%s) 不存在" -#: plugins/sudoers/visudo.c:363 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "no editor found (editor path = %s)" msgstr "未找到編輯器 (編輯器路徑 = %s)" -#: plugins/sudoers/visudo.c:469 plugins/sudoers/visudo.c:477 +#: plugins/sudoers/visudo.c:495 plugins/sudoers/visudo.c:774 +#, c-format +msgid "unable to stat %s" +msgstr "無法 stat %s" + +#: plugins/sudoers/visudo.c:515 plugins/sudoers/visudo.c:523 msgid "write error" msgstr "寫入時發生錯誤" -#: plugins/sudoers/visudo.c:523 +#: plugins/sudoers/visudo.c:569 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "無法 stat 暫存檔 (%s),%s 未變更" -#: plugins/sudoers/visudo.c:530 +#: plugins/sudoers/visudo.c:576 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "暫存檔內沒有內容 (%s),%s 未變更" -#: plugins/sudoers/visudo.c:536 +#: plugins/sudoers/visudo.c:582 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "編輯器 (%s) 執行失敗,%s 未變更" -#: plugins/sudoers/visudo.c:558 +#: plugins/sudoers/visudo.c:604 #, c-format msgid "%s unchanged" msgstr "%s 未變更" -#: plugins/sudoers/visudo.c:615 +#: plugins/sudoers/visudo.c:649 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "無法重新開啟暫存檔 (%s),%s 未變更。" -#: plugins/sudoers/visudo.c:627 +#: plugins/sudoers/visudo.c:662 #, c-format msgid "unable to parse temporary file (%s), unknown error" msgstr "無法解析暫存檔 (%s),未知錯誤" -#: plugins/sudoers/visudo.c:665 -#, c-format -msgid "internal error, unable to find %s in list!" -msgstr "內部錯誤,原因:列表中找不到 %s!" - -#: plugins/sudoers/visudo.c:722 plugins/sudoers/visudo.c:752 -#: plugins/sudoers/visudo.c:759 +#: plugins/sudoers/visudo.c:748 plugins/sudoers/visudo.c:778 +#: plugins/sudoers/visudo.c:785 #, c-format msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "無法將 %s 的 (uid, gid) 設為 (%u, %u)" -#: plugins/sudoers/visudo.c:787 +#: plugins/sudoers/visudo.c:813 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s 和 %s 不在同一個檔案系統,將使用 mv 進行重新命名" -#: plugins/sudoers/visudo.c:798 +#: plugins/sudoers/visudo.c:824 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "指令失敗:「%s %s %s」,%s 未變更" -#: plugins/sudoers/visudo.c:805 +#: plugins/sudoers/visudo.c:831 #, c-format msgid "error renaming %s, %s unchanged" msgstr "重新命名 %s 發生錯誤,%s 未變更" -#: plugins/sudoers/visudo.c:825 +#: plugins/sudoers/visudo.c:851 msgid "What now? " msgstr "現在該做些什麼?" -#: plugins/sudoers/visudo.c:839 +#: plugins/sudoers/visudo.c:865 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -3664,41 +3698,41 @@ msgstr "" " 退出,不儲存對 sudoers 檔案的變更 (x)\n" " 退出並將變更儲存到 sudoers 檔案(十分危險!)(Q)\n" -#: plugins/sudoers/visudo.c:885 +#: plugins/sudoers/visudo.c:911 #, c-format msgid "unable to run %s" msgstr "無法執行 %s" -#: plugins/sudoers/visudo.c:916 +#: plugins/sudoers/visudo.c:942 #, c-format msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "%s:所有者無效,(uid, gid) 應為 (%u, %u)\n" -#: plugins/sudoers/visudo.c:927 +#: plugins/sudoers/visudo.c:953 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s:權限不正確,模式應該是 0%o\n" -#: plugins/sudoers/visudo.c:978 plugins/sudoers/visudo.c:985 +#: plugins/sudoers/visudo.c:999 plugins/sudoers/visudo.c:1006 #, c-format msgid "%s: parsed OK\n" msgstr "%s:解析正確\n" -#: plugins/sudoers/visudo.c:1004 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "%s busy, try again later" msgstr "%s 忙碌中,請稍後重試" -#: plugins/sudoers/visudo.c:1008 +#: plugins/sudoers/visudo.c:1029 msgid "Edit anyway? [y/N]" msgstr "仍然編輯?[y/N]" -#: plugins/sudoers/visudo.c:1104 +#: plugins/sudoers/visudo.c:1130 #, c-format msgid "Warning: %s:%d:%d: unused %s \"%s\"" msgstr "警告:%s:%d:%d: %s「%s」未使用" -#: plugins/sudoers/visudo.c:1220 +#: plugins/sudoers/visudo.c:1242 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -3707,25 +3741,27 @@ msgstr "" "%s - 安全地編輯 sudoers 檔案\n" "\n" -#: plugins/sudoers/visudo.c:1222 +#: plugins/sudoers/visudo.c:1244 msgid "" "\n" "Options:\n" " -c, --check check-only mode\n" " -f, --file=sudoers specify sudoers file location\n" " -h, --help display help message and exit\n" +" -I, --no-includes do not edit include files\n" " -q, --quiet less verbose (quiet) syntax error messages\n" " -s, --strict strict syntax checking\n" " -V, --version display version information and exit\n" msgstr "" "\n" "選項:\n" -" -c, --check 純檢查模式\n" -" -f, --file=sudoers 指定 sudoers 檔的位置\n" -" -h, --help 顯示說明訊息並退出\n" -" -q, --quiet 不詳細(不輸出)的語法錯誤訊息\n" -" -s, --strict 嚴格語法檢查\n" -" -V, --version 顯示版本訊息並退出\n" +" -c, --check 純檢查模式\n" +" -f, --file=sudoers 指定 sudoers 檔的位置\n" +" -h, --help 顯示說明訊息並退出\n" +" -I, --no-includes 不要編輯 include 檔案\n" +" -q, --quiet 不詳細(不輸出)的語法錯誤訊息\n" +" -s, --strict 嚴格語法檢查\n" +" -V, --version 顯示版本訊息並退出\n" #: toke.l:189 msgid "empty string" @@ -3751,14 +3787,86 @@ msgstr "無效的行接續符號" msgid "invalid IPv6 address" msgstr "無效的 IPv6 地址" -#: toke.l:860 +#: toke.l:876 msgid "unexpected line break in string" msgstr "字串中有非預期的斷行字元" -#: toke.l:1210 +#: toke.l:1226 msgid "too many levels of includes" msgstr "include 嵌套層數過多" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s 必須由使用者 ID %d 所有" + +#~ msgid "%s must only be writable by owner" +#~ msgstr "%s 必須只允許所有者可寫" + +#~ msgid "Warning: %s:%d:%d: cycle in %s \"%s\"" +#~ msgstr "警告:%s:%d:%d: %s「%s」中有循環" + +#~ msgid "Warning: %s:%d:%d: %s \"%s\" referenced but not defined" +#~ msgstr "警告:%s:%d:%d: 已引用但未定義 %s「%s」" + +#~ msgid "parse error in %s near line %d\n" +#~ msgstr "因接近行 %2$d 的 %1$s 字串而導致解析錯誤\n" + +#~ msgid "parse error in %s\n" +#~ msgstr "因 %s 導致解析錯誤\n" + +#~ msgid "%s: unknown defaults entry \"%s\"" +#~ msgstr "%s:未知的預設條目「%s」" + +#~ msgid "%s:%d:%d: no value specified for \"%s\"" +#~ msgstr "%s:%d:%d: 沒有指定「%s」的值" + +#~ msgid "%s:%d:%d: invalid operator \"%c=\" for \"%s\"" +#~ msgstr "%1$s:%2$d:%3$d: 「%5$s」的運算子「%4$c=」無效" + +#~ msgid "%s:%d:%d: option \"%s\" does not take a value" +#~ msgstr "%s:%d:%d: 「%s」選項不帶值" + +#~ msgid "%s:%d:%d: invalid Defaults type 0x%x for option \"%s\"" +#~ msgstr "%1$s:%2$d:%3$d: 選項「%5$s」的預設 (Defaults) 類型 0x%4$x 無效" + +#~ msgid "%s:%d:%d: value \"%s\" is invalid for option \"%s\"" +#~ msgstr "%s:%d:%d: 「%s」值對「%s」選項無效" + +#~ msgid "%s:%d:%d: path name for \"%s\" too long" +#~ msgstr "%s:%d:%d: 「%s」的路徑名稱過長" + +#~ msgid "%s: path name for \"%s\" too long" +#~ msgstr "%s:「%s」的路徑名稱過長" + +#~ msgid "%s:%d:%d: values for \"%s\" must start with a '/', '~', or '*'" +#~ msgstr "%s:%d:%d: \"%s\" 的值開頭必須是 '/'、'~' 或 '*'" + +#~ msgid "%s:%d:%d: values for \"%s\" must start with a '/'" +#~ msgstr "%s:%d:%d: \"%s\" 的值開頭必須是 '/'" + +#~ msgid "parse error in %s near line %d" +#~ msgstr "解析接近第 %2$d 行的 %1$s 時發生錯誤" + +#~ msgid "parse error in %s" +#~ msgstr "解析 %s 中的內容時發生錯誤" + +#~ msgid "SELinux RBAC is not supported when intercept mode is enabled" +#~ msgstr "不支援在啟用攔截模式時使用 SELinux RBAC" + +#~ msgid "SELinux RBAC is not supported when the log_subcmds flag is enabled" +#~ msgstr "不支援在啟用 log_subcmds 旗標時使用 SELinux RBAC" + +#~ msgid "problem with defaults entries" +#~ msgstr "預設條目有問題" + +#~ msgid "%s is group writable" +#~ msgstr "%s 允許群組寫入" + +#~ msgid "lecture status path too long: %s/%s" +#~ msgstr "指引狀態路徑過長:%s/%s" + +#~ msgid "internal error, unable to find %s in list!" +#~ msgstr "內部錯誤,原因:列表中找不到 %s!" + #~ msgid "%s is not in the sudoers file. This incident will be reported.\n" #~ msgstr "%s 不在 sudoers 檔案中。此事件將會回報。\n" @@ -3771,9 +3879,6 @@ msgstr "include 嵌套層數過多" #~ msgid "unable to read diffie-hellman parameters: %s" #~ msgstr "無法讀取 Diffie-Hellman 參數:%s" -#~ msgid "unknown defaults entry \"%s\"" -#~ msgstr "預設項目「%s」未知" - #~ msgid "%s:%d unknown key: %s" #~ msgstr "%s:%d 未知鍵:%s" diff --git a/plugins/sudoers/policy.c b/plugins/sudoers/policy.c index 2a6a76e0a5..23eb4ae8d1 100644 --- a/plugins/sudoers/policy.c +++ b/plugins/sudoers/policy.c @@ -51,13 +51,13 @@ struct sudoers_exec_args { static unsigned int sudo_version; static const char *interfaces_string; -bool sudoers_recovery = true; sudo_conv_t sudo_conv; sudo_printf_t sudo_printf; struct sudo_plugin_event * (*plugin_event_alloc)(void); const char *path_ldap_conf = _PATH_LDAP_CONF; const char *path_ldap_secret = _PATH_LDAP_SECRET; static bool session_opened; +int sudoedit_nfiles; extern sudo_dso_public struct policy_plugin sudoers_policy; @@ -189,6 +189,7 @@ sudoers_policy_deserialize_info(void *v, struct defaults_list *defaults) /* Parse command line settings. */ sudo_user.flags = 0; user_closefrom = -1; + sudoedit_nfiles = 0; sudo_mode = 0; for (cur = info->settings; *cur != NULL; cur++) { if (MATCHES(*cur, "closefrom=")) { @@ -653,7 +654,7 @@ sudoers_policy_store_result(bool accepted, char *argv[], char *envp[], } /* Increase the length of command_info as needed, it is *not* checked. */ - command_info = calloc(72, sizeof(char *)); + command_info = calloc(73, sizeof(char *)); if (command_info == NULL) goto oom; @@ -715,6 +716,11 @@ sudoers_policy_store_result(bool accepted, char *argv[], char *envp[], if (ISSET(sudo_mode, MODE_EDIT)) { if ((command_info[info_len++] = strdup("sudoedit=true")) == NULL) goto oom; + if (sudoedit_nfiles > 0) { + if (asprintf(&command_info[info_len++], "sudoedit_nfiles=%d", + sudoedit_nfiles) == -1) + goto oom; + } if (!def_sudoedit_checkdir) { if ((command_info[info_len++] = strdup("sudoedit_checkdir=false")) == NULL) goto oom; diff --git a/plugins/sudoers/pwutil.c b/plugins/sudoers/pwutil.c index 0ec7185937..0dd89685e1 100644 --- a/plugins/sudoers/pwutil.c +++ b/plugins/sudoers/pwutil.c @@ -907,7 +907,7 @@ sudo_debug_group_list(const char *user, char * const *groups, int level) size_t i, len = 0; debug_decl(sudo_debug_group_list, SUDOERS_DEBUG_NSS); - if (!sudo_debug_needed(level)) + if (groups == NULL || !sudo_debug_needed(level)) debug_return; for (i = 0; groups[i] != NULL; i++) { diff --git a/plugins/sudoers/regress/corpus/seed/ldif/invalid_b64.ldif b/plugins/sudoers/regress/corpus/seed/ldif/invalid_b64.ldif new file mode 100644 index 0000000000..b8c7b9934d --- /dev/null +++ b/plugins/sudoers/regress/corpus/seed/ldif/invalid_b64.ldif @@ -0,0 +1,33 @@ +# defaults, SUDOers, sudo.ws +dn:: Y249ZGVmYXVsdHMsb3U9U1VET2VycyxkYz1zdWRvLGRjPXdz +objectClass: top +objectClass: sudoRole +cn: defaults +description: Default sudoOption's go here +sudoOption:: bG9nX29@1dHB1dA== + +# root, SUDOers, sudo.ws +dn:: Y249cm9vdCxvdT1TVURPZXJzLGRjPXN1ZG8sZGM9_d3M= +objectClass: top +objectClass: sudoRole +cn: root +sudoUser: root +sudoRunAsUser: ALL +sudoRunAsGroup: ALL +sudoHost: ALL +sudoCommand: ALL +sudoOption: !authenticate +sudoOrder: 10 + +# %wheel, SUDOers, sudo.ws +dn:: Y249JXdoZWVsLG91PVNVRE9lcnMsZGM9c3VkbyxkYz13cw!== +objectClass: top +objectClass: sudoRole +cn: %wheel +sudoUser: %wheel +sudoRunAsUser: ALL +sudoRunAsGroup: ALL +sudoHost: +sudo-hosts +sudoCommand: ALL +sudoOption: !authenticate +sudoOrder: 10 diff --git a/plugins/sudoers/regress/corpus/seed/ldif/pr196.ldif b/plugins/sudoers/regress/corpus/seed/ldif/pr196.ldif new file mode 100644 index 0000000000..78c150a573 --- /dev/null +++ b/plugins/sudoers/regress/corpus/seed/ldif/pr196.ldif @@ -0,0 +1,6 @@ +# Exercise the fix for https://github.com/sudo-project/sudo/pull/169 +# +# If the last byte of the input file was a backslash, the parser would +# read past the end of the buffer. +# +dn: cn= Manager\ \ No newline at end of file diff --git a/plugins/sudoers/regress/corpus/seed/ldif/sample.ldif b/plugins/sudoers/regress/corpus/seed/ldif/sample.ldif new file mode 100644 index 0000000000..81474a1f42 --- /dev/null +++ b/plugins/sudoers/regress/corpus/seed/ldif/sample.ldif @@ -0,0 +1,295 @@ +# LDIF version of the example sudoers file + +# Unable to translate ./examples/sudoers:12:17: +# Defaults>root !set_logname + +# Unable to translate ./examples/sudoers:16:24: +# Defaults!/usr/bin/more, /usr/bin/pg, /usr/bin/less noexec + +dn: cn=defaults,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: defaults +description: Default sudoOption's go here +sudoOption: syslog=auth +sudoOption: runcwd=~ + +dn: cn=root,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: root +sudoUser: root +sudoHost: ALL +sudoRunAsUser: ALL +sudoRunAsGroup: ALL +sudoCommand: ALL +sudoOrder: 1 + +dn: cn=%wheel,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: %wheel +sudoUser: %wheel +sudoHost: ALL +sudoRunAsUser: ALL +sudoRunAsGroup: ALL +sudoCommand: ALL +sudoOrder: 2 + +dn: cn=FULLTIMERS,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: FULLTIMERS +sudoUser: millert +sudoUser: mikef +sudoUser: dowdy +sudoHost: ALL +sudoRunAsUser: ALL +sudoRunAsGroup: ALL +sudoOption: !authenticate +sudoOption: !lecture +sudoOption: !runchroot=* +sudoCommand: ALL +sudoOrder: 3 + +dn: cn=PARTTIMERS,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: PARTTIMERS +sudoUser: bostley +sudoUser: jwfox +sudoUser: crawl +sudoHost: ALL +sudoCommand: ALL +sudoOrder: 4 + +dn: cn=jack,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: jack +sudoUser: jack +sudoHost: 128.138.243.0 +sudoHost: 128.138.204.0/24 +sudoHost: 128.138.242.0 +sudoCommand: ALL +sudoOrder: 5 + +dn: cn=lisa,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: lisa +sudoUser: lisa +sudoHost: 128.138.0.0/255.255.0.0 +sudoCommand: ALL +sudoOrder: 6 + +dn: cn=operator,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: operator +sudoUser: operator +sudoHost: ALL +sudoCommand: /usr/sbin/dump +sudoCommand: /usr/sbin/rdump +sudoCommand: /usr/sbin/restore +sudoCommand: /usr/sbin/rrestore +sudoCommand: /usr/bin/mt +sudoCommand: sha224:0GomF8mNN3wlDt1HD9XldjJ3SNgpFdbjO1+NsQ== /home/operator/bin/start_backups +sudoCommand: /usr/bin/kill +sudoCommand: /usr/bin/top +sudoCommand: /usr/sbin/shutdown +sudoCommand: /usr/sbin/halt +sudoCommand: /usr/sbin/reboot +sudoCommand: /usr/sbin/lpc +sudoCommand: /usr/bin/lprm +sudoCommand: sudoedit /etc/printcap +sudoCommand: /usr/oper/bin/ +sudoOrder: 7 + +dn: cn=joe,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: joe +sudoUser: joe +sudoHost: ALL +sudoCommand: /usr/bin/su operator +sudoOrder: 8 + +dn: cn=pete,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: pete +sudoUser: pete +sudoHost: boa +sudoHost: nag +sudoHost: python +sudoCommand: /usr/bin/passwd ^[a-zA-Z0-9_]+$ +sudoCommand: !/usr/bin/passwd root +sudoOrder: 9 + +dn: cn=bob,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: bob +sudoUser: bob +sudoHost: bigtime +sudoHost: eclipse +sudoHost: moet +sudoHost: anchor +sudoRunAsUser: root +sudoRunAsUser: operator +sudoCommand: ALL +sudoOrder: 10 + +dn: cn=bob_1,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: bob_1 +sudoUser: bob +sudoHost: grolsch +sudoHost: dandelion +sudoHost: black +sudoRunAsUser: root +sudoRunAsUser: operator +sudoCommand: ALL +sudoOrder: 11 + +dn: cn=jim,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: jim +sudoUser: jim +sudoHost: +biglab +sudoCommand: ALL +sudoOrder: 12 + +dn: cn=\+secretaries,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: \+secretaries +sudoUser: +secretaries +sudoHost: ALL +sudoCommand: /usr/sbin/lpc +sudoCommand: /usr/bin/lprm +sudoCommand: /usr/bin/adduser +sudoCommand: /usr/bin/rmuser +sudoOrder: 13 + +dn: cn=fred,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: fred +sudoUser: fred +sudoHost: ALL +sudoRunAsUser: oracle +sudoRunAsUser: sybase +sudoOption: !authenticate +sudoCommand: ALL +sudoOrder: 14 + +dn: cn=john,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: john +sudoUser: john +sudoHost: widget +sudoHost: thalamus +sudoHost: foobar +sudoCommand: /usr/bin/su ^[a-zA-Z0-9_]+$ +sudoCommand: !/usr/bin/su root +sudoOrder: 15 + +dn: cn=jen,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: jen +sudoUser: jen +sudoHost: ALL +sudoHost: !primary +sudoHost: !mail +sudoHost: !www +sudoHost: !ns +sudoCommand: ALL +sudoOrder: 16 + +dn: cn=jill,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: jill +sudoUser: jill +sudoHost: primary +sudoHost: mail +sudoHost: www +sudoHost: ns +sudoOption: log_year +sudoOption: logfile=/var/log/sudo.log +sudoCommand: /usr/bin/ +sudoCommand: !/usr/bin/su +sudoCommand: !/sbin/sh +sudoCommand: !/usr/bin/sh +sudoCommand: !/usr/bin/csh +sudoCommand: !/usr/bin/ksh +sudoCommand: !/usr/local/bin/tcsh +sudoCommand: !/usr/bin/rsh +sudoCommand: !/usr/local/bin/zsh +sudoOrder: 17 + +dn: cn=steve,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: steve +sudoUser: steve +sudoHost: 128.138.243.0 +sudoHost: 128.138.204.0/24 +sudoHost: 128.138.242.0 +sudoRunAsUser: operator +sudoCommand: /usr/local/op_commands/ +sudoOrder: 18 + +dn: cn=matt,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: matt +sudoUser: matt +sudoHost: valkyrie +sudoCommand: /usr/bin/kill +sudoCommand: /usr/bin/top +sudoOrder: 19 + +dn: cn=WEBADMIN,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: WEBADMIN +sudoUser: will +sudoUser: wendy +sudoUser: wim +sudoHost: www +sudoRunAsUser: www +sudoCommand: ALL +sudoOrder: 20 + +dn: cn=WEBADMIN_1,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: WEBADMIN_1 +sudoUser: will +sudoUser: wendy +sudoUser: wim +sudoHost: www +sudoRunAsUser: root +sudoCommand: /usr/bin/su www +sudoOrder: 21 + +dn: cn=ALL,ou=SUDOers,dc=sudo,dc=ws +objectClass: top +objectClass: sudoRole +cn: ALL +sudoUser: ALL +sudoHost: orion +sudoHost: perseus +sudoHost: hercules +sudoOption: !authenticate +sudoCommand: /sbin/umount /CDROM +sudoCommand: /sbin/mount -o nosuid,nodev /dev/cd0a /CDROM +sudoOrder: 22 + diff --git a/plugins/sudoers/regress/corpus/seed/ldif/valid_b64.ldif b/plugins/sudoers/regress/corpus/seed/ldif/valid_b64.ldif new file mode 100644 index 0000000000..d17e6707d9 --- /dev/null +++ b/plugins/sudoers/regress/corpus/seed/ldif/valid_b64.ldif @@ -0,0 +1,44 @@ +# defaults, SUDOers, sudo.ws +dn:: Y249ZGVmYXVsdHMsb3U9U1VET2VycyxkYz1zdWRvLGRjPXdz +objectClass: top +objectClass: sudoRole +cn: defaults +description: Default sudoOption's go here +sudoOption:: bG9nX291dHB1dA== + +# root, SUDOers, sudo.ws +dn:: Y249cm9vdCxvdT1TVURPZXJzLGRjPXN1ZG8sZGM9d3M= +objectClass: top +objectClass: sudoRole +cn: root +sudoUser: root +sudoRunAsUser: ALL +sudoRunAsGroup: ALL +sudoHost: ALL +sudoCommand: ALL +sudoOption: !authenticate +sudoOrder: 10 + +# %wheel, SUDOers, sudo.ws +dn:: Y249JXdoZWVsLG91PVNVRE9lcnMsZGM9c3VkbyxkYz13cw== +objectClass: top +objectClass: sudoRole +cn: %wheel +sudoUser: %wheel +sudoRunAsUser: ALL +sudoRunAsGroup: ALL +sudoHost: +sudo-hosts +sudoCommand: ALL +sudoOption: !authenticate +sudoOrder: 10 + +# millert, SUDOers, other-domain.com +dn:: Y249bWlsbGVydCxvdT1TVURPZXJzLGRjPW90aGVyLWRvbWFpbixkYz1jb20= +objectClass: top +objectClass: sudoRole +cn: millert +sudoUser: millert +sudoRunAsUser: ALL +sudoRunAsGroup: ALL +sudoHost: ALL +sudoOrder: 5 diff --git a/plugins/sudoers/regress/cvtsudoers/test28.sh b/plugins/sudoers/regress/cvtsudoers/test28.sh index 0d62ace4f1..e90235584f 100755 --- a/plugins/sudoers/regress/cvtsudoers/test28.sh +++ b/plugins/sudoers/regress/cvtsudoers/test28.sh @@ -5,7 +5,7 @@ : ${CVTSUDOERS=cvtsudoers} -$CVTSUDOERS -c "" -i ldif -f sudoers </dev/null; then if [ $verbose -eq 1 ]; then echo "$group/$test (stderr): OK" diff --git a/plugins/sudoers/regress/serialize_list/check_serialize_list.c b/plugins/sudoers/regress/serialize_list/check_serialize_list.c index c27e0a1903..422a3b074a 100644 --- a/plugins/sudoers/regress/serialize_list/check_serialize_list.c +++ b/plugins/sudoers/regress/serialize_list/check_serialize_list.c @@ -60,6 +60,7 @@ test_serialize_list(int *ntests_out, int *errors_out) } done: + free(result); *ntests_out = ntests; *errors_out = errors; } diff --git a/plugins/sudoers/regress/visudo/test3.sh b/plugins/sudoers/regress/visudo/test3.sh index e556e6326b..d219f56814 100755 --- a/plugins/sudoers/regress/visudo/test3.sh +++ b/plugins/sudoers/regress/visudo/test3.sh @@ -1,7 +1,7 @@ #!/bin/sh # # Sudo Bug 361: -# Excerises a bug in the redblack tree code. +# Exercises a bug in the redblack tree code. # : ${VISUDO=visudo} diff --git a/plugins/sudoers/starttime.c b/plugins/sudoers/starttime.c index daee5fde15..52ebac14bb 100644 --- a/plugins/sudoers/starttime.c +++ b/plugins/sudoers/starttime.c @@ -33,7 +33,7 @@ #include #if defined(HAVE_KINFO_PROC_44BSD) || defined (HAVE_KINFO_PROC_OPENBSD) || defined(HAVE_KINFO_PROC2_NETBSD) # include -#elif defined(HAVE_KINFO_PROC_FREEBSD) +#elif defined(HAVE_KINFO_PROC_FREEBSD) || defined(HAVE_KINFO_PROC_DFLY) # include # include # include @@ -70,7 +70,7 @@ # define SUDO_KERN_PROC KERN_PROC # define sudo_kinfo_proc kinfo_proc # define sudo_kp_namelen 6 -#elif defined(HAVE_KINFO_PROC_FREEBSD) || defined(HAVE_KINFO_PROC_44BSD) +#elif defined(HAVE_KINFO_PROC_FREEBSD) || defined(HAVE_KINFO_PROC_DFLY) || defined(HAVE_KINFO_PROC_44BSD) # define SUDO_KERN_PROC KERN_PROC # define sudo_kinfo_proc kinfo_proc # define sudo_kp_namelen 4 @@ -113,8 +113,11 @@ get_starttime(pid_t pid, struct timespec *starttime) } if (rc != -1) { #if defined(HAVE_KINFO_PROC_FREEBSD) - /* FreeBSD and Dragonfly */ + /* FreeBSD. */ TIMEVAL_TO_TIMESPEC(&ki_proc->ki_start, starttime); +#elif defined(HAVE_KINFO_PROC_DFLY) + /* Dragonfly. */ + TIMEVAL_TO_TIMESPEC(&ki_proc->kp_start, starttime); #elif defined(HAVE_KINFO_PROC_44BSD) /* 4.4BSD and macOS */ TIMEVAL_TO_TIMESPEC(&ki_proc->kp_proc.p_starttime, starttime); diff --git a/plugins/sudoers/strvec_join.c b/plugins/sudoers/strvec_join.c index 240e0938c3..ae209eb916 100644 --- a/plugins/sudoers/strvec_join.c +++ b/plugins/sudoers/strvec_join.c @@ -68,7 +68,7 @@ strvec_join(char *const argv[], char sep, size_t (*cpy)(char *, const char *, si *dst++ = sep; size--; } - *--dst = '\0'; + dst[-1] = '\0'; debug_return_str(result); } diff --git a/plugins/sudoers/sudoers.c b/plugins/sudoers/sudoers.c index 4b9e7963ee..9ae5f96c6e 100644 --- a/plugins/sudoers/sudoers.c +++ b/plugins/sudoers/sudoers.c @@ -442,14 +442,21 @@ sudoers_policy_main(int argc, char * const argv[], int pwflag, char *env_add[], sudoers_gc_remove(GC_PTR, NewArgv); free(NewArgv); } - NewArgc = argc; - NewArgv = reallocarray(NULL, NewArgc + 2, sizeof(char *)); + NewArgv = reallocarray(NULL, argc + 2, sizeof(char *)); if (NewArgv == NULL) { sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory")); goto done; } sudoers_gc_add(GC_PTR, NewArgv); - memcpy(NewArgv, argv, argc * sizeof(char *)); + if (ISSET(sudo_mode, MODE_CHECK)) { + /* For "sudo -l [-U otheruser] command" */ + NewArgv[0] = (char *)"list"; + memcpy(NewArgv + 1, argv, argc * sizeof(char *)); + NewArgc = argc + 1; + } else { + memcpy(NewArgv, argv, argc * sizeof(char *)); + NewArgc = argc; + } NewArgv[NewArgc] = NULL; if (ISSET(sudo_mode, MODE_LOGIN_SHELL) && runas_pw != NULL) { NewArgv[0] = strdup(runas_pw->pw_shell); @@ -646,8 +653,8 @@ sudoers_policy_main(int argc, char * const argv[], int pwflag, char *env_add[], } else if (cmnd_status == NOT_FOUND) { if (ISSET(sudo_mode, MODE_CHECK)) { audit_failure(NewArgv, N_("%s: command not found"), - NewArgv[0]); - sudo_warnx(U_("%s: command not found"), NewArgv[0]); + NewArgv[1]); + sudo_warnx(U_("%s: command not found"), NewArgv[1]); } else { audit_failure(NewArgv, N_("%s: command not found"), user_cmnd); @@ -787,8 +794,11 @@ sudoers_policy_main(int argc, char * const argv[], int pwflag, char *env_add[], } /* Insert user-specified environment variables. */ - if (!insert_env_vars(sudo_user.env_vars)) + if (!insert_env_vars(sudo_user.env_vars)) { + sudo_warnx("%s", + U_("error setting user-specified environment variables")); goto done; + } /* Note: must call audit before uid change. */ if (ISSET(sudo_mode, MODE_EDIT)) { @@ -796,8 +806,9 @@ sudoers_policy_main(int argc, char * const argv[], int pwflag, char *env_add[], char **edit_argv; int edit_argc; + sudoedit_nfiles = NewArgc - 1; free(safe_cmnd); - safe_cmnd = find_editor(NewArgc - 1, NewArgv + 1, &edit_argc, + safe_cmnd = find_editor(sudoedit_nfiles, NewArgv + 1, &edit_argc, &edit_argv, NULL, &env_editor); if (safe_cmnd == NULL) { switch (errno) { @@ -857,6 +868,9 @@ sudoers_policy_main(int argc, char * const argv[], int pwflag, char *env_add[], if (ret == -1) { /* Free stashed copy of the environment. */ (void)env_init(NULL); + + /* Free locally-allocated strings. */ + free(iolog_path); } else { /* Store settings to pass back to front-end. */ if (!sudoers_policy_store_result(ret, NewArgv, env_get(), cmnd_umask, @@ -981,31 +995,45 @@ init_vars(char * const envp[]) int set_cmnd_path(const char *runchroot) { + const char *cmnd_in; + char *cmnd_out = NULL; char *path = user_path; int ret; debug_decl(set_cmnd_path, SUDOERS_DEBUG_PLUGIN); + cmnd_in = ISSET(sudo_mode, MODE_CHECK) ? NewArgv[1] : NewArgv[0]; + + free(list_cmnd); + list_cmnd = NULL; free(user_cmnd); user_cmnd = NULL; if (def_secure_path && !user_is_exempt()) path = def_secure_path; if (!set_perms(PERM_RUNAS)) - debug_return_int(NOT_FOUND_ERROR); - ret = find_path(NewArgv[0], &user_cmnd, user_stat, path, + goto error; + ret = find_path(cmnd_in, &cmnd_out, user_stat, path, runchroot, def_ignore_dot, NULL); if (!restore_perms()) - debug_return_int(NOT_FOUND_ERROR); + goto error; if (ret == NOT_FOUND) { /* Failed as root, try as invoking user. */ if (!set_perms(PERM_USER)) - debug_return_int(false); - ret = find_path(NewArgv[0], &user_cmnd, user_stat, path, + goto error; + ret = find_path(cmnd_in, &cmnd_out, user_stat, path, runchroot, def_ignore_dot, NULL); if (!restore_perms()) - debug_return_int(NOT_FOUND_ERROR); + goto error; } + if (ISSET(sudo_mode, MODE_CHECK)) + list_cmnd = cmnd_out; + else + user_cmnd = cmnd_out; + debug_return_int(ret); +error: + free(cmnd_out); + debug_return_int(NOT_FOUND_ERROR); } /* @@ -1869,6 +1897,7 @@ sudo_user_free(void) free(user_runhost); free(user_cmnd); free(user_args); + free(list_cmnd); free(safe_cmnd); free(saved_cmnd); free(user_stat); diff --git a/plugins/sudoers/sudoers.h b/plugins/sudoers/sudoers.h index cd92707448..df60627c12 100644 --- a/plugins/sudoers/sudoers.h +++ b/plugins/sudoers/sudoers.h @@ -102,6 +102,7 @@ struct sudo_user { char *cmnd; char *cmnd_args; char *cmnd_base; + char *cmnd_list; char *cmnd_safe; char *cmnd_saved; char *class_name; @@ -248,6 +249,7 @@ struct sudo_user { #define user_runhost (sudo_user.runhost) #define user_srunhost (sudo_user.srunhost) #define user_ccname (sudo_user.krb5_ccname) +#define list_cmnd (sudo_user.cmnd_list) #define safe_cmnd (sudo_user.cmnd_safe) #define saved_cmnd (sudo_user.cmnd_saved) #define cmnd_fd (sudo_user.execfd) @@ -431,6 +433,7 @@ extern struct sudo_user sudo_user; extern struct passwd *list_pw; extern bool force_umask; extern int sudo_mode; +extern int sudoedit_nfiles; extern uid_t timestamp_uid; extern gid_t timestamp_gid; extern sudo_conv_t sudo_conv; diff --git a/plugins/sudoers/sudoers_version.h b/plugins/sudoers/sudoers_version.h index dada64988b..ecb2b217eb 100644 --- a/plugins/sudoers/sudoers_version.h +++ b/plugins/sudoers/sudoers_version.h @@ -69,12 +69,13 @@ * 46 sudo 1.8.20, added TIMEOUT, NOTBEFORE and NOTAFTER options. * 47 sudo 1.9.0, Cmd_Alias treated as Cmnd_Alias, support for multiple digests per command and for ALL. * 48 sudo 1.9.1, @include and @includedir, include path escaping/quoting. - * 49 sudo 1.9.3, CWD and CHROOT options. + * 49 sudo 1.9.3, added CWD and CHROOT options. + * 50 sudo 1.9.13, added the list pseudo-command. */ #ifndef SUDOERS_VERSION_H #define SUDOERS_VERSION_H -#define SUDOERS_GRAMMAR_VERSION 48 +#define SUDOERS_GRAMMAR_VERSION 50 #endif /* SUDOERS_VERSION_H */ diff --git a/plugins/sudoers/sudoreplay.c b/plugins/sudoers/sudoreplay.c index f7c3743c3b..0f068f05c3 100644 --- a/plugins/sudoers/sudoreplay.c +++ b/plugins/sudoers/sudoreplay.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2009-2021 Todd C. Miller + * Copyright (c) 2009-2023 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -62,6 +62,7 @@ #include "sudo_debug.h" #include "sudo_event.h" #include "sudo_eventlog.h" +#include "sudo_lbuf.h" #include "sudo_fatal.h" #include "sudo_gettext.h" #include "sudo_iolog.h" @@ -175,8 +176,6 @@ extern time_t get_date(char *); static int list_sessions(int, char **, const char *, const char *, const char *); static int parse_expr(struct search_node_list *, char **, bool); static void read_keyboard(int fd, int what, void *v); -static sudo_noreturn void help(void); -static sudo_noreturn void usage(void); static int replay_session(int iolog_dir_fd, const char *iolog_dir, struct timespec *offset, struct timespec *max_wait, const char *decimal, bool interactive, bool suspend_wait); @@ -184,20 +183,14 @@ static void sudoreplay_cleanup(void); static void write_output(int fd, int what, void *v); static void restore_terminal_size(void); static void setup_terminal(struct eventlog *evlog, bool interactive, bool resize); +sudo_noreturn static void help(void); +sudo_noreturn static void usage(void); #define VALID_ID(s) (isalnum((unsigned char)(s)[0]) && \ isalnum((unsigned char)(s)[1]) && isalnum((unsigned char)(s)[2]) && \ isalnum((unsigned char)(s)[3]) && isalnum((unsigned char)(s)[4]) && \ isalnum((unsigned char)(s)[5]) && (s)[6] == '\0') -#define IS_IDLOG(s) ( \ - isalnum((unsigned char)(s)[0]) && isalnum((unsigned char)(s)[1]) && \ - (s)[2] == '/' && \ - isalnum((unsigned char)(s)[3]) && isalnum((unsigned char)(s)[4]) && \ - (s)[5] == '/' && \ - isalnum((unsigned char)(s)[6]) && isalnum((unsigned char)(s)[7]) && \ - (s)[6] == '\0') - sudo_dso_public int main(int argc, char *argv[]); int @@ -373,6 +366,10 @@ main(int argc, char *argv[]) if ((evlog = iolog_parse_loginfo(iolog_dir_fd, iolog_dir)) == NULL) goto done; printf(_("Replaying sudo session: %s"), evlog->command); + if (evlog->argv != NULL && evlog->argv[0] != NULL) { + for (i = 1; evlog->argv[i] != NULL; i++) + printf(" %s", evlog->argv[i]); + } /* Setup terminal if appropriate. */ if (!isatty(STDIN_FILENO) || !isatty(STDOUT_FILENO)) @@ -1315,11 +1312,57 @@ parse_expr(struct search_node_list *head, char *argv[], bool sub_expr) debug_return_int(av - argv); } +static char * +expand_command(struct eventlog *evlog, char **newbuf) +{ + size_t len, bufsize = strlen(evlog->command) + 1; + char *cp, *buf; + int ac; + debug_decl(expand_command, SUDO_DEBUG_UTIL); + + if (evlog->argv == NULL || evlog->argv[0] == NULL || evlog->argv[1] == NULL) { + /* No arguments, we can use the command as-is. */ + *newbuf = NULL; + debug_return_str(evlog->command); + } + + /* Skip argv[0], we use evlog->command instead. */ + for (ac = 1; evlog->argv[ac] != NULL; ac++) + bufsize += strlen(evlog->argv[ac]) + 1; + + if ((buf = malloc(bufsize)) == NULL) + sudo_fatalx(U_("%s: %s"), __func__, U_("unable to allocate memory")); + cp = buf; + + len = strlcpy(cp, evlog->command, bufsize); + if (len >= bufsize) + sudo_fatalx(U_("internal error, %s overflow"), __func__); + cp += len; + bufsize -= len; + + for (ac = 1; evlog->argv[ac] != NULL; ac++) { + if (bufsize < 2) + sudo_fatalx(U_("internal error, %s overflow"), __func__); + *cp++ = ' '; + bufsize--; + + len = strlcpy(cp, evlog->argv[ac], bufsize); + if (len >= bufsize) + sudo_fatalx(U_("internal error, %s overflow"), __func__); + cp += len; + bufsize -= len; + } + + *newbuf = buf; + debug_return_str(buf); +} + static bool match_expr(struct search_node_list *head, struct eventlog *evlog, bool last_match) { struct search_node *sn; bool res = false, matched = last_match; + char *tofree; int rc; debug_decl(match_expr, SUDO_DEBUG_UTIL); @@ -1353,13 +1396,15 @@ match_expr(struct search_node_list *head, struct eventlog *evlog, bool last_matc res = strcmp(sn->u.user, evlog->submituser) == 0; break; case ST_PATTERN: - rc = regexec(&sn->u.cmdre, evlog->command, 0, NULL, 0); + rc = regexec(&sn->u.cmdre, expand_command(evlog, &tofree), + 0, NULL, 0); if (rc && rc != REG_NOMATCH) { char buf[BUFSIZ]; regerror(rc, &sn->u.cmdre, buf, sizeof(buf)); sudo_fatalx("%s", buf); } res = rc == REG_NOMATCH ? 0 : 1; + free(tofree); break; case ST_FROMDATE: res = sudo_timespeccmp(&evlog->submit_time, &sn->u.tstamp, >=); @@ -1380,9 +1425,9 @@ match_expr(struct search_node_list *head, struct eventlog *evlog, bool last_matc } static int -list_session(char *log_dir, regex_t *re, const char *user, const char *tty) +list_session(struct sudo_lbuf *lbuf, char *log_dir, regex_t *re, + const char *user, const char *tty) { - char idbuf[7], *idstr, *cp; struct eventlog *evlog = NULL; const char *timestr; int ret = -1; @@ -1395,45 +1440,24 @@ list_session(char *log_dir, regex_t *re, const char *user, const char *tty) evlog->runuser == NULL) { goto done; } + evlog->iolog_file = log_dir + strlen(session_dir) + 1; /* Match on search expression if there is one. */ if (!STAILQ_EMPTY(&search_expr) && !match_expr(&search_expr, evlog, true)) goto done; - /* Convert from /var/log/sudo-sessions/00/00/01 to 000001 */ - cp = log_dir + strlen(session_dir) + 1; - if (IS_IDLOG(cp)) { - idbuf[0] = cp[0]; - idbuf[1] = cp[1]; - idbuf[2] = cp[3]; - idbuf[3] = cp[4]; - idbuf[4] = cp[6]; - idbuf[5] = cp[7]; - idbuf[6] = '\0'; - idstr = idbuf; - } else { - /* Not an id, use as-is. */ - idstr = cp; - } - /* XXX - print lines + cols? */ timestr = get_timestr(evlog->submit_time.tv_sec, 1); - printf("%s : %s : ", timestr ? timestr : "invalid date", evlog->submituser); - if (evlog->submithost != NULL) - printf("HOST=%s ; ", evlog->submithost); - if (evlog->ttyname != NULL) - printf("TTY=%s ; ", evlog->ttyname); - if (evlog->runchroot != NULL) - printf("CHROOT=%s ; ", evlog->runchroot); - if (evlog->runcwd != NULL || evlog->cwd != NULL) - printf("CWD=%s ; ", evlog->runcwd ? evlog->runcwd : evlog->cwd); - printf("USER=%s ; ", evlog->runuser); - if (evlog->rungroup != NULL) - printf("GROUP=%s ; ", evlog->rungroup); - printf("TSID=%s ; COMMAND=%s\n", idstr, evlog->command); - - ret = 0; + sudo_lbuf_append_esc(lbuf, LBUF_ESC_CNTRL, "%s : %s : ", + timestr ? timestr : "invalid date", evlog->submituser); + + if (eventlog_store_sudo(EVLOG_ACCEPT, evlog, lbuf)) { + puts(lbuf->buf); + ret = 0; + } done: + lbuf->error = 0; + lbuf->len = 0; eventlog_free(evlog); debug_return_int(ret); } @@ -1453,6 +1477,7 @@ find_sessions(const char *dir, regex_t *re, const char *user, const char *tty) DIR *d; struct dirent *dp; struct stat sb; + struct sudo_lbuf lbuf; size_t sdlen, sessions_len = 0, sessions_size = 0; unsigned int i; int len; @@ -1464,6 +1489,8 @@ find_sessions(const char *dir, regex_t *re, const char *user, const char *tty) #endif debug_decl(find_sessions, SUDO_DEBUG_UTIL); + sudo_lbuf_init(&lbuf, NULL, 0, NULL, 0); + d = opendir(dir); if (d == NULL) sudo_fatal(U_("unable to open %s"), dir); @@ -1524,7 +1551,7 @@ find_sessions(const char *dir, regex_t *re, const char *user, const char *tty) /* Check for dir with a log file. */ if (lstat(pathbuf, &sb) == 0 && S_ISREG(sb.st_mode)) { pathbuf[sdlen + len - 4] = '\0'; - list_session(pathbuf, re, user, tty); + list_session(&lbuf, pathbuf, re, user, tty); } else { /* Strip off "/log" and recurse if a non-log dir. */ pathbuf[sdlen + len - 4] = '\0'; @@ -1535,6 +1562,7 @@ find_sessions(const char *dir, regex_t *re, const char *user, const char *tty) } free(sessions); } + sudo_lbuf_destroy(&lbuf); debug_return_int(0); } diff --git a/plugins/sudoers/testsudoers.c b/plugins/sudoers/testsudoers.c index 3af5636d9a..ecc80820fd 100644 --- a/plugins/sudoers/testsudoers.c +++ b/plugins/sudoers/testsudoers.c @@ -61,12 +61,12 @@ enum sudoers_formats { * Function Prototypes */ static void dump_sudoers(struct sudo_lbuf *lbuf); -static sudo_noreturn void usage(void); static void set_runaspw(const char *); static void set_runasgr(const char *); static bool cb_runas_default(const char *file, int line, int column, const union sudo_defs_val *, int); static int testsudoers_error(const char *msg); static int testsudoers_output(const char *buf); +sudo_noreturn static void usage(void); /* testsudoers_pwutil.c */ extern struct cache_item *testsudoers_make_gritem(gid_t gid, const char *group); diff --git a/plugins/sudoers/toke.c b/plugins/sudoers/toke.c index 10a7b97eca..fa002e9180 100644 --- a/plugins/sudoers/toke.c +++ b/plugins/sudoers/toke.c @@ -393,8 +393,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 89 -#define YY_END_OF_BUFFER 90 +#define YY_NUM_RULES 90 +#define YY_END_OF_BUFFER 91 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -402,145 +402,146 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1242] = +static yyconst flex_int16_t yy_accept[1254] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 90, 75, 85, 84, 88, 83, 74, 87, 46, 78, - 79, 46, 80, 75, 75, 75, 75, 82, 81, 88, - 75, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 88, 75, 75, 75, 85, - 87, 64, 64, 64, 64, 64, 2, 88, 1, 75, - 64, 64, 64, 64, 75, 75, 17, 16, 16, 17, - 16, 16, 88, 21, 21, 19, 19, 21, 19, 20, - 88, 87, 88, 3, 9, 8, 9, 4, 9, 5, - - 88, 13, 13, 13, 11, 12, 88, 23, 23, 22, - 22, 22, 23, 22, 22, 22, 22, 23, 23, 23, - 23, 23, 23, 23, 88, 22, 23, 23, 76, 76, - 77, 76, 71, 71, 71, 71, 71, 71, 71, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 88, 71, 71, 71, 75, 0, 85, 84, 83, 87, - 87, 0, 0, 75, 48, 0, 46, 0, 47, 0, - 72, 72, 0, 75, 75, 0, 75, 75, 75, 75, - 0, 51, 75, 64, 64, 64, 64, 64, 64, 64, + 91, 76, 86, 85, 89, 84, 75, 88, 46, 79, + 80, 46, 81, 76, 76, 76, 76, 83, 82, 89, + 76, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 89, 76, 76, 76, 76, + 86, 88, 64, 64, 64, 64, 64, 2, 89, 1, + 76, 64, 64, 64, 64, 76, 76, 17, 16, 16, + 17, 16, 16, 89, 21, 21, 19, 19, 21, 19, + 20, 89, 88, 89, 3, 9, 8, 9, 4, 9, + + 5, 89, 13, 13, 13, 11, 12, 89, 23, 23, + 22, 22, 22, 23, 22, 22, 22, 22, 23, 23, + 23, 23, 23, 23, 23, 89, 22, 23, 23, 23, + 77, 77, 78, 77, 72, 72, 72, 72, 72, 72, + 72, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 89, 72, 72, 72, 72, 76, 0, 86, + 85, 84, 88, 88, 0, 0, 76, 48, 0, 46, + 0, 47, 0, 73, 73, 0, 76, 76, 0, 76, + 76, 76, 76, 0, 51, 76, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 0, 86, 75, 75, 75, 0, 73, 0, - 75, 75, 85, 0, 0, 0, 0, 0, 87, 75, - 75, 75, 75, 75, 2, 1, 0, 1, 65, 65, - 0, 64, 75, 0, 65, 0, 75, 17, 17, 15, - 0, 14, 15, 21, 21, 21, 18, 18, 0, 3, - 9, 0, 6, 7, 9, 9, 13, 0, 13, 13, - 0, 10, 0, 48, 0, 0, 47, 23, 23, 0, - 23, 0, 0, 22, 22, 22, 22, 22, 22, 23, - 23, 64, 23, 23, 23, 23, 23, 23, 23, 23, - 73, 0, 23, 23, 76, 76, 76, 71, 0, 48, - - 0, 47, 0, 71, 71, 0, 71, 71, 71, 71, - 71, 71, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 71, 71, 71, 71, 0, 71, 71, - 87, 87, 87, 0, 48, 75, 75, 75, 75, 75, - 0, 0, 51, 51, 75, 64, 53, 64, 64, 57, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 0, 87, 76, 76, 76, + 0, 74, 0, 76, 76, 76, 86, 0, 0, 0, + 0, 0, 88, 76, 76, 76, 76, 76, 2, 1, + 0, 1, 65, 65, 0, 64, 76, 0, 65, 0, + 76, 17, 17, 15, 0, 14, 15, 21, 21, 21, + 18, 18, 0, 3, 9, 0, 6, 7, 9, 9, + 13, 0, 13, 13, 0, 10, 0, 48, 0, 0, + 47, 23, 23, 0, 23, 0, 0, 22, 22, 22, + 22, 22, 22, 23, 23, 64, 23, 23, 23, 23, + 23, 23, 23, 23, 74, 0, 23, 23, 23, 77, + + 77, 77, 72, 0, 48, 0, 47, 0, 72, 72, + 0, 72, 72, 72, 72, 72, 72, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 72, 72, + 72, 72, 0, 72, 72, 72, 88, 88, 88, 0, + 48, 76, 76, 76, 76, 76, 0, 0, 51, 51, + 76, 64, 53, 64, 64, 57, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 73, 75, 75, 75, 0, 0, 0, 0, 0, 87, - 75, 75, 75, 75, 75, 75, 0, 65, 0, 65, - 75, 75, 10, 0, 0, 0, 22, 22, 22, 23, + 64, 64, 64, 64, 64, 64, 74, 76, 76, 76, + 76, 0, 0, 0, 0, 0, 88, 76, 76, 76, + 76, 76, 76, 0, 65, 0, 65, 76, 76, 10, + 0, 0, 0, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 73, 23, 23, 0, 71, 71, - 71, 71, 71, 64, 53, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 71, - 71, 71, 71, 87, 87, 87, 75, 75, 75, 75, - 75, 75, 0, 52, 52, 52, 0, 0, 51, 51, - 51, 51, 51, 51, 51, 75, 64, 64, 64, 64, + 23, 74, 23, 23, 23, 0, 72, 72, 72, 72, + 72, 64, 53, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 72, 72, 72, + 72, 72, 88, 88, 88, 76, 76, 76, 76, 76, + 76, 0, 52, 52, 52, 0, 0, 51, 51, 51, + 51, 51, 51, 51, 76, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 59, 64, 64, 60, - 75, 75, 75, 75, 0, 0, 0, 0, 0, 0, + 64, 64, 64, 64, 64, 59, 64, 64, 60, 70, - 87, 75, 75, 75, 65, 75, 0, 0, 0, 0, + 76, 76, 76, 76, 0, 0, 0, 0, 0, 0, + 88, 76, 76, 76, 65, 76, 0, 0, 0, 0, 0, 22, 22, 23, 23, 23, 64, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 71, 71, 71, 71, 71, 71, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 71, 71, 71, 71, 75, 75, 75, 0, - 0, 52, 52, 52, 0, 51, 51, 0, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 51, 75, - 64, 64, 0, 33, 64, 64, 64, 64, 64, 0, - 42, 64, 64, 64, 64, 64, 64, 64, 64, 64, - - 64, 62, 64, 64, 75, 75, 75, 75, 75, 0, - 0, 0, 87, 75, 75, 75, 0, 0, 0, 22, - 22, 23, 23, 64, 64, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 23, 71, - 71, 71, 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 71, 71, 71, 71, 71, - 75, 75, 75, 75, 75, 0, 52, 0, 51, 51, - 51, 0, 0, 0, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 75, 64, 58, + 23, 23, 72, 72, 72, 72, 72, 72, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 70, 72, 72, 72, 72, 76, 76, + 76, 0, 0, 52, 52, 52, 0, 51, 51, 0, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 76, 64, 64, 0, 33, 64, 64, 64, 64, + + 64, 0, 42, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 62, 64, 64, 76, 76, 76, 76, + 76, 0, 0, 0, 88, 76, 76, 76, 0, 0, + 0, 22, 22, 23, 23, 64, 64, 23, 23, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 72, 72, 72, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 72, 72, 72, + 72, 72, 76, 76, 76, 76, 76, 0, 52, 0, + 51, 51, 51, 0, 0, 0, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 76, - 64, 64, 64, 64, 64, 64, 64, 66, 67, 68, - 69, 75, 0, 0, 87, 75, 75, 75, 0, 0, - 0, 0, 0, 23, 23, 64, 64, 23, 23, 23, - 64, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 71, 71, 71, 71, 71, 64, 64, 64, 64, + 64, 58, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 66, - 67, 68, 69, 71, 49, 49, 49, 0, 0, 51, - 51, 51, 51, 51, 51, 51, 0, 0, 0, 0, - 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 75, 64, 0, 44, 64, - - 64, 64, 64, 0, 32, 64, 64, 64, 64, 0, - 43, 64, 64, 64, 64, 0, 31, 0, 36, 54, - 75, 0, 0, 87, 75, 75, 75, 49, 49, 49, - 23, 64, 64, 23, 23, 64, 64, 23, 23, 23, - 49, 49, 49, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 71, 75, 49, 49, 49, 49, 0, 51, - 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 0, 0, 0, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, 24, 64, + 67, 68, 69, 76, 0, 0, 88, 76, 76, 76, + 0, 0, 0, 0, 0, 23, 23, 64, 64, 23, + 23, 23, 64, 23, 23, 23, 23, 23, 23, 23, + 23, 23, 23, 72, 72, 72, 72, 72, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 66, 67, 68, 69, 72, 49, 49, 49, 0, + 0, 51, 51, 51, 51, 51, 51, 51, 0, 0, + 0, 0, 0, 51, 51, 51, 51, 51, 51, 51, + + 51, 51, 51, 51, 51, 51, 51, 76, 64, 0, + 44, 64, 64, 64, 64, 0, 32, 64, 64, 64, + 64, 0, 43, 64, 64, 64, 64, 0, 31, 0, + 36, 54, 76, 0, 0, 88, 76, 76, 76, 49, + 49, 49, 23, 64, 64, 23, 23, 64, 64, 23, + 23, 23, 49, 49, 49, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 72, 76, 49, 49, 49, 49, + 0, 51, 0, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 0, 0, 0, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 56, 64, 70, 0, 0, 87, 75, 28, 65, 0, - 49, 49, 49, 49, 23, 64, 64, 23, 23, 64, - 64, 23, 23, 23, 71, 49, 49, 49, 49, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 70, 50, - 50, 50, 50, 51, 0, 0, 0, 51, 51, 51, + 24, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 56, 64, 71, 0, 0, 88, 76, 28, + 65, 0, 49, 49, 49, 49, 23, 64, 64, 23, + 23, 64, 64, 23, 23, 23, 72, 49, 49, 49, + 49, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 71, 50, 50, 50, 50, 51, 0, 0, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 0, 0, 0, 0, 0, 51, 51, 51, 51, 51, - 51, 51, 51, 75, 64, 64, 64, 64, 64, 0, - 45, 64, 64, 64, 0, 30, 0, 37, 55, 0, - 28, 26, 87, 29, 0, 75, 50, 50, 50, 50, - - 23, 64, 64, 23, 64, 64, 50, 50, 50, 50, - 64, 64, 64, 64, 64, 64, 75, 75, 50, 50, - 50, 50, 0, 0, 0, 0, 0, 51, 51, 51, + 51, 51, 0, 0, 0, 0, 0, 51, 51, 51, + 51, 51, 51, 51, 51, 76, 64, 64, 64, 64, + 64, 0, 45, 64, 64, 64, 0, 30, 0, 37, + + 55, 0, 28, 26, 88, 29, 0, 76, 50, 50, + 50, 50, 23, 64, 64, 23, 64, 64, 50, 50, + 50, 50, 64, 64, 64, 64, 64, 64, 76, 76, + 50, 50, 50, 50, 0, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 75, 64, 0, - 34, 63, 0, 40, 64, 64, 64, 64, 29, 26, - 26, 26, 26, 87, 28, 0, 0, 0, 0, 0, - 28, 0, 0, 0, 50, 50, 50, 50, 64, 23, - 64, 64, 71, 71, 50, 50, 50, 50, 64, 64, - 64, 64, 75, 75, 75, 0, 0, 0, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 76, + 64, 0, 34, 63, 0, 40, 64, 64, 64, 64, + 29, 26, 26, 26, 26, 88, 28, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 50, 50, 50, 50, + 64, 23, 64, 64, 72, 72, 50, 50, 50, 50, + 64, 64, 64, 64, 76, 76, 76, 0, 0, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 25, 64, 0, 38, - 64, 64, 64, 26, 87, 0, 28, 0, 0, 0, - 23, 64, 64, 71, 71, 71, 64, 64, 64, 75, - 75, 75, 75, 75, 0, 0, 0, 0, 0, 51, - 51, 51, 51, 51, 51, 51, 51, 64, 0, 35, - 0, 41, 64, 27, 0, 0, 0, 0, 0, 64, - 71, 71, 71, 71, 71, 64, 75, 75, 75, 51, - 51, 51, 51, 51, 51, 64, 0, 39, 27, 27, - 27, 27, 0, 0, 0, 71, 71, 71, 75, 75, - - 75, 75, 75, 51, 51, 51, 51, 51, 64, 27, - 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, - 49, 49, 49, 64, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 61, 49, 49, 49, 49, 49, 49, - 0 + 51, 51, 51, 51, 51, 51, 51, 51, 25, 64, + 0, 38, 64, 64, 64, 26, 88, 0, 28, 0, + 0, 0, 23, 64, 64, 72, 72, 72, 64, 64, + 64, 76, 76, 76, 76, 76, 0, 0, 0, 0, + 0, 51, 51, 51, 51, 51, 51, 51, 51, 64, + 0, 35, 0, 41, 64, 27, 0, 0, 0, 0, + 0, 64, 72, 72, 72, 72, 72, 64, 76, 76, + 76, 51, 51, 51, 51, 51, 51, 64, 0, 39, + + 27, 27, 27, 27, 0, 0, 0, 72, 72, 72, + 76, 76, 76, 76, 76, 51, 51, 51, 51, 51, + 64, 27, 0, 0, 0, 0, 0, 72, 72, 72, + 72, 72, 49, 49, 49, 64, 49, 49, 49, 49, + 49, 49, 49, 49, 49, 61, 49, 49, 49, 49, + 49, 49, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -587,312 +588,314 @@ static yyconst flex_int32_t yy_meta[77] = 21, 21, 21, 21, 21, 21 } ; -static yyconst flex_int16_t yy_base[1366] = +static yyconst flex_int16_t yy_base[1378] = { 0, 0, 75, 126, 199, 83, 91, 99, 180, 272, 347, 422, 478, 131, 147, 535, 0, 189, 219, 611, 0, - 6517, 6458, 76, 9534, 6501, 6471, 9534, 685, 101, 9534, - 9534, 6409, 9534, 199, 697, 238, 143, 6428, 9534, 9534, - 23, 762, 35, 103, 71, 132, 819, 6411, 76, 6422, - 6385, 112, 6373, 6374, 61, 883, 914, 262, 152, 266, - 969, 251, 166, 6339, 122, 6336, 197, 338, 123, 369, - 6350, 6335, 6334, 6344, 1036, 177, 0, 9534, 6364, 6335, - 9534, 0, 1092, 0, 214, 9534, 6338, 6331, 9534, 9534, - 236, 1148, 249, 0, 6280, 9534, 239, 9534, 240, 9534, - - 306, 6245, 311, 262, 9534, 320, 172, 1177, 1236, 1281, - 363, 349, 1340, 1391, 6257, 86, 254, 1448, 6231, 6215, - 6227, 6200, 6212, 6207, 294, 422, 0, 173, 6187, 323, - 9534, 397, 6180, 348, 6168, 450, 1496, 444, 373, 1561, - 6135, 272, 388, 1618, 6117, 6113, 6125, 6109, 6121, 6114, - 1682, 1713, 490, 421, 6089, 737, 304, 9534, 6138, 168, - 9534, 6141, 500, 671, 6086, 848, 446, 926, 6085, 971, - 893, 6064, 1769, 984, 1784, 6077, 6088, 939, 994, 887, - 6075, 422, 243, 1849, 1906, 6050, 6034, 6002, 6013, 5988, - 5981, 5972, 5966, 5970, 5967, 1012, 5912, 5905, 5900, 5892, - - 5894, 5885, 496, 9534, 376, 1022, 1970, 449, 5868, 1024, - 417, 433, 1033, 5854, 5859, 5849, 5841, 5839, 847, 684, - 683, 418, 434, 673, 935, 318, 1089, 454, 1064, 5850, - 2026, 1086, 2057, 694, 5842, 1078, 707, 0, 5891, 528, - 5894, 9534, 9534, 0, 498, 5862, 9534, 1135, 1134, 0, - 5801, 1184, 9534, 9534, 5792, 1140, 5772, 5820, 860, 682, - 1177, 750, 5822, 943, 1075, 1250, 5767, 2114, 0, 1377, - 2173, 1196, 1196, 2215, 5793, 1250, 1263, 1208, 2266, 2323, - 5759, 0, 5764, 5757, 5732, 5726, 5715, 1451, 5705, 5692, - 9534, 1021, 5670, 5664, 5669, 891, 721, 5667, 1536, 5655, - - 1725, 5654, 1756, 1660, 5646, 2387, 1679, 2402, 5670, 1769, - 1804, 1374, 2467, 2524, 5629, 5634, 5619, 5555, 5550, 5541, - 1621, 5532, 5528, 737, 1746, 2588, 5516, 1194, 714, 841, - 431, 856, 944, 1926, 1936, 2628, 2668, 2708, 2746, 5552, - 5529, 2792, 910, 2839, 866, 2904, 2961, 5517, 5503, 0, - 5511, 5489, 5494, 5489, 5436, 5450, 5438, 5445, 5424, 5392, - 5404, 5380, 5375, 259, 5361, 5346, 5360, 5359, 5290, 5288, - 3025, 3081, 1184, 830, 24, 5240, 5230, 5232, 5238, 1042, - 896, 912, 5235, 718, 925, 821, 1979, 9534, 1043, 3137, - 3193, 983, 858, 1993, 2023, 2054, 3231, 5269, 3282, 3339, - - 5250, 5241, 5246, 5181, 5195, 5183, 5165, 5154, 5145, 5157, - 5156, 5126, 5102, 5106, 1063, 1036, 5071, 2089, 3387, 3427, - 3467, 3507, 5079, 3553, 0, 5048, 5027, 5031, 5008, 4998, - 4976, 4970, 4935, 4932, 4930, 4929, 4911, 4897, 4883, 3617, - 3673, 1480, 1018, 9534, 1086, 1124, 2113, 160, 3713, 3753, - 1969, 708, 4889, 4884, 2128, 1239, 4880, 4869, 924, 951, - 3793, 2139, 1814, 3840, 2174, 1050, 3905, 1103, 889, 1183, - 1056, 1117, 1308, 1508, 1498, 1342, 1208, 1341, 1062, 1449, - 1114, 1464, 1109, 1343, 1394, 1215, 4857, 1234, 1137, 4849, - 1366, 1008, 1506, 1424, 4818, 4813, 4815, 4786, 4792, 4778, - - 1671, 86, 1516, 1240, 1330, 1472, 2187, 4814, 2199, 2237, - 2079, 3962, 4013, 4088, 2006, 2060, 1522, 1716, 2367, 2368, - 1973, 2361, 2374, 2404, 2405, 2444, 2562, 1189, 4798, 4793, - 4742, 2549, 1536, 4136, 4176, 2603, 1450, 4775, 1850, 4757, - 4708, 1628, 2268, 4698, 4691, 4682, 4687, 4676, 4660, 4658, - 4654, 4647, 1636, 1682, 1629, 1483, 4216, 4256, 4296, 4625, - 4624, 2609, 4605, 4584, 4583, 4575, 969, 2641, 1824, 2651, - 2066, 4336, 0, 2592, 4384, 2678, 2688, 4431, 2720, 1494, - 1268, 1728, 2442, 9534, 1681, 1717, 1679, 1720, 1810, 2443, - 9534, 1724, 1698, 1468, 1966, 1729, 1647, 1686, 1954, 1967, - - 1821, 4534, 1977, 2041, 1759, 1758, 1980, 1517, 1798, 4489, - 4446, 4424, 2103, 2053, 2054, 1966, 2732, 2768, 2814, 4460, - 4459, 2445, 2877, 4442, 4430, 2880, 2999, 2842, 3000, 3006, - 3012, 2879, 3009, 2882, 4448, 4445, 4440, 4441, 4399, 4479, - 4519, 4559, 4389, 4389, 4371, 4364, 4333, 4324, 4329, 4287, - 4300, 4265, 4274, 4274, 4257, 2037, 2029, 2089, 1916, 1997, - 2694, 2050, 4599, 4639, 3043, 4257, 4242, 4240, 4217, 4677, - 2097, 2869, 3051, 3081, 2159, 2253, 2336, 3094, 2360, 4725, - 0, 3106, 4773, 3134, 3150, 4820, 3158, 2112, 2082, 4202, - 2577, 1827, 2199, 2096, 2216, 3014, 2146, 2326, 2226, 3135, - - 1944, 2188, 2334, 2252, 3186, 3187, 2351, 4173, 4135, 4111, - 4098, 2314, 4078, 4077, 2577, 2385, 2358, 2401, 3206, 4111, - 3218, 3253, 3190, 3284, 3387, 4073, 4055, 3388, 3389, 3390, - 2366, 3427, 3428, 3429, 3435, 3436, 0, 0, 0, 0, - 4003, 3480, 2125, 4868, 4908, 3456, 3467, 4008, 3997, 3979, - 3508, 3973, 3869, 2367, 3509, 3863, 3868, 3510, 3517, 3856, - 3854, 3838, 3835, 2498, 4947, 4986, 5025, 3861, 3843, 3821, - 3359, 5065, 3528, 3538, 5111, 3575, 3614, 3808, 3632, 3644, - 3587, 2537, 2572, 2974, 3030, 3670, 3066, 5159, 0, 3688, - 5207, 3699, 3723, 5254, 3731, 2419, 5319, 3759, 9534, 2275, - - 2756, 1190, 2412, 3760, 9534, 2403, 667, 2319, 2592, 3761, - 9534, 2406, 2068, 3776, 3758, 3762, 9534, 3794, 9534, 3745, - 2524, 3725, 3675, 2759, 2624, 2585, 2776, 3814, 3861, 3983, - 5381, 3680, 3668, 2549, 2557, 3669, 3649, 2610, 2634, 3625, - 5439, 5478, 5517, 5574, 2752, 3598, 2955, 2691, 1603, 2797, - 2980, 2858, 2977, 4075, 2073, 5632, 5671, 4114, 3614, 3601, - 4152, 2769, 4162, 2989, 5711, 0, 4188, 5724, 4199, 3763, - 5770, 4228, 4240, 4268, 4280, 3021, 3028, 3116, 3269, 4306, - 3442, 5818, 0, 4318, 5866, 4356, 3781, 4406, 3029, 5931, - 2506, 3089, 2994, 3081, 4479, 2787, 3022, 3139, 4519, 4559, - - 3563, 2812, 3529, 3525, 3492, 3844, 3147, 3864, 3508, 4366, - 3502, 4491, 4531, 3994, 5993, 3466, 3416, 3842, 1729, 3415, - 3395, 4560, 4561, 0, 4572, 2744, 6051, 6090, 4417, 6147, - 3371, 2428, 4600, 3113, 2962, 3347, 4601, 4602, 3314, 6206, - 6246, 6286, 6326, 3218, 4506, 4615, 4651, 3192, 3189, 3219, - 4661, 3254, 6366, 0, 4699, 6379, 4745, 4120, 6425, 4795, - 4755, 3114, 4842, 4880, 4455, 3147, 3270, 3602, 2759, 3178, - 6473, 0, 4550, 3364, 3535, 4918, 3347, 4921, 3411, 3906, - 9534, 3628, 3412, 3629, 4229, 9534, 4269, 9534, 2995, 2920, - 3765, 3421, 3215, 2813, 4936, 4976, 4932, 4974, 4998, 5037, - - 4823, 4726, 2796, 3047, 2772, 2754, 6485, 6525, 6565, 6605, - 4911, 5026, 2728, 3392, 3211, 3435, 5085, 3134, 6645, 6685, - 5016, 3410, 5095, 2706, 5133, 5181, 5145, 2653, 2613, 3633, - 3684, 5227, 3699, 6725, 0, 5276, 6738, 5237, 4625, 6784, - 5451, 5462, 5489, 5500, 3880, 2590, 3321, 2863, 3750, 4728, - 9534, 2411, 4909, 9534, 5528, 3467, 3970, 3793, 9534, 1934, - 4164, 9534, 3367, 4342, 5547, 5660, 5668, 5699, 5540, 5319, - 5707, 5906, 5658, 2403, 5747, 5792, 5193, 2359, 4910, 2196, - 2137, 1988, 5839, 3588, 6832, 6872, 5852, 3751, 5820, 1948, - 1830, 3447, 6912, 6952, 6992, 6063, 6075, 6102, 1787, 1666, - - 4075, 4089, 6112, 4177, 7032, 0, 6218, 7045, 6229, 4966, - 6258, 1645, 6269, 6297, 5288, 1558, 1440, 4170, 4916, 9534, - 5546, 5904, 4069, 9534, 4481, 6307, 6336, 6348, 6401, 6447, - 5910, 5066, 1398, 7093, 7133, 7173, 6514, 6525, 1288, 6512, - 3880, 7213, 7253, 6501, 6575, 1183, 6587, 6617, 6413, 1096, - 1034, 4640, 1014, 885, 6629, 0, 4323, 3525, 5068, 9534, - 5821, 9534, 6618, 4689, 6658, 833, 6670, 6697, 6459, 6147, - 6712, 4013, 7293, 7333, 6760, 6784, 7373, 7413, 7453, 6804, - 6842, 6852, 699, 0, 514, 3256, 6148, 9534, 3517, 4825, - 9534, 3623, 6884, 6896, 6924, 7493, 7533, 7573, 6934, 4073, - - 7613, 7653, 6965, 9534, 6972, 7003, 5698, 9534, 2225, 9534, - 7013, 471, 7067, 7105, 6539, 7115, 4074, 7693, 7733, 7146, - 7153, 7191, 7229, 3226, 7239, 7267, 7277, 7306, 7316, 7354, - 404, 7392, 7164, 316, 9534, 7430, 5757, 179, 7440, 7346, - 9534, 7790, 7811, 7832, 7853, 7874, 7895, 7916, 7937, 7958, - 7979, 8000, 4595, 8021, 8042, 8063, 8084, 8105, 8126, 3974, - 8147, 8168, 8189, 8210, 8231, 8252, 8273, 8294, 8315, 8336, - 8357, 8378, 8399, 8420, 8441, 8462, 8483, 8504, 8525, 8546, - 4711, 4858, 8555, 8575, 8596, 8617, 8638, 8659, 8680, 8701, - 8722, 4195, 8743, 8764, 8785, 8806, 8818, 8839, 5061, 8860, - - 8881, 8902, 8923, 8944, 8965, 8986, 9007, 9028, 9049, 5015, - 9058, 9078, 9099, 9120, 9141, 5557, 5566, 5900, 9150, 9158, - 9178, 9199, 5062, 6245, 6285, 6325, 9208, 9217, 6365, 6552, - 6559, 9225, 9234, 6773, 6777, 9242, 9251, 9271, 5308, 9283, - 9304, 6822, 9314, 9322, 9331, 9351, 6561, 9363, 9384, 6868, - 9394, 9402, 9411, 9431, 9452, 9473, 6871, 9483, 5651, 6951, - 9492, 6988, 5690, 9512, 3664 + 6456, 6375, 76, 9534, 6417, 6405, 9534, 685, 101, 9534, + 9534, 6354, 9534, 199, 697, 238, 143, 6380, 9534, 9534, + 23, 762, 35, 103, 71, 132, 819, 6339, 76, 6348, + 6334, 112, 6333, 6330, 61, 883, 914, 262, 73, 152, + 266, 969, 251, 166, 6295, 122, 6266, 197, 338, 123, + 369, 6291, 6255, 6254, 6264, 1036, 177, 0, 9534, 6284, + 6258, 9534, 0, 1092, 0, 214, 9534, 6258, 6252, 9534, + 9534, 236, 1148, 249, 0, 6190, 9534, 239, 9534, 240, + + 9534, 306, 6168, 311, 262, 9534, 320, 172, 1177, 1236, + 1281, 363, 349, 1340, 1391, 6135, 249, 254, 1448, 6117, + 6113, 6125, 6109, 6121, 6114, 300, 422, 0, 6078, 173, + 6088, 323, 9534, 397, 6087, 425, 6076, 456, 1496, 476, + 373, 1561, 6077, 272, 331, 1618, 6061, 6059, 6071, 6047, + 6048, 6013, 1682, 1713, 494, 384, 399, 5993, 737, 318, + 9534, 6019, 168, 9534, 6022, 504, 671, 5966, 848, 707, + 926, 5954, 971, 893, 5953, 1769, 984, 1784, 5979, 5944, + 939, 994, 437, 5931, 446, 243, 1849, 1906, 5903, 5896, + 5894, 5902, 5895, 5881, 5873, 5878, 5881, 5875, 1012, 5865, + + 5872, 5869, 5858, 5862, 5850, 430, 9534, 348, 1022, 1970, + 691, 5840, 1024, 415, 410, 414, 1033, 5826, 5813, 5804, + 5798, 5799, 847, 684, 686, 416, 421, 714, 891, 504, + 1089, 505, 896, 5802, 2026, 1082, 2057, 718, 5772, 1078, + 803, 0, 5821, 946, 5823, 9534, 9534, 0, 750, 5805, + 9534, 1070, 1116, 0, 5746, 1184, 9534, 9534, 5745, 1152, + 5744, 5775, 979, 682, 1157, 768, 5765, 1062, 1077, 1191, + 5710, 2114, 0, 1250, 2173, 1211, 1250, 2215, 5748, 1263, + 1360, 1208, 2266, 2323, 5713, 0, 5717, 5699, 5679, 5687, + 5684, 1451, 5662, 5660, 9534, 931, 5636, 5644, 5640, 5645, + + 1123, 854, 5631, 1536, 5616, 1725, 5615, 1756, 1660, 5607, + 2387, 1679, 2402, 5588, 1370, 1769, 1482, 2467, 2524, 5546, + 5548, 5539, 5531, 5539, 5531, 1621, 5522, 5510, 737, 1746, + 2588, 5503, 1823, 417, 802, 860, 907, 970, 1027, 1926, + 1936, 2628, 2668, 2708, 2746, 5515, 5502, 2792, 868, 2839, + 983, 2904, 2961, 5497, 5448, 0, 5458, 5449, 5454, 5449, + 5421, 5395, 5383, 5367, 5367, 5364, 5365, 5364, 5359, 695, + 5278, 5273, 5275, 5273, 5272, 5271, 3025, 3081, 862, 1652, + 897, 24, 5230, 5212, 5214, 5220, 1086, 996, 1001, 5205, + 872, 1043, 821, 1979, 9534, 990, 3137, 3193, 898, 1059, + + 1993, 2023, 2054, 3231, 5244, 3282, 3339, 5224, 5204, 5202, + 5180, 5194, 5137, 5144, 5124, 5122, 5134, 5133, 5128, 5102, + 5113, 1021, 5049, 1160, 5051, 2089, 3387, 3427, 3467, 3507, + 5104, 3553, 0, 5085, 5069, 5067, 5039, 5053, 5041, 5034, + 5033, 5021, 5022, 5008, 5003, 4980, 4980, 3617, 3673, 1002, + 1804, 1033, 9534, 1099, 1128, 2113, 160, 3713, 3753, 1969, + 708, 4972, 4971, 2128, 1204, 4970, 4960, 1137, 1182, 3793, + 2139, 1814, 3840, 2174, 237, 3905, 1098, 952, 1534, 1159, + 1172, 1154, 1508, 1716, 1181, 1122, 1188, 1221, 1054, 1215, + 1308, 1449, 1222, 1184, 1450, 4959, 1267, 1377, 4948, 4920, + + 1472, 1470, 1351, 879, 4902, 4895, 4880, 4864, 4864, 4849, + 1755, 86, 1516, 1480, 1471, 1506, 2187, 4881, 2199, 2237, + 2079, 3962, 4013, 4088, 2006, 2060, 1527, 1973, 2367, 2368, + 2404, 2361, 2374, 2562, 2405, 2444, 2563, 0, 1139, 4859, + 4849, 4789, 2550, 1391, 4136, 4176, 2603, 1619, 4822, 2268, + 4804, 4765, 1669, 2442, 4768, 4761, 4753, 4744, 4733, 4724, + 4722, 4712, 4712, 4700, 1636, 1682, 1494, 1671, 4216, 4256, + 4296, 4726, 4680, 2609, 4680, 4678, 4665, 4664, 1667, 2641, + 1812, 2651, 2066, 4336, 0, 2680, 4384, 2691, 2718, 4431, + 2726, 1594, 1697, 1729, 2443, 9534, 1786, 1717, 1736, 1268, + + 1813, 2445, 9534, 1737, 1620, 1509, 1720, 1710, 1954, 1824, + 2010, 1966, 1821, 4663, 1944, 1977, 1122, 1314, 1949, 1795, + 1967, 4636, 4579, 4560, 2103, 1968, 2053, 1997, 2768, 2814, + 2861, 4584, 4583, 2842, 2611, 4559, 4517, 3000, 2757, 3009, + 2999, 3010, 3012, 3042, 3044, 3043, 4511, 4508, 4509, 4502, + 4460, 4479, 4519, 4559, 4468, 4462, 4444, 4437, 4428, 4419, + 4424, 4384, 4381, 4366, 4357, 4349, 4316, 2069, 2029, 2070, + 2089, 2050, 3078, 2112, 4599, 4639, 3097, 4338, 4322, 4285, + 4282, 4677, 2093, 3105, 3137, 3152, 2159, 2253, 2336, 3162, + 2360, 4725, 0, 3045, 4773, 3190, 3206, 4820, 3214, 2119, + + 2199, 4281, 2905, 2091, 2218, 2145, 2041, 3190, 2226, 2326, + 2335, 3191, 1827, 1547, 2334, 2252, 3242, 3243, 2217, 4253, + 4230, 4215, 4213, 2345, 4178, 4163, 2552, 2385, 2358, 2386, + 3254, 4212, 3361, 3399, 3373, 3284, 3427, 4107, 4096, 3428, + 3429, 3430, 2367, 3436, 3467, 3437, 3468, 3469, 0, 0, + 0, 0, 4078, 3480, 2266, 4868, 4908, 3492, 3517, 4090, + 4073, 4069, 3520, 4059, 4044, 2410, 3553, 4038, 4025, 3554, + 3555, 3989, 3988, 3973, 3972, 2401, 4947, 4986, 5025, 3991, + 3990, 3887, 3573, 5065, 3583, 3614, 5111, 3632, 3642, 3896, + 3670, 3688, 3700, 2537, 2561, 2584, 2592, 3723, 2876, 5159, + + 0, 3735, 5207, 3763, 3620, 5254, 3775, 2419, 5319, 3556, + 9534, 1807, 2557, 2319, 1889, 3670, 9534, 2633, 815, 2559, + 2591, 3671, 9534, 2672, 2674, 3848, 3797, 3803, 9534, 3841, + 9534, 3777, 2404, 3756, 3687, 2578, 2624, 2650, 2703, 3861, + 3983, 4076, 5381, 3680, 3654, 2708, 2709, 3632, 3599, 2843, + 2751, 3571, 5439, 5478, 5517, 5574, 2750, 3574, 2710, 2797, + 2660, 2798, 2861, 2752, 2704, 4109, 2994, 5632, 5671, 3815, + 3518, 3509, 4147, 2974, 4157, 2989, 5711, 0, 4188, 5724, + 4199, 3871, 5770, 4228, 4240, 4268, 4280, 2990, 2998, 3041, + 3118, 4306, 3122, 5818, 0, 4318, 5866, 4356, 3993, 4406, + + 2853, 5931, 2861, 3025, 3002, 2951, 4479, 2811, 3174, 3026, + 4519, 4559, 3461, 2833, 3429, 3422, 3394, 3475, 3035, 4360, + 3406, 4451, 3427, 4491, 4531, 4120, 5993, 3390, 3319, 4385, + 2370, 3292, 3288, 4560, 4561, 0, 4572, 3057, 6051, 6090, + 4507, 6147, 3238, 1947, 4600, 3057, 3156, 3233, 4601, 4602, + 3141, 6206, 6246, 6286, 6326, 3141, 4615, 4651, 4663, 3126, + 3269, 3270, 4697, 3362, 6366, 0, 4747, 6379, 4707, 4167, + 6425, 4795, 4840, 3133, 4880, 4892, 4550, 3442, 3521, 3534, + 2098, 2125, 6473, 0, 4807, 3497, 3572, 4921, 2984, 4957, + 3065, 3843, 9534, 3573, 3027, 3713, 3906, 9534, 4229, 9534, + + 3087, 3068, 3818, 3761, 3839, 3053, 4936, 4946, 4999, 5011, + 5037, 5049, 5112, 4269, 3001, 3389, 2956, 2869, 6485, 6525, + 6565, 6605, 5113, 5114, 2800, 3515, 2607, 3636, 5133, 2442, + 6645, 6685, 4854, 2626, 5179, 2829, 5229, 5276, 4758, 2795, + 2747, 3388, 3689, 5189, 3776, 6725, 0, 4961, 6738, 5449, + 4417, 6784, 5461, 5489, 5500, 5528, 3822, 2703, 2805, 2161, + 2421, 4652, 9534, 2557, 4958, 9534, 5528, 3212, 3859, 3459, + 9534, 3259, 4344, 9534, 3367, 4868, 5660, 5668, 5699, 5707, + 5542, 5319, 5763, 5906, 5658, 2548, 5840, 6063, 4974, 2363, + 5078, 2273, 2218, 2136, 5753, 2879, 6832, 6872, 5793, 3190, + + 5257, 2017, 1972, 2942, 6912, 6952, 6992, 6075, 6102, 6114, + 1909, 1785, 3881, 4001, 6216, 4089, 7032, 0, 6228, 7045, + 6256, 4625, 6268, 1764, 6297, 6308, 5699, 1705, 1639, 4148, + 5574, 9534, 5904, 6339, 3862, 9534, 4481, 6336, 6350, 6401, + 6447, 6497, 5819, 5575, 1440, 7093, 7133, 7173, 5821, 5869, + 1398, 6507, 3228, 7213, 7253, 6459, 6545, 1405, 6577, 6589, + 6413, 1343, 1309, 4199, 1246, 1198, 6617, 0, 3700, 2854, + 5910, 9534, 6147, 9534, 6618, 4944, 6629, 884, 6658, 6670, + 6537, 6148, 6700, 3750, 7293, 7333, 6712, 6784, 7373, 7413, + 7453, 6804, 6842, 6852, 763, 0, 685, 3256, 6336, 9534, + + 3459, 5104, 9534, 3623, 6884, 6896, 6924, 7493, 7533, 7573, + 6934, 3751, 7613, 7653, 6760, 9534, 6972, 7002, 6555, 9534, + 2538, 9534, 7012, 516, 7067, 7105, 6771, 7115, 3880, 7693, + 7733, 7146, 7153, 7191, 7229, 4032, 7239, 7267, 7277, 7306, + 7316, 7354, 451, 7392, 7164, 320, 9534, 7430, 6816, 179, + 7440, 7346, 9534, 7790, 7811, 7832, 7853, 7874, 7895, 7916, + 7937, 7958, 7979, 8000, 4374, 8021, 8042, 8063, 8084, 8105, + 8126, 3974, 8147, 8168, 8189, 8210, 8231, 8252, 8273, 8294, + 8315, 8336, 8357, 8378, 8399, 8420, 8441, 8462, 8483, 8504, + 8525, 8546, 4595, 4942, 8555, 8575, 8596, 8617, 8638, 8659, + + 8680, 8701, 8722, 4195, 8743, 8764, 8785, 8806, 8818, 8839, + 5247, 8860, 8881, 8902, 8923, 8944, 8965, 8986, 9007, 9028, + 9049, 5097, 9058, 9078, 9099, 9120, 9141, 5292, 6240, 6242, + 9150, 9158, 9178, 9199, 5308, 6285, 6524, 6724, 9208, 9217, + 6868, 6871, 6951, 9225, 9234, 6968, 6970, 9242, 9251, 9271, + 5805, 9283, 9304, 6988, 9314, 9322, 9331, 9351, 7028, 9363, + 9384, 6991, 9394, 9402, 9411, 9431, 9452, 9473, 7083, 9483, + 4331, 7132, 9492, 7208, 5651, 9512, 4468 } ; -static yyconst flex_int16_t yy_def[1366] = +static yyconst flex_int16_t yy_def[1378] = { 0, - 1241, 1, 1, 1, 1242, 1242, 1243, 1243, 1244, 1244, - 1245, 1245, 1246, 1246, 1241, 15, 1247, 1247, 1241, 19, - 1241, 1248, 1241, 1241, 1241, 1241, 1241, 1249, 1250, 1241, - 1241, 1251, 1241, 1252, 1248, 35, 35, 1253, 1241, 1241, - 1248, 1241, 42, 42, 42, 42, 42, 47, 47, 47, - 47, 47, 47, 47, 47, 1248, 1254, 35, 1248, 1241, - 1249, 42, 42, 47, 47, 47, 1241, 1241, 1241, 1255, - 42, 47, 47, 47, 1256, 1248, 1257, 1241, 1241, 1257, - 1241, 1257, 1241, 1258, 1258, 1241, 1241, 1258, 1241, 1241, - 1259, 1249, 1241, 1260, 1261, 1241, 1261, 1241, 1261, 1241, - - 1262, 1263, 1263, 1263, 1241, 1241, 1264, 1265, 1266, 1241, - 110, 110, 110, 1241, 114, 114, 114, 114, 118, 118, - 118, 118, 118, 118, 1267, 110, 113, 113, 1268, 1268, - 1241, 1268, 1269, 1270, 1271, 1272, 1269, 137, 137, 1241, - 140, 140, 140, 140, 144, 144, 144, 144, 144, 144, - 1269, 1273, 137, 1269, 1274, 1274, 1241, 1241, 1241, 1275, - 1241, 1241, 1276, 1241, 1277, 1241, 1264, 1277, 1278, 1278, - 1279, 1280, 1274, 1274, 1274, 1281, 175, 175, 175, 175, - 1282, 1283, 1274, 1241, 184, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - - 185, 185, 1241, 1241, 1274, 1274, 1284, 1285, 1274, 1284, - 1274, 1274, 1241, 1241, 1241, 1241, 1241, 1241, 1275, 1274, - 175, 1274, 1274, 1274, 1241, 1241, 1241, 1241, 1286, 1287, - 1274, 185, 1288, 1289, 1274, 1288, 1274, 1290, 1290, 1241, - 1241, 1241, 1241, 1291, 1291, 1291, 1241, 1241, 1276, 1292, - 1293, 1293, 1241, 1241, 1293, 1293, 1294, 1241, 1294, 1294, - 1241, 1241, 1241, 1264, 1264, 1264, 1295, 1296, 1297, 1295, - 1298, 1241, 1241, 1297, 274, 274, 274, 274, 1241, 279, - 280, 1299, 280, 280, 280, 280, 280, 280, 280, 280, - 1241, 1285, 1297, 1297, 1300, 1300, 1300, 1301, 1301, 1302, - - 1302, 1303, 1303, 1304, 1305, 1301, 1301, 1301, 308, 308, - 308, 308, 1241, 313, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 1301, 1301, 1306, 1301, 1306, 1301, 1301, - 1307, 1307, 1308, 1241, 1241, 1309, 1309, 1309, 1309, 339, - 1310, 1241, 1311, 1241, 1309, 1241, 346, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 1312, 1312, 1309, 1309, 1241, 1241, 1241, 1241, 1241, 1307, - 1309, 1309, 339, 1309, 1309, 1309, 1241, 1241, 1313, 1314, - 1314, 1309, 1241, 1241, 1241, 1241, 1297, 397, 1241, 399, - - 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, - 400, 400, 400, 400, 1315, 1297, 1297, 1241, 1301, 1301, - 1301, 308, 422, 313, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 1306, - 1306, 1301, 1301, 1241, 1308, 1308, 1309, 1309, 1309, 1309, - 1309, 1309, 1316, 1317, 1317, 455, 1318, 1317, 1319, 1320, - 1241, 461, 461, 1241, 461, 1309, 1241, 467, 467, 467, - 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, - 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, - 1309, 1309, 1309, 1309, 1241, 1241, 1241, 1241, 1241, 1241, - - 1321, 1309, 1309, 1309, 1322, 1309, 1241, 1241, 1241, 1241, - 1241, 1297, 1241, 513, 514, 514, 1323, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 1297, 1297, 1297, - 1297, 1301, 1301, 1301, 1301, 1301, 1301, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 1301, 1301, 1301, 1301, 1309, 1309, 1309, 1241, - 1324, 1324, 562, 1324, 1325, 1326, 1327, 1241, 1328, 464, - 1328, 1241, 572, 1328, 1241, 575, 575, 1241, 575, 1309, - 467, 467, 1241, 1241, 467, 467, 467, 467, 467, 1241, - 1241, 467, 467, 467, 467, 467, 467, 467, 467, 467, - - 467, 467, 467, 467, 1309, 1309, 1309, 1309, 1309, 1241, - 1241, 1241, 1321, 1309, 1309, 1309, 1241, 1241, 1241, 512, - 513, 514, 514, 1323, 1323, 514, 514, 514, 514, 514, - 514, 514, 514, 514, 1297, 1297, 1297, 1297, 1297, 1301, - 1301, 1301, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 1301, 1301, 1301, 1301, 1301, - 1309, 1309, 1309, 1309, 1309, 1329, 1329, 1330, 1331, 1241, - 1241, 1241, 1241, 1241, 1332, 1332, 1333, 578, 1333, 1241, - 680, 1333, 1241, 683, 683, 1241, 683, 1309, 467, 467, - 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, - - 467, 467, 467, 467, 467, 467, 467, 1309, 1309, 1309, - 1309, 1309, 1241, 1241, 1321, 1309, 1309, 1309, 1241, 1241, - 1241, 1241, 1241, 514, 514, 1323, 1323, 514, 514, 514, - 1323, 514, 514, 514, 514, 514, 1297, 1297, 1297, 1297, - 1297, 1301, 1301, 1301, 1301, 1301, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 1301, - 1301, 1301, 1301, 1301, 1309, 1309, 1309, 1241, 1334, 1335, - 670, 1241, 772, 772, 1241, 772, 1241, 1241, 1241, 1241, - 1241, 1241, 1336, 1336, 1337, 686, 1337, 1241, 788, 1337, - 1241, 791, 791, 1241, 791, 1309, 1241, 1241, 1241, 797, - - 797, 797, 797, 1241, 1241, 797, 797, 797, 797, 1241, - 1241, 797, 797, 797, 797, 1241, 1241, 1241, 1241, 797, - 1309, 1241, 1241, 1338, 1309, 1309, 1309, 1241, 1241, 1241, - 1241, 1339, 1339, 831, 831, 1339, 1339, 831, 831, 1340, - 1341, 1341, 1341, 1241, 844, 844, 844, 844, 844, 844, - 844, 844, 1341, 1309, 1309, 1309, 1309, 1309, 1241, 1342, - 1241, 1343, 775, 1343, 1343, 865, 1343, 1241, 868, 868, - 1241, 868, 1241, 1241, 1241, 1241, 1344, 1344, 1345, 794, - 1345, 1241, 882, 1345, 1241, 885, 885, 885, 1309, 1241, - 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, - - 890, 890, 1309, 1241, 1241, 1346, 1309, 1309, 1309, 1241, - 1241, 1241, 1241, 1241, 1241, 1347, 1347, 915, 915, 1347, - 1347, 915, 915, 1348, 1349, 1349, 1349, 1349, 1349, 1241, - 930, 930, 930, 930, 930, 930, 930, 930, 1349, 1309, - 1309, 1309, 1309, 1241, 1241, 1241, 1241, 1350, 1350, 1351, - 871, 1351, 1351, 953, 1351, 1241, 956, 956, 1241, 956, - 1241, 1241, 1241, 1241, 1241, 1241, 1352, 1352, 1353, 1353, - 1353, 971, 1353, 1309, 890, 890, 890, 890, 890, 1241, - 1241, 890, 890, 890, 1241, 1241, 1241, 1241, 890, 1241, - 1241, 1354, 1346, 1309, 1355, 1356, 1241, 1241, 1241, 1241, - - 915, 1347, 1347, 915, 1347, 1347, 1349, 1349, 1349, 1349, - 930, 930, 930, 930, 930, 930, 1309, 1309, 1309, 1309, - 1309, 1309, 1241, 1241, 1241, 1241, 1241, 1241, 1357, 1357, - 1358, 959, 1358, 1358, 1034, 1358, 1241, 1037, 1037, 1241, - 1037, 1241, 1241, 1241, 1241, 1359, 1359, 1309, 890, 1241, - 1241, 890, 1241, 1241, 890, 890, 890, 890, 1241, 1354, - 1354, 1241, 1354, 1346, 1355, 1355, 1355, 1355, 1241, 1355, - 1356, 1356, 1241, 1241, 1241, 1241, 1241, 1241, 1347, 915, - 1347, 1347, 1349, 1349, 1349, 1349, 1349, 1349, 930, 930, - 930, 930, 1309, 1309, 1309, 1241, 1241, 1241, 1241, 1360, - - 1360, 1361, 1040, 1361, 1361, 1105, 1361, 1241, 1108, 1108, - 1108, 1241, 1241, 1241, 1241, 1241, 1309, 890, 1241, 1241, - 890, 890, 890, 1241, 1346, 1241, 1241, 1241, 1241, 1241, - 915, 1347, 1347, 1349, 1349, 1349, 930, 930, 930, 1309, - 1309, 1309, 1309, 1309, 1241, 1241, 1241, 1241, 1241, 1241, - 1362, 1362, 1363, 1363, 1363, 1155, 1155, 890, 1241, 1241, - 1241, 1241, 890, 1364, 1241, 1241, 1241, 1241, 1241, 1347, - 1349, 1349, 1349, 1349, 1349, 930, 1309, 1309, 1309, 1241, - 1241, 1241, 1241, 1365, 1365, 890, 1241, 1241, 1364, 1364, - 1241, 1364, 1241, 1241, 1241, 1349, 1349, 1349, 1309, 1309, - - 1309, 1309, 1309, 1241, 1241, 1241, 1241, 1241, 890, 1241, - 1241, 1241, 1241, 1241, 1241, 1349, 1349, 1349, 1349, 1349, - 1309, 1309, 1309, 890, 1241, 1241, 1241, 1349, 1349, 1349, - 1309, 1309, 1309, 890, 1241, 1241, 1241, 1349, 1349, 1349, - 0, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241 + 1253, 1, 1, 1, 1254, 1254, 1255, 1255, 1256, 1256, + 1257, 1257, 1258, 1258, 1253, 15, 1259, 1259, 1253, 19, + 1253, 1260, 1253, 1253, 1253, 1253, 1253, 1261, 1262, 1253, + 1253, 1263, 1253, 1264, 1260, 35, 35, 1265, 1253, 1253, + 1260, 1253, 42, 42, 42, 42, 42, 47, 47, 47, + 47, 47, 47, 47, 47, 1260, 1266, 35, 1260, 1260, + 1253, 1261, 42, 42, 47, 47, 47, 1253, 1253, 1253, + 1267, 42, 47, 47, 47, 1268, 1260, 1269, 1253, 1253, + 1269, 1253, 1269, 1253, 1270, 1270, 1253, 1253, 1270, 1253, + 1253, 1271, 1261, 1253, 1272, 1273, 1253, 1273, 1253, 1273, + + 1253, 1274, 1275, 1275, 1275, 1253, 1253, 1276, 1277, 1278, + 1253, 111, 111, 111, 1253, 115, 115, 115, 115, 119, + 119, 119, 119, 119, 119, 1279, 111, 114, 114, 114, + 1280, 1280, 1253, 1280, 1281, 1282, 1283, 1284, 1281, 139, + 139, 1253, 142, 142, 142, 142, 146, 146, 146, 146, + 146, 146, 1281, 1285, 139, 1281, 1281, 1286, 1286, 1253, + 1253, 1253, 1287, 1253, 1253, 1288, 1253, 1289, 1253, 1276, + 1289, 1290, 1290, 1291, 1292, 1286, 1286, 1286, 1293, 178, + 178, 178, 178, 1294, 1295, 1286, 1253, 187, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + + 188, 188, 188, 188, 188, 1253, 1253, 1286, 1286, 1296, + 1297, 1286, 1296, 1286, 1286, 1286, 1253, 1253, 1253, 1253, + 1253, 1253, 1287, 1286, 178, 1286, 1286, 1286, 1253, 1253, + 1253, 1253, 1298, 1299, 1286, 188, 1300, 1301, 1286, 1300, + 1286, 1302, 1302, 1253, 1253, 1253, 1253, 1303, 1303, 1303, + 1253, 1253, 1288, 1304, 1305, 1305, 1253, 1253, 1305, 1305, + 1306, 1253, 1306, 1306, 1253, 1253, 1253, 1276, 1276, 1276, + 1307, 1308, 1309, 1307, 1310, 1253, 1253, 1309, 278, 278, + 278, 278, 1253, 283, 284, 1311, 284, 284, 284, 284, + 284, 284, 284, 284, 1253, 1297, 1309, 1309, 1309, 1312, + + 1312, 1312, 1313, 1313, 1314, 1314, 1315, 1315, 1316, 1317, + 1313, 1313, 1313, 313, 313, 313, 313, 1253, 318, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 1313, 1313, + 1318, 1313, 1318, 1313, 1313, 1313, 1319, 1319, 1320, 1253, + 1253, 1321, 1321, 1321, 1321, 345, 1322, 1253, 1323, 1253, + 1321, 1253, 352, 353, 353, 353, 353, 353, 353, 353, + 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, + 353, 353, 353, 353, 353, 353, 1324, 1324, 1321, 1321, + 1321, 1253, 1253, 1253, 1253, 1253, 1319, 1321, 1321, 345, + 1321, 1321, 1321, 1253, 1253, 1325, 1326, 1326, 1321, 1253, + + 1253, 1253, 1253, 1309, 404, 1253, 406, 407, 407, 407, + 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, + 407, 1327, 1309, 1309, 1309, 1253, 1313, 1313, 1313, 313, + 430, 318, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 1318, 1318, 1313, + 1313, 1313, 1253, 1320, 1320, 1321, 1321, 1321, 1321, 1321, + 1321, 1328, 1329, 1329, 464, 1330, 1329, 1331, 1332, 1253, + 470, 470, 1253, 470, 1321, 1253, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 1321, + + 1321, 1321, 1321, 1321, 1253, 1253, 1253, 1253, 1253, 1253, + 1333, 1321, 1321, 1321, 1334, 1321, 1253, 1253, 1253, 1253, + 1253, 1309, 1253, 523, 524, 524, 1335, 524, 524, 524, + 524, 524, 524, 524, 524, 524, 524, 1309, 1309, 1309, + 1309, 1309, 1313, 1313, 1313, 1313, 1313, 1313, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 1313, 1313, 1313, 1313, 1313, 1321, 1321, + 1321, 1253, 1336, 1336, 574, 1336, 1337, 1338, 1339, 1253, + 1340, 473, 1340, 1253, 584, 1340, 1253, 587, 587, 1253, + 587, 1321, 476, 476, 1253, 1253, 476, 476, 476, 476, + + 476, 1253, 1253, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 1321, 1321, 1321, 1321, + 1321, 1253, 1253, 1253, 1333, 1321, 1321, 1321, 1253, 1253, + 1253, 522, 523, 524, 524, 1335, 1335, 524, 524, 524, + 524, 524, 524, 524, 524, 524, 1309, 1309, 1309, 1309, + 1309, 1313, 1313, 1313, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 1313, 1313, 1313, + 1313, 1313, 1321, 1321, 1321, 1321, 1321, 1341, 1341, 1342, + 1343, 1253, 1253, 1253, 1253, 1253, 1344, 1344, 1345, 590, + 1345, 1253, 692, 1345, 1253, 695, 695, 1253, 695, 1321, + + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 1321, + 1321, 1321, 1321, 1321, 1253, 1253, 1333, 1321, 1321, 1321, + 1253, 1253, 1253, 1253, 1253, 524, 524, 1335, 1335, 524, + 524, 524, 1335, 524, 524, 524, 524, 524, 1309, 1309, + 1309, 1309, 1309, 1313, 1313, 1313, 1313, 1313, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 1313, 1313, 1313, 1313, 1313, 1321, 1321, 1321, 1253, + 1346, 1347, 682, 1253, 784, 784, 1253, 784, 1253, 1253, + 1253, 1253, 1253, 1253, 1348, 1348, 1349, 698, 1349, 1253, + + 800, 1349, 1253, 803, 803, 1253, 803, 1321, 1253, 1253, + 1253, 809, 809, 809, 809, 1253, 1253, 809, 809, 809, + 809, 1253, 1253, 809, 809, 809, 809, 1253, 1253, 1253, + 1253, 809, 1321, 1253, 1253, 1350, 1321, 1321, 1321, 1253, + 1253, 1253, 1253, 1351, 1351, 843, 843, 1351, 1351, 843, + 843, 1352, 1353, 1353, 1353, 1253, 856, 856, 856, 856, + 856, 856, 856, 856, 1353, 1321, 1321, 1321, 1321, 1321, + 1253, 1354, 1253, 1355, 787, 1355, 1355, 877, 1355, 1253, + 880, 880, 1253, 880, 1253, 1253, 1253, 1253, 1356, 1356, + 1357, 806, 1357, 1253, 894, 1357, 1253, 897, 897, 897, + + 1321, 1253, 902, 902, 902, 902, 902, 902, 902, 902, + 902, 902, 902, 902, 1321, 1253, 1253, 1358, 1321, 1321, + 1321, 1253, 1253, 1253, 1253, 1253, 1253, 1359, 1359, 927, + 927, 1359, 1359, 927, 927, 1360, 1361, 1361, 1361, 1361, + 1361, 1253, 942, 942, 942, 942, 942, 942, 942, 942, + 1361, 1321, 1321, 1321, 1321, 1253, 1253, 1253, 1253, 1362, + 1362, 1363, 883, 1363, 1363, 965, 1363, 1253, 968, 968, + 1253, 968, 1253, 1253, 1253, 1253, 1253, 1253, 1364, 1364, + 1365, 1365, 1365, 983, 1365, 1321, 902, 902, 902, 902, + 902, 1253, 1253, 902, 902, 902, 1253, 1253, 1253, 1253, + + 902, 1253, 1253, 1366, 1358, 1321, 1367, 1368, 1253, 1253, + 1253, 1253, 927, 1359, 1359, 927, 1359, 1359, 1361, 1361, + 1361, 1361, 942, 942, 942, 942, 942, 942, 1321, 1321, + 1321, 1321, 1321, 1321, 1253, 1253, 1253, 1253, 1253, 1253, + 1369, 1369, 1370, 971, 1370, 1370, 1046, 1370, 1253, 1049, + 1049, 1253, 1049, 1253, 1253, 1253, 1253, 1371, 1371, 1321, + 902, 1253, 1253, 902, 1253, 1253, 902, 902, 902, 902, + 1253, 1366, 1366, 1253, 1366, 1358, 1367, 1367, 1367, 1367, + 1253, 1367, 1368, 1368, 1253, 1253, 1253, 1253, 1253, 1253, + 1359, 927, 1359, 1359, 1361, 1361, 1361, 1361, 1361, 1361, + + 942, 942, 942, 942, 1321, 1321, 1321, 1253, 1253, 1253, + 1253, 1372, 1372, 1373, 1052, 1373, 1373, 1117, 1373, 1253, + 1120, 1120, 1120, 1253, 1253, 1253, 1253, 1253, 1321, 902, + 1253, 1253, 902, 902, 902, 1253, 1358, 1253, 1253, 1253, + 1253, 1253, 927, 1359, 1359, 1361, 1361, 1361, 942, 942, + 942, 1321, 1321, 1321, 1321, 1321, 1253, 1253, 1253, 1253, + 1253, 1253, 1374, 1374, 1375, 1375, 1375, 1167, 1167, 902, + 1253, 1253, 1253, 1253, 902, 1376, 1253, 1253, 1253, 1253, + 1253, 1359, 1361, 1361, 1361, 1361, 1361, 942, 1321, 1321, + 1321, 1253, 1253, 1253, 1253, 1377, 1377, 902, 1253, 1253, + + 1376, 1376, 1253, 1376, 1253, 1253, 1253, 1361, 1361, 1361, + 1321, 1321, 1321, 1321, 1321, 1253, 1253, 1253, 1253, 1253, + 902, 1253, 1253, 1253, 1253, 1253, 1253, 1361, 1361, 1361, + 1361, 1361, 1321, 1321, 1321, 902, 1253, 1253, 1253, 1361, + 1361, 1361, 1321, 1321, 1321, 902, 1253, 1253, 1253, 1361, + 1361, 1361, 0, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253 } ; static yyconst flex_int16_t yy_nxt[9611] = @@ -903,1057 +906,1057 @@ static yyconst flex_int16_t yy_nxt[9611] = 39, 40, 41, 42, 43, 44, 43, 45, 46, 47, 47, 48, 47, 49, 50, 51, 47, 52, 53, 54, 55, 47, 47, 47, 47, 47, 56, 57, 22, 58, - 58, 58, 58, 58, 58, 22, 22, 22, 22, 22, - 22, 22, 22, 59, 22, 22, 60, 157, 185, 156, - 60, 157, 185, 61, 23, 78, 495, 79, 23, 80, - 183, 81, 23, 78, 496, 79, 23, 80, 81, 81, - - 85, 86, 201, 87, 85, 88, 81, 89, 90, 166, - 62, 63, 81, 82, 185, 64, 202, 193, 185, 614, - 81, 82, 194, 65, 228, 190, 66, 67, 228, 280, - 167, 67, 103, 24, 68, 25, 103, 104, 105, 83, - 283, 69, 156, 188, 70, 197, 185, 83, 103, 24, - 185, 25, 103, 104, 105, 91, 189, 168, 22, 71, - 198, 43, 179, 179, 179, 179, 179, 180, 199, 72, - 161, 73, 332, 74, 47, 185, 47, 447, 191, 185, - 166, 85, 86, 75, 87, 85, 88, 106, 89, 90, - 23, 24, 40, 25, 23, 130, 131, 223, 225, 76, - - 67, 265, 225, 106, 67, 172, 172, 68, 156, 185, - 172, 172, 226, 185, 69, 245, 156, 70, 211, 245, - 23, 24, 40, 25, 23, 130, 131, 212, 266, 221, - 172, 22, 71, 156, 43, 299, 91, 248, 204, 293, - 241, 248, 72, 211, 73, 132, 74, 47, 294, 47, - 203, 204, 237, 241, 203, 173, 75, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 213, 260, 253, - 254, 213, 76, 23, 24, 132, 25, 23, 26, 155, - 92, 177, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 188, 483, 484, 185, 252, 252, 280, 185, 156, - - 284, 214, 215, 291, 189, 157, 216, 256, 204, 157, - 241, 256, 259, 345, 217, 314, 259, 218, 258, 228, - 220, 261, 262, 228, 263, 261, 316, 257, 93, 297, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 23, 24, - 292, 25, 23, 26, 227, 92, 166, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 258, 277, 277, - 277, 277, 277, 278, 185, 230, 230, 265, 204, 296, - 230, 230, 276, 276, 276, 276, 276, 276, 276, 276, - 276, 276, 311, 311, 311, 311, 311, 312, 203, 204, - - 230, 241, 203, 93, 301, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 23, 24, 231, 25, 23, 26, 96, - 92, 314, 156, 161, 317, 332, 97, 98, 99, 1241, - 342, 275, 275, 275, 275, 275, 275, 275, 275, 275, - 275, 344, 100, 296, 166, 228, 305, 305, 291, 228, - 156, 305, 305, 310, 310, 310, 310, 310, 310, 310, - 310, 310, 310, 156, 156, 1241, 373, 299, 101, 23, - 24, 305, 25, 23, 26, 96, 92, 329, 1211, 156, - 156, 384, 97, 98, 99, 374, 330, 203, 204, 245, - - 241, 203, 266, 245, 385, 292, 306, 298, 100, 309, - 309, 309, 309, 309, 309, 309, 309, 309, 309, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 203, - 204, 861, 241, 203, 101, 40, 23, 24, 40, 25, - 23, 26, 40, 40, 40, 107, 30, 31, 40, 108, - 33, 40, 40, 109, 110, 111, 112, 110, 110, 110, - 110, 110, 110, 110, 38, 113, 40, 40, 114, 115, - 115, 115, 116, 117, 118, 118, 119, 118, 120, 121, - 122, 118, 123, 118, 124, 118, 118, 118, 118, 118, - 118, 93, 125, 40, 126, 126, 126, 126, 126, 126, - - 127, 127, 127, 127, 127, 127, 127, 127, 128, 127, - 127, 133, 23, 24, 133, 25, 23, 26, 40, 40, - 133, 134, 30, 31, 133, 135, 33, 133, 133, 136, - 137, 138, 139, 137, 137, 137, 137, 137, 137, 137, - 38, 39, 40, 133, 140, 141, 141, 141, 142, 143, - 144, 144, 145, 144, 146, 147, 148, 144, 149, 144, - 150, 144, 144, 144, 144, 144, 144, 151, 152, 133, - 153, 153, 153, 153, 153, 153, 133, 133, 133, 133, - 133, 133, 133, 133, 154, 133, 133, 161, 260, 162, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - - 155, 163, 896, 388, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 174, 185, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 176, 297, 1103, 156, - 177, 177, 177, 177, 177, 177, 386, 176, 258, 204, - 156, 155, 155, 155, 155, 155, 381, 383, 155, 155, - 389, 393, 155, 156, 382, 393, 177, 177, 177, 177, - 177, 177, 155, 156, 156, 155, 155, 155, 155, 392, - 299, 155, 155, 442, 156, 155, 155, 296, 155, 155, - 155, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 176, 381, 299, 155, 184, 184, 184, 184, 184, - - 184, 185, 185, 185, 185, 186, 185, 185, 185, 187, - 185, 185, 185, 185, 185, 185, 185, 185, 156, 155, - 185, 177, 177, 177, 177, 177, 177, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 1241, 161, - 1165, 332, 185, 185, 185, 185, 185, 185, 444, 393, - 332, 259, 185, 393, 334, 259, 185, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 156, 155, 155, - 155, 155, 155, 155, 203, 204, 156, 205, 206, 155, - 155, 155, 295, 381, 155, 155, 295, 299, 155, 172, - - 172, 494, 1241, 443, 172, 172, 340, 340, 340, 340, - 340, 340, 155, 155, 155, 208, 258, 380, 1241, 208, - 208, 208, 156, 209, 172, 208, 208, 466, 342, 208, - 165, 165, 165, 165, 165, 582, 225, 165, 165, 460, - 225, 165, 342, 208, 208, 208, 161, 296, 446, 173, - 226, 1241, 156, 460, 502, 165, 165, 165, 340, 340, - 340, 340, 340, 340, 340, 340, 340, 340, 156, 342, - 210, 161, 1241, 162, 381, 169, 169, 169, 169, 169, - 464, 156, 169, 169, 504, 163, 169, 342, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 460, 266, - - 169, 169, 169, 336, 337, 338, 336, 336, 336, 336, - 336, 336, 336, 340, 340, 340, 340, 340, 340, 340, - 340, 340, 340, 203, 204, 208, 241, 203, 155, 208, - 415, 861, 207, 371, 213, 607, 219, 234, 213, 156, - 156, 234, 234, 234, 161, 235, 332, 234, 234, 357, - 358, 234, 505, 359, 506, 360, 361, 528, 529, 362, - 530, 363, 364, 1103, 156, 234, 234, 234, 214, 215, - 230, 230, 291, 216, 299, 230, 230, 292, 156, 234, - 372, 217, 155, 166, 218, 1241, 233, 390, 161, 556, - 446, 1241, 236, 240, 204, 230, 241, 240, 242, 389, - - 243, 595, 585, 501, 1241, 242, 156, 243, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, 580, 292, - 231, 243, 243, 357, 358, 1032, 444, 359, 446, 360, - 361, 266, 1241, 362, 391, 363, 203, 204, 1241, 241, - 203, 203, 204, 1241, 241, 203, 1241, 599, 243, 242, - 161, 581, 162, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 597, 249, 586, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 267, 261, 262, - 267, 263, 261, 604, 583, 251, 267, 267, 583, 251, - 267, 251, 251, 267, 267, 208, 252, 172, 298, 251, - - 1145, 172, 326, 440, 172, 491, 492, 269, 493, 267, - 635, 172, 584, 636, 251, 394, 395, 396, 394, 394, - 394, 394, 394, 394, 394, 172, 172, 398, 398, 398, - 398, 398, 398, 270, 267, 267, 172, 1241, 185, 172, - 156, 893, 172, 172, 1241, 172, 172, 172, 172, 172, - 441, 593, 172, 172, 264, 264, 264, 264, 564, 564, - 564, 264, 264, 1241, 602, 264, 269, 172, 172, 398, - 398, 398, 398, 398, 398, 398, 398, 398, 398, 603, - 264, 264, 398, 398, 398, 398, 398, 398, 398, 398, - 398, 398, 272, 172, 172, 269, 156, 1241, 273, 269, - - 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, - 176, 269, 689, 381, 275, 275, 275, 275, 275, 275, - 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 1241, 1176, 388, - 275, 275, 275, 275, 275, 275, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 1241, 587, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 269, 1241, - 1241, 1241, 1241, 269, 269, 269, 269, 269, 269, 592, - 600, 267, 267, 267, 267, 267, 389, 605, 267, 267, - 606, 594, 267, 423, 423, 423, 423, 423, 423, 269, - - 269, 269, 269, 269, 269, 269, 267, 267, 267, 269, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 176, 269, 156, 1241, 279, 279, 279, 279, 279, 279, - 280, 280, 280, 280, 281, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 601, 1170, 282, - 275, 275, 275, 275, 275, 275, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 1241, 1241, 176, - 156, 280, 280, 280, 280, 280, 280, 609, 406, 407, - 596, 280, 408, 1241, 409, 410, 156, 1241, 411, 590, - - 412, 553, 554, 590, 555, 698, 299, 269, 269, 269, - 269, 269, 269, 307, 598, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 176, 608, 591, 156, 309, - 309, 309, 309, 309, 309, 616, 299, 1241, 711, 299, - 298, 298, 298, 298, 298, 176, 660, 298, 298, 588, - 156, 298, 299, 532, 589, 309, 309, 309, 309, 309, - 309, 298, 156, 624, 298, 298, 298, 298, 625, 688, - 298, 298, 156, 156, 298, 298, 342, 298, 298, 298, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 176, 615, 299, 298, 313, 313, 313, 313, 313, 313, - - 314, 314, 314, 314, 315, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 299, 298, 314, - 309, 309, 309, 309, 309, 309, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 1241, 935, 659, - 314, 314, 314, 314, 314, 314, 314, 656, 431, 432, - 657, 314, 433, 342, 434, 435, 305, 305, 436, 645, - 437, 305, 305, 161, 646, 332, 1241, 298, 298, 298, - 298, 298, 298, 203, 204, 299, 324, 325, 298, 298, - 298, 305, 299, 298, 298, 1032, 701, 298, 419, 420, - - 421, 419, 419, 419, 419, 419, 419, 419, 1241, 658, - 1241, 298, 298, 298, 208, 1241, 306, 590, 208, 208, - 208, 590, 327, 702, 208, 208, 693, 1241, 208, 300, - 300, 300, 300, 300, 691, 299, 300, 300, 299, 613, - 300, 697, 208, 208, 208, 591, 1241, 203, 204, 1241, - 241, 203, 692, 1241, 300, 300, 300, 1241, 1241, 696, - 302, 302, 302, 302, 302, 694, 1004, 302, 302, 328, - 172, 302, 700, 155, 171, 155, 155, 171, 690, 280, - 155, 155, 708, 709, 171, 302, 302, 302, 423, 423, - 423, 423, 423, 423, 423, 423, 423, 423, 171, 171, - - 155, 174, 299, 339, 339, 339, 339, 339, 339, 339, - 339, 339, 339, 176, 156, 156, 951, 339, 339, 339, - 339, 339, 339, 423, 423, 423, 423, 423, 423, 423, - 423, 423, 423, 573, 573, 573, 573, 573, 574, 1241, - 156, 568, 342, 339, 339, 339, 339, 339, 339, 155, - 1241, 583, 155, 570, 156, 583, 1241, 705, 155, 155, - 712, 695, 155, 155, 800, 155, 155, 155, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 176, 584, - 1138, 155, 346, 346, 346, 346, 346, 346, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - - 185, 185, 185, 185, 185, 156, 155, 185, 339, 339, - 339, 339, 339, 339, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 1241, 1062, 763, 1063, 185, - 185, 185, 185, 185, 185, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 155, 155, 155, 155, 155, - 155, 208, 299, 1241, 1241, 208, 208, 208, 1241, 209, - 230, 208, 208, 1241, 230, 208, 447, 230, 448, 448, - 448, 448, 448, 448, 230, 1241, 1241, 812, 1137, 208, - - 208, 208, 1241, 710, 703, 704, 1241, 1241, 230, 230, - 507, 1241, 508, 508, 508, 508, 508, 508, 508, 508, - 508, 508, 156, 628, 699, 156, 210, 230, 718, 706, - 155, 229, 155, 155, 229, 1241, 156, 155, 155, 1133, - 507, 229, 509, 509, 509, 509, 509, 509, 509, 509, - 509, 509, 622, 299, 761, 229, 229, 155, 234, 764, - 760, 1241, 234, 234, 234, 1241, 235, 661, 234, 234, - 1241, 507, 234, 510, 510, 510, 510, 510, 511, 508, - 508, 508, 508, 1241, 342, 299, 234, 234, 234, 1241, - 305, 854, 707, 299, 305, 570, 507, 305, 508, 508, - - 508, 508, 508, 508, 305, 161, 156, 332, 623, 156, - 156, 1241, 762, 236, 267, 342, 185, 267, 305, 305, - 900, 716, 717, 267, 267, 1241, 460, 267, 797, 156, - 267, 267, 557, 558, 559, 557, 557, 557, 557, 557, - 557, 557, 742, 802, 269, 299, 267, 562, 562, 563, - 564, 564, 564, 564, 564, 564, 564, 457, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, 156, 156, - 270, 267, 267, 172, 796, 1241, 172, 342, 715, 172, - 172, 299, 172, 172, 172, 172, 172, 1132, 570, 172, - 172, 1241, 806, 571, 571, 571, 571, 571, 571, 571, - - 571, 571, 571, 269, 172, 172, 617, 618, 619, 617, - 617, 617, 617, 617, 617, 617, 507, 1241, 508, 508, - 508, 508, 508, 508, 508, 508, 508, 508, 1241, 272, - 172, 172, 273, 813, 397, 397, 397, 397, 397, 397, - 397, 397, 397, 397, 176, 1241, 1131, 801, 397, 397, - 397, 397, 397, 397, 507, 1241, 508, 508, 508, 508, - 508, 508, 508, 508, 508, 508, 803, 808, 1224, 590, - 568, 342, 809, 590, 397, 397, 397, 397, 397, 397, - 269, 1241, 570, 185, 269, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 176, 269, 591, 815, 399, - - 399, 399, 399, 399, 399, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 891, 185, 282, 397, 397, 397, 397, 397, - 397, 269, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 1241, 568, 342, 1241, 280, 280, 280, 280, - 280, 280, 1241, 1241, 897, 678, 1241, 185, 1241, 1241, - 156, 814, 1241, 1241, 807, 1241, 1073, 1241, 342, 1241, - 1241, 821, 269, 269, 269, 269, 269, 269, 305, 678, - 1241, 298, 304, 298, 298, 304, 1241, 1241, 298, 298, - - 629, 820, 304, 1241, 626, 1241, 1241, 836, 849, 1241, - 1241, 627, 837, 850, 156, 630, 304, 304, 298, 307, - 1073, 422, 422, 422, 422, 422, 422, 422, 422, 422, - 422, 176, 826, 1241, 1241, 422, 422, 422, 422, 422, - 422, 156, 899, 583, 590, 1241, 1241, 583, 590, 1241, - 1241, 185, 825, 631, 185, 632, 895, 156, 299, 894, - 185, 422, 422, 422, 422, 422, 422, 298, 827, 185, - 298, 584, 591, 1241, 1241, 156, 298, 298, 314, 1013, - 298, 298, 889, 298, 298, 298, 424, 424, 424, 424, - 424, 424, 424, 424, 424, 424, 176, 633, 724, 298, - - 424, 424, 424, 424, 424, 424, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 299, 298, 314, 422, 422, 422, 422, - 422, 422, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 1241, 299, 342, 976, 314, 314, 314, - 314, 314, 314, 1241, 185, 853, 570, 1241, 640, 641, - 642, 640, 640, 640, 640, 640, 640, 640, 798, 161, - 156, 332, 798, 298, 298, 298, 298, 298, 298, 208, - 342, 1241, 919, 208, 208, 208, 280, 327, 903, 208, - - 208, 678, 918, 208, 280, 299, 799, 634, 342, 568, - 342, 676, 676, 676, 676, 676, 676, 208, 208, 208, - 532, 570, 533, 533, 533, 533, 533, 533, 667, 667, - 667, 667, 667, 667, 667, 667, 667, 667, 457, 824, - 185, 156, 951, 898, 328, 447, 922, 448, 448, 448, - 448, 448, 448, 448, 448, 448, 448, 280, 908, 299, - 672, 673, 674, 672, 672, 672, 672, 672, 672, 672, - 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, - 156, 280, 863, 907, 156, 447, 923, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 680, 680, 680, - - 680, 680, 680, 680, 680, 680, 680, 681, 681, 681, - 681, 681, 682, 765, 766, 767, 765, 765, 765, 765, - 765, 765, 765, 1023, 156, 447, 934, 450, 450, 450, - 450, 450, 451, 448, 448, 448, 448, 1241, 314, 679, - 679, 679, 679, 679, 679, 679, 679, 679, 679, 719, - 156, 720, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 161, 925, 332, 156, 452, 452, 452, 452, 452, - 452, 452, 452, 452, 452, 176, 568, 342, 1089, 452, - 452, 452, 452, 452, 452, 719, 861, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 892, 863, 314, - - 299, 1082, 156, 931, 185, 452, 452, 452, 452, 452, - 452, 454, 455, 456, 456, 456, 456, 456, 456, 456, - 456, 457, 906, 1081, 982, 458, 458, 458, 458, 458, - 458, 719, 156, 722, 722, 722, 722, 722, 723, 720, - 720, 720, 720, 1241, 314, 185, 1079, 1241, 936, 989, - 909, 458, 458, 458, 458, 458, 458, 342, 461, 462, - 463, 461, 461, 461, 461, 461, 461, 461, 464, 156, - 185, 1241, 465, 465, 465, 465, 465, 465, 1241, 730, - 1241, 1241, 1241, 1241, 1241, 1241, 777, 1241, 778, 778, - 778, 778, 778, 778, 778, 778, 778, 778, 465, 465, - - 465, 465, 465, 465, 155, 314, 1241, 155, 1241, 1241, - 938, 1241, 725, 155, 155, 728, 734, 155, 155, 156, - 155, 155, 155, 467, 467, 467, 467, 467, 467, 467, - 467, 467, 467, 176, 736, 1117, 155, 467, 467, 467, - 467, 467, 467, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 156, 155, 185, 452, 452, 452, 452, 452, 452, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 1241, 568, 342, 1059, 185, 185, 185, 185, 185, 185, - - 1241, 1241, 314, 678, 1241, 1241, 1241, 1241, 933, 1015, - 1241, 1241, 314, 1241, 1241, 804, 937, 1241, 863, 804, - 155, 155, 155, 155, 155, 155, 208, 314, 1241, 1241, - 208, 208, 208, 299, 209, 1241, 208, 208, 1241, 342, - 208, 1241, 729, 805, 978, 735, 342, 568, 342, 732, - 678, 939, 185, 185, 208, 208, 208, 786, 731, 786, - 661, 733, 662, 662, 662, 662, 662, 662, 777, 983, - 779, 779, 779, 779, 779, 779, 779, 779, 779, 779, - 185, 210, 208, 1241, 342, 156, 208, 208, 208, 208, - 371, 974, 208, 208, 1080, 786, 208, 280, 777, 156, - - 780, 780, 780, 780, 780, 781, 778, 778, 778, 778, - 208, 208, 208, 687, 687, 687, 687, 687, 687, 687, - 687, 687, 687, 568, 342, 784, 784, 784, 784, 784, - 784, 961, 979, 568, 342, 678, 810, 210, 234, 185, - 810, 977, 234, 234, 234, 786, 235, 185, 234, 234, - 1014, 1017, 234, 788, 788, 788, 788, 788, 788, 788, - 788, 788, 788, 314, 811, 342, 234, 234, 234, 789, - 789, 789, 789, 789, 790, 1241, 786, 787, 787, 787, - 787, 787, 787, 787, 787, 787, 787, 816, 818, 984, - 156, 816, 818, 236, 234, 1241, 342, 185, 234, 234, - - 234, 234, 390, 156, 234, 234, 861, 719, 234, 720, - 720, 720, 720, 720, 720, 817, 819, 161, 863, 332, - 994, 863, 234, 234, 234, 828, 829, 830, 828, 828, - 828, 828, 828, 828, 828, 719, 861, 720, 720, 720, - 720, 720, 720, 720, 720, 720, 720, 771, 951, 236, - 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 176, 314, 1091, 1234, 512, 512, 512, 512, 512, 512, - 719, 1241, 720, 720, 720, 720, 720, 720, 720, 720, - 720, 720, 1064, 951, 185, 798, 568, 342, 342, 798, - 512, 512, 512, 512, 512, 512, 269, 1209, 880, 880, - - 269, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 176, 269, 799, 185, 513, 513, 513, 513, 513, - 513, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 568, 342, - 282, 512, 512, 512, 512, 512, 512, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 1241, 1124, - 299, 1063, 280, 280, 280, 280, 280, 280, 776, 776, - 776, 776, 776, 776, 776, 776, 776, 776, 1241, 804, - 1241, 1241, 1241, 804, 1241, 1241, 1052, 1016, 269, 269, - - 269, 269, 269, 269, 532, 185, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 1241, 805, 1241, 1241, - 156, 1012, 1061, 1062, 831, 1063, 1061, 1017, 810, 1241, - 1241, 1048, 810, 1241, 1241, 834, 816, 818, 835, 1090, - 816, 818, 314, 299, 532, 1006, 534, 534, 534, 534, - 534, 534, 534, 534, 534, 534, 811, 1241, 1241, 1241, - 342, 1055, 1005, 1057, 817, 819, 156, 1003, 798, 185, - 185, 880, 798, 742, 839, 743, 743, 743, 743, 743, - 743, 838, 1092, 299, 532, 314, 535, 535, 535, 535, - 535, 536, 533, 533, 533, 533, 799, 314, 1139, 841, - - 842, 843, 841, 841, 841, 841, 841, 841, 841, 804, - 810, 816, 299, 804, 810, 816, 1002, 1121, 818, 1191, - 910, 1192, 818, 299, 298, 185, 537, 537, 537, 537, - 537, 537, 537, 537, 537, 537, 299, 805, 811, 817, - 537, 537, 537, 537, 537, 537, 819, 865, 865, 865, - 865, 865, 865, 865, 865, 865, 865, 866, 866, 866, - 866, 866, 867, 1186, 156, 991, 537, 537, 537, 537, - 537, 537, 538, 538, 538, 538, 538, 538, 538, 538, - 538, 538, 1049, 185, 990, 156, 538, 538, 538, 538, - 538, 538, 1241, 185, 864, 864, 864, 864, 864, 864, - - 864, 864, 864, 864, 777, 1083, 778, 778, 778, 778, - 778, 778, 537, 537, 537, 537, 537, 537, 208, 568, - 342, 185, 208, 208, 208, 1210, 327, 1192, 208, 208, - 771, 880, 208, 873, 874, 875, 873, 873, 873, 873, - 873, 873, 873, 566, 299, 932, 208, 208, 208, 777, - 861, 778, 778, 778, 778, 778, 778, 778, 778, 778, - 778, 777, 951, 778, 778, 778, 778, 778, 778, 778, - 778, 778, 778, 328, 208, 1056, 1058, 1208, 208, 208, - 208, 208, 440, 1208, 208, 208, 185, 185, 208, 795, - 795, 795, 795, 795, 795, 795, 795, 795, 795, 924, - - 921, 861, 208, 208, 208, 568, 342, 878, 878, 878, - 878, 878, 878, 1032, 920, 917, 1241, 786, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 1032, 328, - 447, 916, 448, 448, 448, 448, 448, 448, 448, 448, - 448, 448, 883, 883, 883, 883, 883, 884, 1241, 905, - 881, 881, 881, 881, 881, 881, 881, 881, 881, 881, - 798, 804, 810, 816, 798, 804, 810, 816, 1083, 156, - 447, 995, 448, 448, 448, 448, 448, 448, 448, 448, - 448, 448, 954, 954, 954, 954, 954, 955, 799, 805, - 811, 817, 904, 185, 995, 818, 995, 995, 1118, 818, - - 972, 972, 972, 972, 972, 973, 902, 299, 185, 156, - 568, 342, 569, 569, 569, 569, 569, 569, 569, 569, - 569, 569, 570, 819, 901, 777, 571, 571, 571, 571, - 571, 571, 910, 911, 911, 911, 911, 911, 911, 911, - 911, 911, 911, 980, 1123, 992, 161, 980, 332, 992, - 771, 185, 571, 571, 571, 571, 571, 571, 342, 575, - 576, 577, 575, 575, 575, 575, 575, 575, 575, 578, - 995, 981, 566, 579, 579, 579, 579, 579, 579, 910, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 457, 299, 280, 995, 299, 995, 996, 1140, 342, 579, - - 579, 579, 579, 579, 579, 155, 993, 980, 155, 880, - 299, 980, 299, 852, 155, 155, 851, 848, 155, 155, - 156, 155, 155, 155, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 176, 981, 156, 155, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 156, 155, 185, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 620, 620, 620, 620, 620, 620, 620, 620, 620, - 620, 176, 250, 250, 250, 620, 620, 620, 620, 620, - - 620, 910, 913, 913, 913, 913, 913, 914, 911, 911, - 911, 911, 910, 911, 911, 911, 911, 911, 911, 847, - 1122, 620, 620, 620, 620, 620, 620, 269, 185, 846, - 1171, 269, 621, 621, 621, 621, 621, 621, 621, 621, - 621, 621, 176, 269, 845, 844, 621, 621, 621, 621, - 621, 621, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 299, - 840, 282, 620, 620, 620, 620, 620, 620, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 269, 583, - 1199, 1216, 861, 583, 940, 941, 942, 943, 940, 940, - - 940, 940, 940, 940, 1032, 833, 861, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 584, 1103, 1163, - 832, 280, 280, 280, 280, 280, 280, 185, 719, 156, - 299, 156, 854, 855, 855, 855, 855, 855, 855, 1035, - 1035, 1035, 1035, 1035, 1036, 823, 822, 269, 269, 269, - 269, 269, 269, 532, 156, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 1061, 1062, 156, 1063, 1061, - 156, 945, 946, 947, 945, 945, 945, 945, 945, 945, - 945, 872, 872, 872, 872, 872, 872, 872, 872, 872, - 872, 156, 299, 532, 1241, 533, 533, 533, 533, 533, - - 533, 533, 533, 533, 533, 861, 1103, 949, 949, 949, - 949, 949, 949, 250, 250, 250, 1158, 863, 953, 953, - 953, 953, 953, 953, 953, 953, 953, 953, 185, 156, - 985, 1241, 299, 661, 985, 662, 662, 662, 662, 662, - 662, 662, 662, 662, 662, 1241, 771, 952, 952, 952, - 952, 952, 952, 952, 952, 952, 952, 961, 986, 962, - 962, 962, 962, 962, 962, 962, 962, 962, 962, 566, - 987, 457, 156, 661, 987, 663, 663, 663, 663, 663, - 663, 663, 663, 663, 663, 961, 457, 963, 963, 963, - 963, 963, 963, 963, 963, 963, 963, 961, 988, 964, - - 964, 964, 964, 964, 965, 962, 962, 962, 962, 759, - 758, 757, 156, 661, 756, 664, 664, 664, 664, 664, - 665, 662, 662, 662, 662, 888, 888, 888, 888, 888, - 888, 888, 888, 888, 888, 568, 342, 968, 968, 968, - 968, 968, 968, 755, 161, 754, 332, 880, 1184, 1184, - 1184, 1184, 156, 568, 342, 676, 676, 676, 676, 676, - 676, 676, 676, 676, 676, 570, 753, 752, 751, 675, - 675, 675, 675, 675, 675, 971, 971, 971, 971, 971, - 971, 971, 971, 971, 971, 997, 998, 999, 1000, 997, - 997, 997, 997, 997, 997, 675, 675, 675, 675, 675, - - 675, 568, 342, 677, 677, 677, 677, 677, 677, 677, - 677, 677, 677, 678, 1125, 750, 749, 679, 679, 679, - 679, 679, 679, 1241, 748, 970, 970, 970, 970, 970, - 970, 970, 970, 970, 970, 925, 926, 926, 926, 926, - 926, 926, 747, 679, 679, 679, 679, 679, 679, 342, - 683, 684, 685, 683, 683, 683, 683, 683, 683, 683, - 686, 741, 740, 739, 687, 687, 687, 687, 687, 687, - 738, 737, 961, 299, 962, 962, 962, 962, 962, 962, - 980, 727, 1164, 161, 980, 332, 1164, 726, 1241, 1241, - 687, 687, 687, 687, 687, 687, 742, 495, 743, 743, - - 743, 743, 743, 743, 743, 743, 743, 743, 981, 910, - 911, 911, 911, 911, 911, 911, 911, 911, 911, 911, - 985, 714, 713, 1023, 985, 1024, 1024, 1024, 1024, 1024, - 1024, 1024, 1024, 1024, 1024, 299, 742, 185, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 744, 986, 910, - 911, 911, 911, 911, 911, 911, 911, 911, 911, 911, - 987, 985, 987, 1241, 987, 985, 987, 568, 342, 1047, - 1047, 1047, 1047, 1047, 1047, 299, 742, 185, 745, 745, - 745, 745, 745, 746, 743, 743, 743, 743, 988, 986, - 988, 1007, 1008, 1009, 1010, 1007, 1007, 1007, 1007, 1007, - - 1007, 980, 985, 987, 670, 980, 985, 987, 181, 181, - 280, 280, 566, 457, 181, 299, 661, 185, 662, 662, - 662, 662, 662, 662, 662, 662, 662, 662, 299, 981, - 986, 988, 1023, 666, 1025, 1025, 1025, 1025, 1025, 1025, - 1025, 1025, 1025, 1025, 1106, 1106, 1106, 1106, 1106, 1107, - 314, 314, 314, 457, 182, 156, 661, 861, 662, 662, - 662, 662, 662, 662, 662, 662, 662, 662, 1023, 1103, - 1026, 1026, 1026, 1026, 1026, 1027, 1024, 1024, 1024, 1024, - 960, 960, 960, 960, 960, 960, 960, 960, 960, 960, - 1190, 1191, 655, 1192, 1190, 156, 772, 773, 774, 772, - - 772, 772, 772, 772, 772, 772, 775, 654, 653, 652, - 776, 776, 776, 776, 776, 776, 861, 651, 1030, 1030, - 1030, 1030, 1030, 1030, 181, 181, 650, 1053, 951, 1050, - 181, 1053, 649, 1050, 648, 647, 776, 776, 776, 776, - 776, 776, 568, 342, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 678, 1054, 644, 1051, 783, 783, - 783, 783, 783, 783, 1034, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1042, 1043, 1044, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 783, 783, 783, 783, 783, 783, - 568, 342, 785, 785, 785, 785, 785, 785, 785, 785, - - 785, 785, 786, 643, 176, 639, 787, 787, 787, 787, - 787, 787, 1241, 638, 1033, 1033, 1033, 1033, 1033, 1033, - 1033, 1033, 1033, 1033, 1050, 637, 1190, 1191, 1050, 1192, - 1190, 507, 787, 787, 787, 787, 787, 787, 342, 791, - 792, 793, 791, 791, 791, 791, 791, 791, 791, 794, - 495, 612, 1051, 795, 795, 795, 795, 795, 795, 961, - 495, 962, 962, 962, 962, 962, 962, 962, 962, 962, - 962, 341, 341, 280, 611, 495, 610, 341, 1241, 795, - 795, 795, 795, 795, 795, 742, 1241, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 961, 457, 962, - - 962, 962, 962, 962, 962, 962, 962, 962, 962, 566, - 1053, 1119, 1050, 457, 1053, 1119, 1050, 1119, 182, 1050, - 552, 1119, 1053, 1050, 299, 742, 1053, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 1066, 1054, 1120, - 1051, 1066, 1067, 1068, 1069, 1120, 551, 1051, 550, 1073, - 1054, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 314, 549, 548, 299, 854, 855, 855, 855, 855, - 855, 855, 855, 855, 855, 855, 185, 1066, 547, 185, - 546, 1066, 1067, 1068, 1069, 1156, 1156, 1156, 1156, 1156, - 1157, 1073, 1070, 1075, 1075, 1075, 1075, 1075, 1075, 1075, - - 1075, 1075, 1075, 156, 854, 856, 856, 856, 856, 856, - 856, 856, 856, 856, 856, 1073, 545, 1076, 1076, 1076, - 1076, 1076, 1077, 1078, 1078, 1078, 1078, 1053, 453, 453, - 544, 1053, 1072, 1017, 453, 1018, 1018, 1018, 1018, 1018, - 1018, 543, 156, 854, 857, 857, 857, 857, 857, 858, - 855, 855, 855, 855, 1073, 1054, 1078, 1078, 1078, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 542, 1161, 541, 1159, - 540, 1161, 156, 1159, 282, 282, 314, 282, 282, 282, - 282, 156, 861, 539, 862, 862, 862, 862, 862, 862, - 862, 862, 862, 862, 863, 1162, 307, 1160, 864, 864, - - 864, 864, 864, 864, 1093, 1094, 1095, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1096, 1097, 1098, 1096, 1096, 1096, - 1096, 1096, 1096, 1096, 864, 864, 864, 864, 864, 864, - 868, 869, 870, 868, 868, 868, 868, 868, 868, 868, - 871, 156, 531, 527, 872, 872, 872, 872, 872, 872, - 1023, 526, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1024, 1024, 1023, 525, 1024, 1024, 1024, 1024, 1024, 1024, - 872, 872, 872, 872, 872, 872, 568, 342, 878, 878, - 878, 878, 878, 878, 878, 878, 878, 878, 786, 524, - 523, 522, 877, 877, 877, 877, 877, 877, 1023, 521, - - 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, - 1073, 520, 1074, 1074, 1074, 1074, 1074, 1074, 877, 877, - 877, 877, 877, 877, 568, 342, 879, 879, 879, 879, - 879, 879, 879, 879, 879, 879, 880, 519, 518, 517, - 881, 881, 881, 881, 881, 881, 1041, 1041, 1041, 1041, - 1041, 1041, 1041, 1041, 1041, 1041, 1105, 1105, 1105, 1105, - 1105, 1105, 1105, 1105, 1105, 1105, 881, 881, 881, 881, - 881, 881, 342, 885, 886, 887, 885, 885, 885, 885, - 885, 885, 885, 516, 515, 514, 273, 888, 888, 888, - 888, 888, 888, 861, 503, 1101, 1101, 1101, 1101, 1101, - - 1101, 500, 499, 498, 497, 1032, 342, 1112, 1112, 1112, - 1112, 1112, 1112, 888, 888, 888, 888, 888, 888, 155, - 1241, 282, 155, 1065, 282, 490, 282, 489, 155, 155, - 1065, 1065, 155, 155, 1065, 155, 155, 155, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 1065, 1065, - 1065, 155, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 890, 185, 185, - 185, 185, 185, 185, 185, 156, 155, 185, 155, 155, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - 155, 155, 155, 155, 155, 269, 488, 487, 486, 269, - - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 485, 269, 482, 481, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 915, 280, - 280, 280, 280, 280, 280, 280, 280, 480, 479, 282, - 269, 269, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 925, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 1241, 478, - 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, 1104, - 342, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, - 1112, 477, 476, 475, 474, 299, 925, 927, 927, 927, - - 927, 927, 927, 927, 927, 927, 927, 342, 1113, 1113, - 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 342, 1114, - 1114, 1114, 1114, 1114, 1115, 1112, 1112, 1112, 1112, 1119, - 473, 472, 471, 1119, 299, 925, 928, 928, 928, 928, - 928, 929, 926, 926, 926, 926, 470, 1159, 1241, 469, - 468, 1159, 1241, 1241, 1241, 1241, 1126, 1120, 182, 1127, - 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 174, - 560, 560, 299, 299, 298, 1160, 560, 298, 439, 561, - 561, 438, 430, 298, 298, 561, 185, 298, 298, 429, - 298, 298, 298, 314, 314, 314, 314, 314, 314, 314, - - 314, 314, 314, 1070, 185, 428, 298, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 930, 314, 314, 314, 314, 314, 314, 314, 314, - 299, 298, 314, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 854, 855, 855, 855, 855, 855, 855, 855, 855, 855, - 855, 1066, 427, 1116, 1116, 1066, 1067, 1068, 1069, 1241, - 1116, 426, 425, 1241, 1067, 1068, 1069, 1128, 1129, 1130, - 1128, 1128, 1128, 1128, 1128, 1128, 1128, 298, 156, 854, - 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, - - 1241, 1184, 418, 1184, 1241, 1241, 1241, 1069, 1241, 1184, - 303, 301, 1241, 1241, 1241, 1241, 1070, 1204, 1204, 1204, - 1204, 1204, 1204, 299, 1070, 296, 417, 156, 861, 416, - 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, - 863, 861, 414, 950, 950, 950, 950, 950, 950, 950, - 950, 950, 950, 951, 413, 1070, 405, 952, 952, 952, - 952, 952, 952, 1072, 1073, 404, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1074, 1235, 1235, 1235, 1235, - 1235, 1235, 403, 952, 952, 952, 952, 952, 952, 956, - 957, 958, 956, 956, 956, 956, 956, 956, 956, 959, - - 402, 401, 400, 960, 960, 960, 960, 960, 960, 1073, - 1241, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1119, 1161, 270, 262, 1119, 1161, 257, 258, 960, - 960, 960, 960, 960, 960, 568, 342, 968, 968, 968, - 968, 968, 968, 968, 968, 968, 968, 880, 252, 1120, - 1162, 967, 967, 967, 967, 967, 967, 252, 1134, 1135, - 1136, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 246, 1083, - 314, 1084, 1084, 1084, 1084, 1084, 1084, 967, 967, 967, - 967, 967, 967, 568, 342, 969, 969, 969, 969, 969, - 969, 969, 969, 969, 969, 299, 204, 239, 156, 970, - - 970, 970, 970, 970, 970, 1161, 387, 1241, 299, 1161, - 1071, 1159, 379, 565, 565, 1159, 378, 1071, 1071, 565, - 377, 1071, 376, 375, 156, 970, 970, 970, 970, 970, - 970, 155, 370, 1162, 155, 1071, 1071, 1071, 369, 1160, - 155, 155, 368, 367, 155, 155, 366, 155, 155, 155, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 280, 365, 185, 155, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 156, 155, 975, - 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, - - 155, 155, 155, 155, 155, 155, 155, 269, 356, 355, - 354, 269, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 353, 269, 352, 351, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 1001, 280, 280, 280, 280, 280, 350, - 349, 282, 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, 269, 925, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, - 1145, 348, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, - 1146, 1146, 1145, 347, 1147, 1147, 1147, 1147, 1147, 1147, - - 1147, 1147, 1147, 1147, 182, 155, 182, 299, 925, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 1145, - 272, 1148, 1148, 1148, 1148, 1148, 1149, 1146, 1146, 1146, - 1146, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, - 1111, 170, 168, 161, 159, 156, 299, 298, 1187, 1187, - 298, 323, 1187, 1187, 322, 321, 298, 298, 320, 319, - 298, 298, 318, 298, 298, 298, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 1188, 1188, 314, 298, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 1011, 314, 314, - - 314, 314, 314, 299, 298, 314, 298, 298, 298, 298, - 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, - 298, 298, 298, 1017, 303, 1018, 1018, 1018, 1018, 1018, - 1018, 1018, 1018, 1018, 1018, 861, 299, 1152, 1152, 1152, - 1152, 1152, 1152, 296, 290, 289, 288, 1103, 1155, 1155, - 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 666, 666, - 287, 286, 156, 1017, 666, 1019, 1019, 1019, 1019, 1019, - 1019, 1019, 1019, 1019, 1019, 1241, 285, 1154, 1154, 1154, - 1154, 1154, 1154, 1154, 1154, 1154, 1154, 342, 1112, 1112, - 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 668, 668, - - 280, 258, 156, 1017, 668, 1020, 1020, 1020, 1020, 1020, - 1021, 1022, 1022, 1022, 1022, 342, 1112, 1112, 1112, 1112, - 1112, 1112, 1112, 1112, 1112, 1112, 1127, 1127, 1127, 1127, - 1127, 1127, 1127, 1127, 1127, 1127, 252, 246, 669, 669, - 158, 239, 156, 1017, 669, 1022, 1022, 1022, 1018, 1018, - 1018, 1018, 1018, 1018, 1018, 1127, 1127, 1127, 1127, 1127, - 1127, 1127, 1127, 1127, 1127, 1165, 158, 1166, 1166, 1166, - 1166, 1166, 1166, 1166, 1166, 1166, 1166, 197, 768, 768, - 232, 194, 156, 861, 768, 1030, 1030, 1030, 1030, 1030, - 1030, 1030, 1030, 1030, 1030, 951, 861, 185, 1031, 1031, - - 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1032, 224, - 222, 200, 1033, 1033, 1033, 1033, 1033, 1033, 1165, 199, - 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, - 1145, 196, 1146, 1146, 1146, 1146, 1146, 1146, 1033, 1033, - 1033, 1033, 1033, 1033, 1037, 1038, 1039, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1040, 195, 192, 182, 1041, 1041, - 1041, 1041, 1041, 1041, 1165, 170, 1168, 1168, 1168, 1168, - 1168, 1169, 1166, 1166, 1166, 1166, 1165, 159, 1166, 1166, - 1166, 1166, 1166, 1166, 1041, 1041, 1041, 1041, 1041, 1041, - 568, 342, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, - - 1047, 1047, 1083, 158, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 156, 1159, 1241, 1241, 1140, 1159, - 1141, 1141, 1141, 1141, 1141, 1141, 1161, 1241, 1241, 1241, - 1161, 1177, 1178, 1179, 1177, 1177, 1177, 1177, 1177, 1177, - 1177, 299, 1083, 1160, 1085, 1085, 1085, 1085, 1085, 1085, - 1085, 1085, 1085, 1085, 1162, 1241, 1211, 156, 1212, 1212, - 1212, 1212, 1212, 1212, 314, 769, 769, 1241, 156, 1241, - 1241, 769, 770, 770, 282, 314, 1241, 282, 770, 282, - 1241, 299, 1083, 1241, 1086, 1086, 1086, 1086, 1086, 1087, - 1088, 1088, 1088, 1088, 1180, 1181, 1182, 1180, 1180, 1180, - - 1180, 1180, 1180, 1180, 1145, 1241, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 1241, 1241, 1241, 1187, - 1241, 299, 1083, 1187, 1088, 1088, 1088, 1084, 1084, 1084, - 1084, 1084, 1084, 1084, 1145, 1241, 1146, 1146, 1146, 1146, - 1146, 1146, 1146, 1146, 1146, 1146, 861, 1188, 1185, 1185, - 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1241, 1241, - 1241, 299, 1017, 1241, 1018, 1018, 1018, 1018, 1018, 1018, - 1018, 1018, 1018, 1018, 1241, 1241, 185, 1193, 1194, 1195, - 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1165, 1241, 1166, - 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1241, - - 1241, 156, 1017, 1241, 1018, 1018, 1018, 1018, 1018, 1018, - 1018, 1018, 1018, 1018, 1165, 1241, 1166, 1166, 1166, 1166, - 1166, 1166, 1166, 1166, 1166, 1166, 1241, 1241, 1241, 1241, - 1241, 1196, 1197, 1198, 1196, 1196, 1196, 1196, 1196, 1196, - 1196, 156, 861, 1241, 1101, 1101, 1101, 1101, 1101, 1101, - 1101, 1101, 1101, 1101, 1032, 861, 1241, 1102, 1102, 1102, - 1102, 1102, 1102, 1102, 1102, 1102, 1102, 1103, 299, 1241, - 1241, 1104, 1104, 1104, 1104, 1104, 1104, 1171, 1241, 1172, - 1172, 1172, 1172, 1172, 1172, 1187, 859, 859, 1241, 1187, - 860, 860, 859, 1241, 1241, 1241, 860, 1104, 1104, 1104, - - 1104, 1104, 1104, 1108, 1109, 1110, 1108, 1108, 1108, 1108, - 1108, 1108, 1108, 1188, 1241, 1241, 299, 1111, 1111, 1111, - 1111, 1111, 1111, 1204, 1204, 1204, 1204, 1204, 1204, 1204, - 1204, 1204, 1204, 1241, 314, 944, 944, 1241, 1241, 1241, - 1241, 944, 1241, 1111, 1111, 1111, 1111, 1111, 1111, 1083, - 1241, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - 1084, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, - 1205, 1206, 1206, 1206, 1206, 1206, 1207, 1204, 1204, 1204, - 1204, 1028, 1028, 1241, 1099, 1099, 1241, 1028, 299, 1083, - 1099, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, - - 1084, 1211, 1241, 1212, 1212, 1212, 1212, 1212, 1212, 1212, - 1212, 1212, 1212, 1211, 1241, 1213, 1213, 1213, 1213, 1213, - 1213, 1213, 1213, 1213, 1213, 1241, 1241, 1241, 299, 1140, - 1241, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, - 1141, 1211, 1241, 1214, 1214, 1214, 1214, 1214, 1215, 1212, - 1212, 1212, 1212, 1221, 1222, 1223, 1221, 1221, 1221, 1221, - 1221, 1221, 1221, 1241, 1150, 1150, 1241, 1241, 156, 1140, - 1150, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, - 1142, 1241, 1199, 1241, 1200, 1200, 1200, 1200, 1200, 1200, - 156, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, - - 1204, 1183, 1183, 1241, 1241, 1241, 1241, 1183, 156, 1140, - 1241, 1143, 1143, 1143, 1143, 1143, 1144, 1141, 1141, 1141, - 1141, 156, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, - 1204, 1204, 1225, 1226, 1227, 1225, 1225, 1225, 1225, 1225, - 1225, 1225, 1241, 1241, 1241, 1241, 1241, 1241, 156, 861, - 1241, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, - 1152, 1103, 861, 1241, 1153, 1153, 1153, 1153, 1153, 1153, - 1153, 1153, 1153, 1153, 1241, 1241, 1241, 1241, 1154, 1154, - 1154, 1154, 1154, 1154, 1211, 1241, 1212, 1212, 1212, 1212, - 1212, 1212, 1212, 1212, 1212, 1212, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1154, 1154, 1154, 1154, 1154, 1154, - 1171, 1241, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, - 1172, 1172, 1211, 1241, 1212, 1212, 1212, 1212, 1212, 1212, - 1212, 1212, 1212, 1212, 1228, 1229, 1230, 1228, 1228, 1228, - 1228, 1228, 1228, 1228, 1241, 1241, 1241, 1241, 1241, 299, - 1171, 1241, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, - 1173, 1173, 1241, 1216, 1241, 1217, 1217, 1217, 1217, 1217, - 1217, 299, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, - 1231, 1231, 1241, 1231, 1231, 1231, 1231, 1231, 1231, 299, - 1171, 1241, 1174, 1174, 1174, 1174, 1174, 1175, 1172, 1172, - - 1172, 1172, 299, 1241, 1241, 1241, 1241, 1241, 1241, 156, - 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, - 156, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 299, - 1140, 1241, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, - 1141, 1141, 1241, 1241, 1241, 1241, 1241, 156, 1232, 1232, - 1232, 1232, 1232, 1233, 1231, 1231, 1231, 1231, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1241, 156, - 1140, 1241, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, - 1141, 1141, 1241, 1241, 1241, 156, 1225, 1225, 1225, 1225, - 1225, 1225, 1225, 1225, 1225, 1225, 1236, 1236, 1236, 1236, - - 1236, 1237, 1235, 1235, 1235, 1235, 1241, 1241, 1241, 156, - 1171, 1241, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, - 1172, 1172, 1241, 1241, 1241, 1238, 1238, 1238, 1238, 1238, - 1238, 1238, 1238, 1238, 1238, 1228, 1228, 1228, 1228, 1228, - 1228, 1228, 1228, 1228, 1228, 1241, 1241, 1241, 1241, 299, - 1171, 1241, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, - 1172, 1172, 299, 1241, 1241, 1238, 1238, 1238, 1238, 1238, - 1238, 1241, 299, 1239, 1239, 1239, 1239, 1239, 1240, 1238, - 1238, 1238, 1238, 1241, 1241, 1241, 1241, 1241, 1241, 299, - 1199, 1241, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, - - 1200, 1200, 299, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 299, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, - 1231, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 156, - 1199, 1241, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, - 1201, 1201, 1241, 1241, 1241, 1241, 1241, 1241, 156, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1238, - 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 156, - 1199, 1241, 1202, 1202, 1202, 1202, 1202, 1203, 1200, 1200, - 1200, 1200, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 299, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 156, - 1216, 1241, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, - 1217, 1217, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 299, - 1216, 1241, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, - 1218, 1218, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 299, - 1216, 1241, 1219, 1219, 1219, 1219, 1219, 1220, 1217, 1217, - - 1217, 1217, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 299, - 1199, 1241, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, - 1200, 1200, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 156, - 1199, 1241, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, - 1200, 1200, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 156, - 1216, 1241, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, - 1217, 1217, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 299, - 1216, 1241, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, - 1217, 1217, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 299, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - - 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 95, 95, 95, 95, 95, 95, 95, + 58, 58, 58, 58, 58, 22, 22, 22, 59, 22, + 22, 22, 22, 60, 22, 22, 61, 160, 188, 159, + 61, 160, 188, 62, 23, 79, 505, 80, 23, 81, + 186, 82, 23, 79, 506, 80, 23, 81, 82, 82, + + 86, 87, 204, 88, 86, 89, 82, 90, 91, 169, + 63, 64, 82, 83, 188, 65, 205, 196, 188, 626, + 82, 83, 197, 66, 232, 193, 67, 68, 232, 159, + 170, 68, 104, 24, 69, 25, 104, 105, 106, 84, + 214, 70, 159, 191, 71, 200, 188, 84, 104, 24, + 188, 25, 104, 105, 106, 92, 192, 171, 22, 72, + 201, 43, 182, 182, 182, 182, 182, 183, 202, 73, + 164, 74, 338, 75, 47, 188, 47, 456, 194, 188, + 169, 86, 87, 76, 88, 86, 89, 107, 90, 91, + 23, 24, 40, 25, 23, 132, 133, 227, 229, 77, + + 68, 269, 229, 107, 68, 175, 175, 69, 159, 188, + 175, 175, 230, 188, 70, 249, 159, 71, 215, 249, + 23, 24, 40, 25, 23, 132, 133, 216, 270, 225, + 175, 22, 72, 159, 43, 304, 92, 252, 207, 298, + 245, 252, 73, 215, 74, 134, 75, 47, 299, 47, + 206, 207, 241, 245, 206, 176, 76, 181, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 217, 264, 257, + 258, 217, 77, 23, 24, 134, 25, 23, 26, 158, + 93, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 191, 284, 159, 188, 256, 256, 284, 188, 159, + + 288, 218, 219, 287, 192, 592, 220, 260, 207, 295, + 245, 260, 263, 351, 221, 319, 263, 222, 262, 160, + 224, 265, 266, 160, 267, 265, 321, 261, 94, 302, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 129, 129, 129, 129, 129, - - 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 155, 1241, 1241, 155, - 1241, 1241, 1241, 155, 1241, 155, 1241, 155, 155, 155, - 1241, 1241, 155, 155, 155, 155, 155, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 165, 1241, - 1241, 165, 1241, 1241, 165, 165, 1241, 165, 1241, 165, - 165, 165, 165, 1241, 165, 165, 165, 165, 165, 169, - 1241, 1241, 169, 1241, 1241, 1241, 169, 1241, 169, 1241, - 169, 169, 169, 1241, 1241, 169, 169, 169, 169, 169, - - 171, 1241, 1241, 171, 171, 171, 1241, 171, 171, 171, - 1241, 171, 171, 171, 1241, 1241, 171, 171, 171, 171, - 171, 207, 207, 1241, 207, 207, 207, 1241, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 229, 1241, 1241, 229, 229, 229, 1241, 229, - 229, 229, 1241, 229, 229, 229, 1241, 1241, 229, 229, - 229, 229, 229, 233, 233, 1241, 233, 233, 233, 1241, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 238, 1241, 1241, 238, 238, 238, - 1241, 238, 238, 238, 1241, 238, 238, 238, 1241, 238, - - 238, 1241, 238, 238, 238, 244, 244, 1241, 244, 244, - 244, 1241, 1241, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 1241, 244, 244, 244, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 247, 251, 1241, 1241, - 251, 251, 1241, 1241, 251, 251, 251, 1241, 251, 251, - 251, 251, 1241, 251, 251, 251, 251, 251, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, - 255, 255, 255, 255, 255, 255, 255, 255, 255, 257, - 257, 1241, 257, 257, 1241, 257, 257, 257, 257, 257, - - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 264, 1241, 1241, 264, 1241, 1241, 264, 264, 1241, 264, - 1241, 264, 264, 264, 264, 1241, 264, 264, 264, 264, - 264, 268, 1241, 1241, 268, 1241, 1241, 1241, 268, 1241, - 268, 1241, 268, 268, 268, 1241, 268, 268, 268, 268, - 268, 268, 271, 1241, 1241, 271, 271, 271, 1241, 271, - 271, 271, 1241, 271, 271, 271, 1241, 271, 271, 271, - 271, 271, 271, 208, 208, 1241, 208, 208, 208, 1241, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 295, 1241, 1241, 1241, 295, 295, - - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 298, 1241, 1241, 298, 1241, - 1241, 1241, 298, 1241, 298, 1241, 298, 298, 298, 1241, - 1241, 298, 298, 298, 298, 298, 300, 1241, 1241, 300, - 1241, 1241, 300, 300, 1241, 300, 1241, 300, 300, 300, - 300, 1241, 300, 300, 300, 300, 300, 302, 1241, 1241, - 302, 1241, 1241, 1241, 302, 1241, 302, 1241, 302, 302, - 302, 1241, 1241, 302, 302, 302, 302, 302, 304, 1241, - 1241, 304, 304, 304, 1241, 304, 304, 304, 1241, 304, - 304, 304, 1241, 1241, 304, 304, 304, 304, 304, 326, - - 326, 1241, 326, 326, 326, 1241, 326, 326, 326, 326, - 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, - 155, 1241, 1241, 155, 1241, 1241, 1241, 155, 1241, 155, - 1241, 155, 155, 155, 1241, 1241, 155, 155, 155, 155, - 155, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 333, 333, 1241, 333, 333, 333, 333, 333, - 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 165, 1241, 1241, 165, 1241, 1241, 1241, - 165, 1241, 165, 1241, 165, 165, 165, 1241, 1241, 165, - - 165, 165, 165, 165, 169, 1241, 1241, 169, 1241, 1241, - 1241, 169, 1241, 169, 1241, 169, 169, 169, 1241, 1241, - 169, 169, 169, 169, 169, 171, 1241, 1241, 171, 171, - 171, 1241, 171, 171, 171, 1241, 171, 171, 171, 1241, - 1241, 171, 171, 171, 171, 171, 172, 1241, 1241, 172, - 172, 172, 1241, 172, 172, 172, 1241, 172, 172, 172, - 1241, 1241, 172, 172, 172, 172, 172, 343, 343, 343, - 1241, 1241, 1241, 1241, 343, 207, 207, 1241, 207, 207, - 207, 1241, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 208, 208, 1241, 208, - - 208, 208, 1241, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 229, 1241, 1241, - 229, 229, 229, 1241, 229, 229, 229, 1241, 229, 229, - 229, 1241, 1241, 229, 229, 229, 229, 229, 230, 1241, - 1241, 230, 230, 230, 1241, 230, 230, 230, 1241, 230, - 230, 230, 1241, 1241, 230, 230, 230, 230, 230, 233, - 233, 1241, 233, 233, 233, 1241, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 234, 234, 1241, 234, 234, 234, 1241, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, - - 234, 238, 1241, 1241, 238, 238, 238, 1241, 238, 238, - 238, 1241, 238, 238, 238, 1241, 238, 238, 1241, 238, - 238, 238, 244, 244, 1241, 244, 244, 244, 1241, 1241, - 244, 244, 244, 244, 244, 244, 244, 244, 244, 1241, - 244, 244, 244, 251, 1241, 1241, 251, 251, 1241, 1241, - 251, 251, 251, 1241, 251, 251, 251, 251, 1241, 251, - 251, 251, 251, 251, 257, 257, 1241, 257, 257, 1241, - 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, - 257, 257, 257, 257, 257, 267, 1241, 1241, 267, 1241, - 1241, 1241, 267, 1241, 267, 1241, 267, 267, 267, 1241, - - 1241, 267, 267, 267, 267, 267, 268, 1241, 1241, 268, - 1241, 1241, 1241, 268, 1241, 268, 1241, 268, 268, 268, - 1241, 268, 268, 268, 268, 268, 268, 269, 1241, 1241, - 269, 269, 1241, 269, 269, 1241, 1241, 269, 269, 271, - 1241, 1241, 271, 271, 271, 1241, 271, 271, 271, 1241, - 271, 271, 271, 1241, 271, 271, 271, 271, 271, 271, - 295, 1241, 1241, 1241, 295, 295, 295, 295, 295, 295, - 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, - 295, 298, 1241, 1241, 298, 1241, 1241, 1241, 298, 1241, - 298, 1241, 298, 298, 298, 1241, 1241, 298, 298, 298, - - 298, 298, 300, 1241, 1241, 300, 1241, 1241, 1241, 300, - 1241, 300, 1241, 300, 300, 300, 1241, 1241, 300, 300, - 300, 300, 300, 302, 1241, 1241, 302, 1241, 1241, 1241, - 302, 1241, 302, 1241, 302, 302, 302, 1241, 1241, 302, - 302, 302, 302, 302, 304, 1241, 1241, 304, 304, 304, - 1241, 304, 304, 304, 1241, 304, 304, 304, 1241, 1241, - 304, 304, 304, 304, 304, 305, 1241, 1241, 305, 305, - 305, 1241, 305, 305, 305, 1241, 305, 305, 305, 1241, - 1241, 305, 305, 305, 305, 305, 326, 326, 1241, 326, - 326, 326, 1241, 326, 326, 326, 326, 326, 326, 326, - - 326, 326, 326, 326, 326, 326, 326, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 445, 445, - 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, - 445, 445, 445, 445, 445, 445, 445, 445, 445, 155, - 1241, 1241, 155, 1241, 1241, 1241, 155, 1241, 155, 1241, - 155, 155, 155, 1241, 1241, 155, 155, 155, 155, 155, - 459, 459, 459, 1241, 1241, 1241, 1241, 459, 207, 207, - 1241, 207, 207, 207, 1241, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 234, - - 234, 1241, 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, - 233, 233, 1241, 233, 233, 233, 1241, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 208, 208, 1241, 208, 208, 208, 1241, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 567, 567, 567, 1241, 1241, 1241, 1241, 567, - 465, 465, 465, 1241, 1241, 1241, 1241, 465, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 234, - - 234, 1241, 234, 234, 234, 1241, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, - 671, 671, 671, 1241, 1241, 1241, 1241, 671, 675, 675, - 675, 675, 1241, 1241, 1241, 1241, 675, 782, 782, 782, - 1241, 1241, 1241, 1241, 782, 783, 783, 783, 783, 1241, - 1241, 1241, 1241, 783, 876, 876, 876, 1241, 1241, 1241, - 1241, 876, 877, 877, 877, 877, 1241, 1241, 1241, 1241, - 877, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 269, 1241, 1241, 269, 269, 1241, 269, 269, - - 1241, 1241, 269, 269, 298, 1241, 1241, 298, 1241, 1241, - 1241, 298, 1241, 298, 1241, 298, 298, 298, 1241, 1241, - 298, 298, 298, 298, 298, 948, 1241, 948, 948, 1241, - 1241, 1241, 1241, 948, 966, 966, 966, 1241, 1241, 1241, - 1241, 966, 967, 967, 967, 967, 1241, 1241, 1241, 1241, - 967, 331, 331, 331, 331, 331, 331, 331, 331, 331, + 95, 95, 95, 95, 95, 95, 95, 95, 23, 24, + 207, 25, 23, 26, 231, 93, 296, 167, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 262, 281, 281, + 281, 281, 281, 282, 319, 234, 234, 322, 188, 301, + 234, 234, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 316, 316, 316, 316, 316, 317, 206, 207, + + 234, 245, 206, 94, 159, 95, 95, 95, 95, 95, + 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, + 95, 95, 95, 23, 24, 235, 25, 23, 26, 97, + 93, 206, 207, 169, 245, 206, 98, 99, 100, 1253, + 304, 279, 279, 279, 279, 279, 279, 279, 279, 279, + 279, 334, 101, 301, 269, 304, 346, 346, 346, 346, + 346, 346, 310, 310, 348, 335, 159, 310, 310, 380, + 159, 159, 159, 304, 336, 350, 381, 159, 102, 23, + 24, 306, 25, 23, 26, 97, 93, 310, 379, 391, + 450, 392, 98, 99, 100, 315, 315, 315, 315, 315, + + 315, 315, 315, 315, 315, 232, 232, 159, 101, 232, + 232, 303, 311, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 167, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 1223, 102, 40, 23, 24, 40, 25, + 23, 26, 40, 40, 40, 108, 30, 31, 40, 109, + 33, 40, 40, 110, 111, 112, 113, 111, 111, 111, + 111, 111, 111, 111, 38, 114, 40, 40, 115, 116, + 116, 116, 117, 118, 119, 119, 120, 119, 121, 122, + 123, 119, 124, 119, 125, 119, 119, 119, 119, 119, + 119, 94, 126, 40, 127, 127, 127, 127, 127, 127, + + 128, 128, 128, 129, 128, 128, 128, 128, 130, 128, + 128, 135, 23, 24, 135, 25, 23, 26, 40, 40, + 135, 136, 30, 31, 135, 137, 33, 135, 135, 138, + 139, 140, 141, 139, 139, 139, 139, 139, 139, 139, + 38, 39, 40, 135, 142, 143, 143, 143, 144, 145, + 146, 146, 147, 146, 148, 149, 150, 146, 151, 146, + 152, 146, 146, 146, 146, 146, 146, 153, 154, 135, + 155, 155, 155, 155, 155, 155, 135, 135, 135, 156, + 135, 135, 135, 135, 157, 135, 135, 164, 264, 165, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + + 295, 166, 873, 158, 167, 167, 167, 167, 167, 167, + 167, 167, 167, 167, 177, 169, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 179, 395, 492, 493, + 180, 180, 180, 180, 180, 180, 1253, 179, 262, 207, + 159, 158, 158, 158, 158, 158, 388, 296, 158, 158, + 390, 249, 158, 159, 389, 249, 180, 180, 180, 180, + 180, 180, 158, 270, 159, 158, 158, 158, 158, 400, + 159, 158, 158, 400, 396, 158, 158, 393, 158, 158, + 158, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 179, 1115, 304, 158, 187, 187, 187, 187, 187, + + 187, 188, 188, 188, 188, 189, 188, 188, 188, 190, + 188, 188, 188, 188, 188, 188, 188, 188, 159, 158, + 188, 180, 180, 180, 180, 180, 180, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 1253, 164, + 908, 338, 188, 188, 188, 188, 188, 188, 304, 159, + 302, 451, 188, 188, 340, 399, 188, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 159, 158, 158, + 158, 158, 158, 158, 206, 207, 348, 208, 209, 158, + 158, 158, 229, 388, 158, 158, 229, 469, 158, 175, + + 175, 1177, 234, 234, 175, 175, 230, 234, 234, 164, + 301, 338, 158, 158, 158, 211, 304, 387, 159, 211, + 211, 211, 452, 212, 175, 211, 211, 234, 159, 211, + 168, 168, 168, 168, 168, 159, 500, 168, 168, 211, + 422, 168, 621, 211, 211, 211, 388, 206, 207, 176, + 245, 206, 235, 159, 159, 168, 168, 168, 346, 346, + 346, 346, 346, 346, 346, 346, 346, 346, 504, 516, + 213, 164, 453, 165, 338, 172, 172, 172, 172, 172, + 263, 1253, 172, 172, 263, 166, 172, 296, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 594, 515, + + 172, 172, 172, 342, 343, 344, 342, 342, 342, 342, + 342, 342, 342, 346, 346, 346, 346, 346, 346, 346, + 346, 346, 346, 206, 207, 211, 245, 206, 158, 164, + 295, 455, 210, 377, 217, 262, 223, 238, 217, 159, + 159, 238, 238, 238, 475, 239, 396, 238, 238, 363, + 364, 238, 159, 365, 512, 366, 367, 159, 304, 368, + 400, 369, 370, 388, 400, 238, 238, 238, 218, 219, + 1253, 206, 207, 220, 245, 206, 564, 296, 159, 238, + 378, 221, 158, 1253, 222, 169, 237, 397, 164, 304, + 338, 1253, 240, 244, 207, 608, 245, 244, 246, 159, + + 247, 164, 514, 455, 568, 246, 1253, 247, 167, 167, + 167, 167, 167, 167, 167, 167, 167, 167, 270, 363, + 364, 247, 247, 365, 300, 366, 367, 1253, 300, 368, + 453, 369, 455, 270, 398, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 720, 593, 511, 247, 246, + 164, 1253, 165, 206, 207, 348, 245, 206, 265, 266, + 647, 267, 265, 648, 253, 605, 469, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 271, 159, 301, + 271, 539, 540, 1253, 541, 255, 271, 271, 1253, 255, + 271, 255, 255, 271, 271, 268, 268, 268, 268, 255, + + 348, 1253, 268, 268, 599, 597, 268, 273, 256, 271, + 1253, 473, 175, 1253, 255, 1253, 175, 1253, 604, 175, + 598, 268, 268, 576, 576, 576, 175, 405, 405, 405, + 405, 405, 405, 274, 271, 271, 175, 613, 606, 175, + 175, 175, 175, 175, 1253, 175, 175, 175, 175, 175, + 1253, 1253, 175, 175, 271, 271, 271, 271, 271, 612, + 607, 271, 271, 873, 609, 271, 273, 175, 175, 401, + 402, 403, 401, 401, 401, 401, 401, 401, 401, 271, + 271, 271, 405, 405, 405, 405, 405, 405, 405, 405, + 405, 405, 276, 175, 175, 273, 1253, 1253, 277, 273, + + 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 179, 273, 615, 706, 279, 279, 279, 279, 279, 279, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 1253, 1115, 721, + 279, 279, 279, 279, 279, 279, 273, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 1253, 610, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 1253, + 159, 620, 1044, 273, 273, 273, 273, 273, 273, 405, + 405, 405, 405, 405, 405, 405, 405, 405, 405, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 431, 273, + + 273, 273, 273, 273, 273, 273, 1253, 159, 543, 273, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 179, 273, 1157, 616, 283, 283, 283, 283, 283, 283, + 284, 284, 284, 284, 285, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 304, 1188, 286, + 279, 279, 279, 279, 279, 279, 273, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 1253, 1253, 1253, + 395, 284, 284, 284, 284, 284, 284, 611, 413, 414, + 1182, 284, 415, 617, 416, 417, 618, 619, 418, 614, + + 419, 431, 431, 431, 431, 431, 431, 273, 273, 273, + 273, 273, 273, 312, 671, 313, 313, 313, 313, 313, + 313, 313, 313, 313, 313, 179, 159, 396, 159, 314, + 314, 314, 314, 314, 314, 595, 159, 1253, 1253, 595, + 303, 303, 303, 303, 303, 179, 710, 303, 303, 600, + 304, 303, 304, 388, 601, 314, 314, 314, 314, 314, + 314, 303, 159, 596, 303, 303, 303, 303, 636, 628, + 303, 303, 159, 637, 303, 303, 1253, 303, 303, 303, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 179, 627, 825, 303, 318, 318, 318, 318, 318, 318, + + 319, 319, 319, 319, 320, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 304, 303, 319, + 314, 314, 314, 314, 314, 314, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 1253, 179, 1253, + 159, 319, 319, 319, 319, 319, 319, 668, 439, 440, + 669, 319, 441, 709, 442, 443, 310, 310, 444, 700, + 445, 310, 310, 501, 502, 304, 503, 303, 303, 303, + 303, 303, 303, 206, 207, 348, 329, 330, 303, 303, + 303, 310, 304, 303, 303, 159, 469, 303, 427, 428, + + 429, 427, 427, 427, 427, 427, 427, 427, 159, 670, + 657, 303, 303, 303, 211, 658, 311, 602, 211, 211, + 211, 602, 332, 348, 211, 211, 1253, 304, 211, 305, + 305, 305, 305, 305, 672, 304, 305, 305, 304, 1253, + 305, 701, 211, 211, 211, 603, 1253, 206, 207, 1253, + 245, 206, 704, 712, 305, 305, 305, 164, 1253, 338, + 307, 307, 307, 307, 307, 1253, 1253, 307, 307, 333, + 175, 307, 708, 158, 174, 158, 158, 174, 711, 702, + 158, 158, 348, 705, 174, 307, 307, 307, 431, 431, + 431, 431, 431, 431, 431, 431, 431, 431, 174, 174, + + 158, 177, 304, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 179, 1044, 1253, 723, 345, 345, 345, + 345, 345, 345, 625, 211, 565, 566, 303, 567, 580, + 348, 331, 448, 585, 585, 585, 585, 585, 586, 703, + 159, 582, 1253, 345, 345, 345, 345, 345, 345, 158, + 1253, 159, 158, 1253, 903, 188, 1253, 717, 158, 158, + 304, 714, 158, 158, 707, 158, 158, 158, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 179, 449, + 824, 158, 352, 352, 352, 352, 352, 352, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + + 188, 188, 188, 188, 188, 159, 158, 188, 345, 345, + 345, 345, 345, 345, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 1253, 906, 188, 963, 188, + 188, 188, 188, 188, 188, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 158, 158, 158, 158, 158, + 158, 211, 722, 1253, 602, 211, 211, 211, 602, 212, + 234, 211, 211, 1253, 234, 211, 456, 234, 457, 457, + 457, 457, 457, 457, 234, 1253, 718, 319, 1025, 211, + + 211, 211, 603, 713, 716, 159, 1253, 1253, 234, 234, + 517, 1253, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 1150, 159, 159, 159, 213, 234, 719, 724, + 158, 233, 158, 158, 233, 1253, 728, 158, 158, 1253, + 517, 233, 519, 519, 519, 519, 519, 519, 519, 519, + 519, 519, 634, 159, 773, 233, 233, 158, 238, 730, + 715, 1253, 238, 238, 238, 1253, 239, 1149, 238, 238, + 1253, 517, 238, 520, 520, 520, 520, 520, 521, 518, + 518, 518, 518, 1253, 348, 304, 238, 238, 238, 1253, + 310, 815, 772, 774, 310, 582, 517, 310, 518, 518, + + 518, 518, 518, 518, 310, 164, 304, 338, 635, 159, + 775, 348, 776, 240, 271, 580, 348, 271, 310, 310, + 1253, 729, 469, 271, 271, 304, 304, 271, 812, 673, + 271, 271, 569, 570, 571, 569, 569, 569, 569, 569, + 569, 569, 1253, 348, 273, 304, 271, 574, 574, 575, + 576, 576, 576, 576, 576, 576, 576, 466, 584, 584, + 584, 584, 584, 584, 584, 584, 584, 584, 159, 159, + 274, 271, 271, 175, 1253, 159, 175, 348, 727, 175, + 175, 808, 175, 175, 175, 175, 175, 1145, 582, 175, + 175, 1253, 814, 583, 583, 583, 583, 583, 583, 583, + + 583, 583, 583, 273, 175, 175, 629, 630, 631, 629, + 629, 629, 629, 629, 629, 629, 517, 159, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 1253, 276, + 175, 175, 277, 1129, 404, 404, 404, 404, 404, 404, + 404, 404, 404, 404, 179, 809, 1253, 1253, 404, 404, + 404, 404, 404, 404, 517, 1253, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 813, 832, 1144, 595, + 580, 348, 818, 595, 404, 404, 404, 404, 404, 404, + 273, 1253, 582, 754, 273, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 179, 273, 596, 827, 406, + + 406, 406, 406, 406, 406, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 304, 1143, 286, 404, 404, 404, 404, 404, + 404, 273, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 1253, 580, 348, 1253, 284, 284, 284, 284, + 284, 284, 1253, 1253, 1253, 690, 1253, 188, 1253, 1253, + 905, 826, 1253, 1253, 819, 1253, 820, 1253, 348, 1253, + 1085, 821, 273, 273, 273, 273, 273, 273, 310, 690, + 1253, 303, 309, 303, 303, 309, 1253, 1253, 303, 303, + + 641, 159, 309, 1253, 638, 1253, 1253, 1016, 848, 1253, + 1253, 639, 833, 849, 159, 642, 309, 309, 303, 312, + 284, 430, 430, 430, 430, 430, 430, 430, 430, 430, + 430, 179, 838, 1253, 1253, 430, 430, 430, 430, 430, + 430, 159, 159, 602, 595, 1253, 602, 602, 595, 1253, + 602, 861, 837, 839, 640, 644, 862, 304, 304, 1029, + 159, 430, 430, 430, 430, 430, 430, 303, 865, 1130, + 303, 603, 596, 1253, 603, 159, 303, 303, 915, 188, + 303, 303, 901, 303, 303, 303, 432, 432, 432, 432, + 432, 432, 432, 432, 432, 432, 179, 645, 159, 303, + + 432, 432, 432, 432, 432, 432, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 304, 303, 319, 430, 430, 430, 430, + 430, 430, 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 1253, 164, 348, 338, 319, 319, 319, + 319, 319, 319, 1253, 1253, 1085, 582, 1253, 1253, 652, + 653, 654, 652, 652, 652, 652, 652, 652, 652, 348, + 164, 1236, 338, 303, 303, 303, 303, 303, 303, 211, + 690, 1253, 1253, 211, 211, 211, 188, 332, 904, 211, + + 211, 580, 348, 211, 909, 188, 304, 188, 646, 580, + 348, 643, 1253, 690, 836, 188, 1253, 211, 211, 211, + 543, 798, 544, 544, 544, 544, 544, 544, 679, 679, + 679, 679, 679, 679, 679, 679, 679, 679, 466, 188, + 1253, 918, 910, 1029, 333, 456, 737, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 319, 1103, 304, + 684, 685, 686, 684, 684, 684, 684, 684, 684, 684, + 591, 591, 591, 591, 591, 591, 591, 591, 591, 591, + 159, 188, 159, 919, 159, 456, 907, 458, 458, 458, + 458, 458, 458, 458, 458, 458, 458, 580, 348, 688, + + 688, 688, 688, 688, 688, 947, 159, 319, 911, 582, + 692, 692, 692, 692, 692, 692, 692, 692, 692, 692, + 188, 348, 188, 920, 159, 456, 912, 459, 459, 459, + 459, 459, 460, 457, 457, 457, 457, 693, 693, 693, + 693, 693, 694, 1253, 931, 691, 691, 691, 691, 691, + 691, 691, 691, 691, 691, 284, 284, 319, 1253, 159, + 304, 930, 1253, 945, 159, 461, 461, 461, 461, 461, + 461, 461, 461, 461, 461, 179, 963, 921, 951, 461, + 461, 461, 461, 461, 461, 731, 1253, 732, 732, 732, + 732, 732, 732, 732, 732, 732, 732, 319, 284, 319, + + 741, 943, 159, 935, 950, 461, 461, 461, 461, 461, + 461, 463, 464, 465, 465, 465, 465, 465, 465, 465, + 465, 466, 580, 348, 875, 467, 467, 467, 467, 467, + 467, 731, 946, 733, 733, 733, 733, 733, 733, 733, + 733, 733, 733, 1253, 319, 319, 1035, 1253, 994, 948, + 1101, 467, 467, 467, 467, 467, 467, 348, 470, 471, + 472, 470, 470, 470, 470, 470, 470, 470, 473, 188, + 1001, 1253, 474, 474, 474, 474, 474, 474, 731, 934, + 734, 734, 734, 734, 734, 735, 732, 732, 732, 732, + 284, 188, 1198, 1253, 348, 736, 1095, 949, 474, 474, + + 474, 474, 474, 474, 158, 798, 810, 158, 319, 159, + 810, 988, 188, 158, 158, 986, 1094, 158, 158, 188, + 158, 158, 158, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 179, 811, 304, 158, 476, 476, 476, + 476, 476, 476, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 159, 158, 188, 461, 461, 461, 461, 461, 461, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 1253, 873, 319, 1151, 188, 188, 188, 188, 188, 188, + + 1253, 1253, 991, 875, 1253, 1253, 1253, 1093, 348, 188, + 1253, 1253, 866, 1253, 1253, 1253, 348, 1253, 875, 690, + 158, 158, 158, 158, 158, 158, 211, 798, 1253, 1253, + 211, 211, 211, 1064, 212, 740, 211, 211, 1253, 1253, + 211, 1253, 188, 1253, 1253, 1253, 742, 1253, 1253, 1253, + 159, 1091, 990, 744, 211, 211, 211, 743, 580, 348, + 188, 745, 580, 348, 796, 796, 796, 796, 796, 796, + 798, 1253, 1253, 1253, 690, 937, 996, 989, 1069, 746, + 747, 213, 211, 188, 188, 188, 211, 211, 211, 211, + 377, 159, 211, 211, 1026, 748, 211, 777, 778, 779, + + 777, 777, 777, 777, 777, 777, 777, 319, 1006, 159, + 211, 211, 211, 304, 673, 1067, 674, 674, 674, 674, + 674, 674, 789, 188, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 159, 580, 348, 213, 238, 1253, + 348, 1071, 238, 238, 238, 188, 239, 892, 238, 238, + 973, 892, 238, 159, 789, 875, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 238, 238, 238, 789, + 783, 792, 792, 792, 792, 792, 793, 790, 790, 790, + 790, 699, 699, 699, 699, 699, 699, 699, 699, 699, + 699, 816, 822, 240, 238, 816, 822, 304, 238, 238, + + 238, 238, 397, 1027, 238, 238, 319, 1095, 238, 800, + 800, 800, 800, 800, 800, 800, 800, 800, 800, 817, + 823, 995, 238, 238, 238, 801, 801, 801, 801, 801, + 802, 1253, 188, 799, 799, 799, 799, 799, 799, 799, + 799, 799, 799, 828, 830, 1152, 304, 828, 830, 240, + 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 179, 1074, 1133, 1075, 522, 522, 522, 522, 522, 522, + 188, 829, 831, 840, 841, 842, 840, 840, 840, 840, + 840, 840, 840, 1028, 159, 810, 873, 873, 1024, 810, + 522, 522, 522, 522, 522, 522, 273, 1221, 875, 963, + + 273, 523, 523, 523, 523, 523, 523, 523, 523, 523, + 523, 179, 273, 811, 188, 523, 523, 523, 523, 523, + 523, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 1018, 1017, + 286, 522, 522, 522, 522, 522, 522, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 1253, 1136, + 1015, 1075, 284, 284, 284, 284, 284, 284, 731, 1253, + 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, + 731, 963, 732, 732, 732, 732, 732, 732, 273, 273, + + 273, 273, 273, 273, 543, 873, 544, 544, 544, 544, + 544, 544, 544, 544, 544, 544, 731, 963, 732, 732, + 732, 732, 732, 732, 732, 732, 732, 732, 1253, 816, + 1253, 1253, 1253, 816, 1253, 1253, 1092, 822, 1253, 284, + 1014, 822, 1253, 304, 543, 922, 545, 545, 545, 545, + 545, 545, 545, 545, 545, 545, 1253, 817, 1253, 1253, + 348, 1203, 159, 1204, 843, 823, 1253, 1003, 1253, 828, + 830, 798, 1253, 828, 830, 846, 1004, 164, 847, 338, + 1004, 1002, 851, 304, 543, 159, 546, 546, 546, 546, + 546, 547, 544, 544, 544, 544, 1253, 829, 831, 853, + + 854, 855, 853, 853, 853, 853, 853, 853, 853, 754, + 1135, 755, 755, 755, 755, 755, 755, 188, 810, 188, + 850, 816, 810, 304, 303, 816, 548, 548, 548, 548, + 548, 548, 548, 548, 548, 548, 304, 1005, 783, 348, + 548, 548, 548, 548, 548, 548, 811, 578, 304, 817, + 892, 580, 348, 159, 822, 828, 830, 810, 822, 828, + 830, 810, 1102, 892, 1060, 319, 548, 548, 548, 548, + 548, 548, 549, 549, 549, 549, 549, 549, 549, 549, + 549, 549, 823, 829, 831, 811, 549, 549, 549, 549, + 549, 549, 788, 788, 788, 788, 788, 788, 788, 788, + + 788, 788, 877, 877, 877, 877, 877, 877, 877, 877, + 877, 877, 548, 548, 548, 548, 548, 548, 211, 1061, + 1068, 944, 211, 211, 211, 1222, 332, 1204, 211, 211, + 188, 188, 211, 878, 878, 878, 878, 878, 879, 895, + 895, 895, 895, 895, 896, 936, 211, 211, 211, 1253, + 933, 876, 876, 876, 876, 876, 876, 876, 876, 876, + 876, 885, 886, 887, 885, 885, 885, 885, 885, 885, + 885, 816, 822, 333, 211, 816, 822, 932, 211, 211, + 211, 211, 448, 1104, 211, 211, 319, 789, 211, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 817, + + 823, 929, 211, 211, 211, 789, 873, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 789, 1044, 790, + 790, 790, 790, 790, 790, 1196, 1196, 1196, 1196, 333, + 456, 928, 457, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 807, 807, 807, 807, 807, 807, 807, 807, + 807, 807, 580, 348, 890, 890, 890, 890, 890, 890, + 1070, 917, 1073, 1074, 798, 1075, 1073, 1183, 1211, 159, + 456, 188, 457, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 894, 894, 894, 894, 894, 894, 894, 894, + 894, 894, 1253, 1253, 893, 893, 893, 893, 893, 893, + + 893, 893, 893, 893, 828, 1044, 304, 159, 828, 159, + 580, 348, 581, 581, 581, 581, 581, 581, 581, 581, + 581, 581, 582, 916, 1007, 188, 583, 583, 583, 583, + 583, 583, 829, 866, 867, 867, 867, 867, 867, 867, + 348, 164, 830, 338, 992, 914, 830, 1007, 992, 1007, + 1007, 892, 583, 583, 583, 583, 583, 583, 348, 587, + 588, 589, 587, 587, 587, 587, 587, 587, 587, 590, + 831, 159, 993, 591, 591, 591, 591, 591, 591, 922, + 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, + 966, 966, 966, 966, 966, 967, 913, 1228, 873, 591, + + 591, 591, 591, 591, 591, 158, 1076, 997, 158, 1134, + 1044, 997, 1175, 789, 158, 158, 783, 188, 158, 158, + 188, 158, 158, 158, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 179, 998, 304, 158, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 159, 158, 188, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 632, 632, 632, 632, 632, 632, 632, 632, 632, + 632, 179, 254, 254, 254, 632, 632, 632, 632, 632, + + 632, 922, 924, 924, 924, 924, 924, 924, 924, 924, + 924, 924, 984, 984, 984, 984, 984, 985, 873, 578, + 466, 632, 632, 632, 632, 632, 632, 273, 304, 304, + 1115, 273, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 179, 273, 304, 304, 633, 633, 633, 633, + 633, 633, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 1246, + 864, 286, 632, 632, 632, 632, 632, 632, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 595, + 188, 863, 860, 595, 922, 925, 925, 925, 925, 925, + + 926, 923, 923, 923, 923, 859, 1253, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 596, 1115, 858, + 857, 284, 284, 284, 284, 284, 284, 856, 952, 953, + 954, 955, 952, 952, 952, 952, 952, 952, 922, 923, + 923, 923, 923, 923, 923, 852, 845, 273, 273, 273, + 273, 273, 273, 543, 844, 544, 544, 544, 544, 544, + 544, 544, 544, 544, 544, 159, 957, 958, 959, 957, + 957, 957, 957, 957, 957, 957, 884, 884, 884, 884, + 884, 884, 884, 884, 884, 884, 1047, 1047, 1047, 1047, + 1047, 1048, 304, 543, 1170, 544, 544, 544, 544, 544, + + 544, 544, 544, 544, 544, 873, 188, 961, 961, 961, + 961, 961, 961, 254, 254, 254, 873, 875, 965, 965, + 965, 965, 965, 965, 965, 965, 965, 965, 1115, 731, + 999, 835, 304, 673, 999, 674, 674, 674, 674, 674, + 674, 674, 674, 674, 674, 1253, 834, 964, 964, 964, + 964, 964, 964, 964, 964, 964, 964, 973, 1000, 974, + 974, 974, 974, 974, 974, 974, 974, 974, 974, 159, + 1065, 159, 159, 673, 1065, 675, 675, 675, 675, 675, + 675, 675, 675, 675, 675, 973, 159, 975, 975, 975, + 975, 975, 975, 975, 975, 975, 975, 973, 1066, 976, + + 976, 976, 976, 976, 977, 974, 974, 974, 974, 159, + 1253, 783, 159, 673, 578, 676, 676, 676, 676, 676, + 677, 674, 674, 674, 674, 900, 900, 900, 900, 900, + 900, 900, 900, 900, 900, 580, 348, 980, 980, 980, + 980, 980, 980, 1128, 1128, 1073, 1074, 892, 1075, 1073, + 1128, 466, 159, 580, 348, 688, 688, 688, 688, 688, + 688, 688, 688, 688, 688, 582, 1007, 466, 771, 687, + 687, 687, 687, 687, 687, 983, 983, 983, 983, 983, + 983, 983, 983, 983, 983, 770, 992, 184, 184, 1007, + 992, 1007, 1008, 184, 769, 687, 687, 687, 687, 687, + + 687, 580, 348, 689, 689, 689, 689, 689, 689, 689, + 689, 689, 689, 690, 993, 768, 159, 691, 691, 691, + 691, 691, 691, 1253, 767, 982, 982, 982, 982, 982, + 982, 982, 982, 982, 982, 284, 1118, 1118, 1118, 1118, + 1118, 1119, 766, 691, 691, 691, 691, 691, 691, 348, + 695, 696, 697, 695, 695, 695, 695, 695, 695, 695, + 698, 765, 764, 763, 699, 699, 699, 699, 699, 699, + 1009, 1010, 1011, 1012, 1009, 1009, 1009, 1009, 1009, 1009, + 992, 1220, 1176, 164, 992, 338, 1176, 1220, 762, 761, + 699, 699, 699, 699, 699, 699, 754, 760, 755, 755, + + 755, 755, 755, 755, 755, 755, 755, 755, 993, 922, + 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, + 997, 759, 753, 752, 997, 937, 938, 938, 938, 938, + 938, 938, 751, 750, 749, 304, 754, 188, 756, 756, + 756, 756, 756, 756, 756, 756, 756, 756, 998, 922, + 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, + 999, 997, 999, 304, 999, 997, 999, 973, 739, 974, + 974, 974, 974, 974, 974, 304, 754, 188, 757, 757, + 757, 757, 757, 758, 755, 755, 755, 755, 1000, 998, + 1000, 1019, 1020, 1021, 1022, 1019, 1019, 1019, 1019, 1019, + + 1019, 992, 997, 999, 738, 992, 997, 999, 184, 184, + 284, 284, 1253, 1253, 184, 304, 673, 188, 674, 674, + 674, 674, 674, 674, 674, 674, 674, 674, 304, 993, + 998, 1000, 1035, 505, 1036, 1036, 1036, 1036, 1036, 1036, + 1036, 1036, 1036, 1036, 1168, 1168, 1168, 1168, 1168, 1169, + 319, 319, 319, 1062, 726, 159, 673, 1062, 674, 674, + 674, 674, 674, 674, 674, 674, 674, 674, 1035, 725, + 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, + 1035, 1063, 1038, 1038, 1038, 1038, 1038, 1039, 1036, 1036, + 1036, 1036, 1253, 682, 578, 159, 784, 785, 786, 784, + + 784, 784, 784, 784, 784, 784, 787, 466, 678, 466, + 788, 788, 788, 788, 788, 788, 972, 972, 972, 972, + 972, 972, 972, 972, 972, 972, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 788, 788, 788, 788, + 788, 788, 580, 348, 796, 796, 796, 796, 796, 796, + 796, 796, 796, 796, 690, 185, 304, 667, 795, 795, + 795, 795, 795, 795, 873, 666, 1042, 1042, 1042, 1042, + 1042, 1042, 665, 664, 663, 1035, 963, 1036, 1036, 1036, + 1036, 1036, 1036, 662, 795, 795, 795, 795, 795, 795, + 580, 348, 797, 797, 797, 797, 797, 797, 797, 797, + + 797, 797, 798, 661, 660, 659, 799, 799, 799, 799, + 799, 799, 1253, 656, 1045, 1045, 1045, 1045, 1045, 1045, + 1045, 1045, 1045, 1045, 580, 348, 1059, 1059, 1059, 1059, + 1059, 1059, 799, 799, 799, 799, 799, 799, 348, 803, + 804, 805, 803, 803, 803, 803, 803, 803, 803, 806, + 655, 179, 651, 807, 807, 807, 807, 807, 807, 1054, + 1055, 1056, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 650, + 164, 1029, 338, 1030, 1030, 1030, 1030, 1030, 1030, 807, + 807, 807, 807, 807, 807, 754, 649, 755, 755, 755, + 755, 755, 755, 755, 755, 755, 755, 973, 517, 974, + + 974, 974, 974, 974, 974, 974, 974, 974, 974, 973, + 159, 974, 974, 974, 974, 974, 974, 974, 974, 974, + 974, 505, 1062, 624, 304, 754, 1062, 755, 755, 755, + 755, 755, 755, 755, 755, 755, 755, 1078, 505, 623, + 1137, 1078, 1079, 1080, 1081, 1202, 1203, 1078, 1204, 1202, + 1063, 1078, 1079, 1080, 1081, 347, 347, 505, 1065, 1065, + 622, 347, 1065, 1065, 304, 866, 867, 867, 867, 867, + 867, 867, 867, 867, 867, 867, 159, 1253, 873, 188, + 1113, 1113, 1113, 1113, 1113, 1113, 1066, 1066, 1253, 466, + 1044, 1085, 1082, 1086, 1086, 1086, 1086, 1086, 1086, 578, + + 466, 185, 1084, 159, 866, 868, 868, 868, 868, 868, + 868, 868, 868, 868, 868, 188, 1085, 563, 1086, 1086, + 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1085, 562, + 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, + 561, 560, 159, 866, 869, 869, 869, 869, 869, 870, + 867, 867, 867, 867, 1085, 559, 1088, 1088, 1088, 1088, + 1088, 1089, 1090, 1090, 1090, 1090, 1085, 558, 1090, 1090, + 1090, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 557, 1131, + 556, 159, 873, 1131, 874, 874, 874, 874, 874, 874, + 874, 874, 874, 874, 875, 555, 554, 553, 876, 876, + + 876, 876, 876, 876, 552, 1202, 1203, 1132, 1204, 1202, + 462, 462, 551, 1062, 1062, 1065, 462, 1062, 1062, 1065, + 550, 312, 542, 538, 876, 876, 876, 876, 876, 876, + 880, 881, 882, 880, 880, 880, 880, 880, 880, 880, + 883, 1063, 1063, 1066, 884, 884, 884, 884, 884, 884, + 537, 536, 1105, 1106, 1107, 1105, 1105, 1105, 1105, 1105, + 1105, 1105, 284, 319, 319, 535, 534, 533, 532, 531, + 884, 884, 884, 884, 884, 884, 580, 348, 890, 890, + 890, 890, 890, 890, 890, 890, 890, 890, 798, 159, + 530, 529, 889, 889, 889, 889, 889, 889, 1108, 1109, + + 1110, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1053, 1053, + 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 889, 889, + 889, 889, 889, 889, 580, 348, 891, 891, 891, 891, + 891, 891, 891, 891, 891, 891, 892, 528, 527, 526, + 893, 893, 893, 893, 893, 893, 1035, 525, 1036, 1036, + 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1036, 1131, 524, + 286, 277, 1131, 286, 513, 286, 893, 893, 893, 893, + 893, 893, 348, 897, 898, 899, 897, 897, 897, 897, + 897, 897, 897, 510, 509, 508, 1132, 900, 900, 900, + 900, 900, 900, 1035, 507, 1036, 1036, 1036, 1036, 1036, + + 1036, 1036, 1036, 1036, 1036, 572, 572, 319, 499, 498, + 497, 572, 496, 900, 900, 900, 900, 900, 900, 158, + 1253, 286, 158, 1077, 286, 495, 286, 494, 158, 158, + 1077, 1077, 158, 158, 1077, 158, 158, 158, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 1077, 1077, + 1077, 158, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 902, 188, 188, + 188, 188, 188, 188, 188, 159, 158, 188, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 273, 491, 490, 489, 273, + + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 488, 273, 487, 486, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 927, 284, + 284, 284, 284, 284, 284, 284, 284, 485, 484, 286, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 937, 938, 938, + 938, 938, 938, 938, 938, 938, 938, 938, 1117, 1117, + 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1253, 483, + 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, + 482, 481, 480, 479, 478, 304, 937, 939, 939, 939, + + 939, 939, 939, 939, 939, 939, 939, 348, 1124, 1124, + 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 348, 1125, + 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1131, + 477, 185, 177, 1131, 304, 937, 940, 940, 940, 940, + 940, 941, 938, 938, 938, 938, 348, 1126, 1126, 1126, + 1126, 1126, 1127, 1124, 1124, 1124, 1124, 1132, 1138, 304, + 447, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, + 1139, 446, 438, 304, 303, 1131, 1173, 303, 437, 1131, + 1173, 436, 435, 303, 303, 434, 188, 303, 303, 433, + 303, 303, 303, 319, 319, 319, 319, 319, 319, 319, + + 319, 319, 319, 1132, 1174, 303, 303, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 942, 319, 319, 319, 319, 319, 319, 319, 319, + 304, 303, 319, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, + 866, 867, 867, 867, 867, 867, 867, 867, 867, 867, + 867, 1253, 1196, 426, 1196, 1253, 1253, 1253, 1253, 1078, + 1196, 308, 306, 1078, 1079, 1080, 1081, 1140, 1141, 1142, + 1140, 1140, 1140, 1140, 1140, 1140, 1140, 304, 159, 866, + 867, 867, 867, 867, 867, 867, 867, 867, 867, 867, + + 1253, 301, 425, 424, 1253, 1079, 1080, 1081, 1253, 423, + 421, 420, 1253, 1253, 1253, 1081, 1082, 348, 1124, 1124, + 1124, 1124, 1124, 1124, 1082, 412, 411, 159, 873, 410, + 961, 961, 961, 961, 961, 961, 961, 961, 961, 961, + 875, 873, 409, 962, 962, 962, 962, 962, 962, 962, + 962, 962, 962, 963, 408, 1082, 407, 964, 964, 964, + 964, 964, 964, 1082, 1253, 1253, 274, 266, 1253, 1253, + 1253, 1253, 1146, 1147, 1148, 1146, 1146, 1146, 1146, 1146, + 1146, 1146, 261, 964, 964, 964, 964, 964, 964, 968, + 969, 970, 968, 968, 968, 968, 968, 968, 968, 971, + + 262, 256, 256, 972, 972, 972, 972, 972, 972, 304, + 1095, 250, 1096, 1096, 1096, 1096, 1096, 1096, 286, 1084, + 1171, 286, 1171, 286, 1171, 207, 1171, 243, 159, 972, + 972, 972, 972, 972, 972, 580, 348, 980, 980, 980, + 980, 980, 980, 980, 980, 980, 980, 892, 1172, 304, + 1172, 979, 979, 979, 979, 979, 979, 1085, 394, 1086, + 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 284, + 1173, 319, 386, 385, 1173, 384, 383, 979, 979, 979, + 979, 979, 979, 580, 348, 981, 981, 981, 981, 981, + 981, 981, 981, 981, 981, 382, 159, 376, 1174, 982, + + 982, 982, 982, 982, 982, 1171, 375, 1253, 374, 1171, + 1083, 1171, 373, 372, 371, 1171, 362, 1083, 1083, 319, + 361, 1083, 360, 359, 358, 982, 982, 982, 982, 982, + 982, 158, 357, 1172, 158, 1083, 1083, 1083, 356, 1172, + 158, 158, 355, 354, 158, 158, 353, 158, 158, 158, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 185, 158, 188, 158, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 188, 159, 158, 987, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + + 158, 158, 158, 158, 158, 158, 158, 273, 185, 276, + 173, 273, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 171, 273, 164, 162, 284, 284, 284, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 1013, 284, 284, 284, 284, 284, 159, + 328, 286, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 937, + 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, + 1085, 327, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, + 1086, 1086, 1157, 326, 1158, 1158, 1158, 1158, 1158, 1158, + + 1158, 1158, 1158, 1158, 325, 324, 323, 304, 937, 938, + 938, 938, 938, 938, 938, 938, 938, 938, 938, 1157, + 319, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, + 1159, 1157, 308, 1160, 1160, 1160, 1160, 1160, 1161, 1158, + 1158, 1158, 1158, 304, 301, 297, 304, 303, 1173, 1199, + 303, 294, 1173, 1199, 293, 292, 303, 303, 291, 290, + 303, 303, 289, 303, 303, 303, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 1174, 1200, 284, 303, + 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 1023, 319, 319, + + 319, 319, 319, 304, 303, 319, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 1029, 262, 1030, 1030, 1030, 1030, 1030, + 1030, 1030, 1030, 1030, 1030, 1123, 1123, 1123, 1123, 1123, + 1123, 1123, 1123, 1123, 1123, 873, 256, 1164, 1164, 1164, + 1164, 1164, 1164, 573, 573, 577, 577, 1115, 250, 573, + 161, 577, 159, 1029, 243, 1031, 1031, 1031, 1031, 1031, + 1031, 1031, 1031, 1031, 1031, 1167, 1167, 1167, 1167, 1167, + 1167, 1167, 1167, 1167, 1167, 1253, 161, 1166, 1166, 1166, + 1166, 1166, 1166, 1166, 1166, 1166, 1166, 200, 678, 678, + + 236, 197, 159, 1029, 678, 1032, 1032, 1032, 1032, 1032, + 1033, 1034, 1034, 1034, 1034, 348, 1124, 1124, 1124, 1124, + 1124, 1124, 1124, 1124, 1124, 1124, 348, 1124, 1124, 1124, + 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1199, 188, 228, + 1173, 1199, 159, 1029, 1173, 1034, 1034, 1034, 1030, 1030, + 1030, 1030, 1030, 1030, 1030, 1139, 1139, 1139, 1139, 1139, + 1139, 1139, 1139, 1139, 1139, 1200, 226, 203, 1174, 1139, + 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 202, + 199, 198, 159, 873, 195, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 963, 873, 188, 1043, 1043, + + 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1044, 185, + 173, 162, 1045, 1045, 1045, 1045, 1045, 1045, 1177, 161, + 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, + 1157, 159, 1158, 1158, 1158, 1158, 1158, 1158, 1045, 1045, + 1045, 1045, 1045, 1045, 1049, 1050, 1051, 1049, 1049, 1049, + 1049, 1049, 1049, 1049, 1052, 1253, 1253, 1253, 1053, 1053, + 1053, 1053, 1053, 1053, 1177, 1253, 1179, 1179, 1179, 1179, + 1179, 1179, 1179, 1179, 1179, 1179, 1152, 1253, 1153, 1153, + 1153, 1153, 1153, 1153, 1053, 1053, 1053, 1053, 1053, 1053, + 580, 348, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, + + 1059, 1059, 1095, 1253, 1096, 1096, 1096, 1096, 1096, 1096, + 1096, 1096, 1096, 1096, 1177, 159, 1180, 1180, 1180, 1180, + 1180, 1181, 1178, 1178, 1178, 1178, 1189, 1190, 1191, 1189, + 1189, 1189, 1189, 1189, 1189, 1189, 1253, 680, 680, 1253, + 1253, 304, 1095, 680, 1097, 1097, 1097, 1097, 1097, 1097, + 1097, 1097, 1097, 1097, 1177, 1253, 1178, 1178, 1178, 1178, + 1178, 1178, 1253, 159, 1192, 1193, 1194, 1192, 1192, 1192, + 1192, 1192, 1192, 1192, 1216, 1216, 1216, 1216, 1216, 1216, + 1253, 304, 1095, 1253, 1098, 1098, 1098, 1098, 1098, 1099, + 1100, 1100, 1100, 1100, 1157, 1253, 1158, 1158, 1158, 1158, + + 1158, 1158, 1158, 1158, 1158, 1158, 1157, 1253, 1158, 1158, + 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1253, 1199, + 1253, 304, 1095, 1199, 1100, 1100, 1100, 1096, 1096, 1096, + 1096, 1096, 1096, 1096, 873, 1253, 1197, 1197, 1197, 1197, + 1197, 1197, 1197, 1197, 1197, 1197, 1253, 1200, 1205, 1206, + 1207, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1253, 1253, + 1253, 304, 1029, 1253, 1030, 1030, 1030, 1030, 1030, 1030, + 1030, 1030, 1030, 1030, 1253, 1177, 188, 1178, 1178, 1178, + 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1177, 1253, 1178, + 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1253, + + 1253, 159, 1029, 1253, 1030, 1030, 1030, 1030, 1030, 1030, + 1030, 1030, 1030, 1030, 1253, 1253, 1253, 1253, 1253, 1208, + 1209, 1210, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1183, + 1253, 1184, 1184, 1184, 1184, 1184, 1184, 681, 681, 1253, + 1253, 159, 873, 681, 1113, 1113, 1113, 1113, 1113, 1113, + 1113, 1113, 1113, 1113, 1044, 873, 304, 1114, 1114, 1114, + 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1115, 304, 1253, + 1253, 1116, 1116, 1116, 1116, 1116, 1116, 1211, 1253, 1212, + 1212, 1212, 1212, 1212, 1212, 1199, 1253, 1253, 1223, 1199, + 1224, 1224, 1224, 1224, 1224, 1224, 1253, 1116, 1116, 1116, + + 1116, 1116, 1116, 1120, 1121, 1122, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1200, 1253, 1253, 159, 1123, 1123, 1123, + 1123, 1123, 1123, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1216, 1216, 1253, 319, 1247, 1247, 1247, 1247, 1247, + 1247, 1253, 1253, 1123, 1123, 1123, 1123, 1123, 1123, 1095, + 1253, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, + 1096, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, + 1217, 1218, 1218, 1218, 1218, 1218, 1219, 1216, 1216, 1216, + 1216, 780, 780, 1253, 781, 781, 1253, 780, 304, 1095, + 781, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, + + 1096, 1223, 1253, 1224, 1224, 1224, 1224, 1224, 1224, 1224, + 1224, 1224, 1224, 1223, 1253, 1225, 1225, 1225, 1225, 1225, + 1225, 1225, 1225, 1225, 1225, 1253, 1253, 1253, 304, 1152, + 1253, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, + 1153, 1223, 1253, 1226, 1226, 1226, 1226, 1226, 1227, 1224, + 1224, 1224, 1224, 1233, 1234, 1235, 1233, 1233, 1233, 1233, + 1233, 1233, 1233, 1253, 782, 782, 1253, 1253, 159, 1152, + 782, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 871, 871, 872, 872, 1253, 1253, 871, 1253, 872, + 159, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + + 1216, 956, 956, 1253, 1040, 1040, 1253, 956, 159, 1152, + 1040, 1155, 1155, 1155, 1155, 1155, 1156, 1153, 1153, 1153, + 1153, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, + 1216, 1237, 1238, 1239, 1237, 1237, 1237, 1237, 1237, 1237, + 1237, 286, 1253, 1253, 286, 1253, 286, 1253, 159, 873, + 1253, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, + 1164, 1115, 873, 1253, 1165, 1165, 1165, 1165, 1165, 1165, + 1165, 1165, 1165, 1165, 1253, 1253, 1253, 1253, 1166, 1166, + 1166, 1166, 1166, 1166, 1223, 1253, 1224, 1224, 1224, 1224, + 1224, 1224, 1224, 1224, 1224, 1224, 1111, 1111, 1253, 1253, + + 1253, 1253, 1111, 1253, 1166, 1166, 1166, 1166, 1166, 1166, + 1183, 1253, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, + 1184, 1184, 1223, 1253, 1224, 1224, 1224, 1224, 1224, 1224, + 1224, 1224, 1224, 1224, 1240, 1241, 1242, 1240, 1240, 1240, + 1240, 1240, 1240, 1240, 1253, 1162, 1162, 1253, 1253, 304, + 1183, 1162, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 1253, 1228, 1253, 1229, 1229, 1229, 1229, 1229, + 1229, 304, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + 1243, 1243, 1253, 1243, 1243, 1243, 1243, 1243, 1243, 304, + 1183, 1253, 1186, 1186, 1186, 1186, 1186, 1187, 1184, 1184, + + 1184, 1184, 304, 1253, 1253, 1253, 1253, 1253, 1253, 159, + 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 159, 1195, 1195, 1253, 1253, 1253, 1253, 1195, 1253, 304, + 1152, 1253, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, + 1153, 1153, 1253, 1253, 1253, 1253, 1253, 159, 1244, 1244, + 1244, 1244, 1244, 1245, 1243, 1243, 1243, 1243, 1247, 1247, + 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1253, 159, + 1152, 1253, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, + 1153, 1153, 1253, 1253, 1253, 159, 1237, 1237, 1237, 1237, + 1237, 1237, 1237, 1237, 1237, 1237, 1248, 1248, 1248, 1248, + + 1248, 1249, 1247, 1247, 1247, 1247, 1253, 1253, 1253, 159, + 1183, 1253, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, + 1184, 1184, 1253, 1253, 1253, 1250, 1250, 1250, 1250, 1250, + 1250, 1250, 1250, 1250, 1250, 1240, 1240, 1240, 1240, 1240, + 1240, 1240, 1240, 1240, 1240, 1253, 1253, 1253, 1253, 304, + 1183, 1253, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, + 1184, 1184, 304, 1253, 1253, 1250, 1250, 1250, 1250, 1250, + 1250, 1253, 304, 1251, 1251, 1251, 1251, 1251, 1252, 1250, + 1250, 1250, 1250, 1253, 1253, 1253, 1253, 1253, 1253, 304, + 1211, 1253, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + + 1212, 1212, 304, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 304, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + 1243, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 159, + 1211, 1253, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, + 1213, 1213, 1253, 1253, 1253, 1253, 1253, 1253, 159, 1247, + 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1250, + 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 159, + 1211, 1253, 1214, 1214, 1214, 1214, 1214, 1215, 1212, 1212, + 1212, 1212, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 304, 1253, 1253, 1253, + + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 159, + 1228, 1253, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 304, + 1228, 1253, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 304, + 1228, 1253, 1231, 1231, 1231, 1231, 1231, 1232, 1229, 1229, + + 1229, 1229, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 304, + 1211, 1253, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 159, + 1211, 1253, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, + 1212, 1212, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 159, + 1228, 1253, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 304, + 1228, 1253, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, + 1229, 1229, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 304, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + + 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 40, 40, 40, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 103, 103, 103, 103, 103, 103, + 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, + 103, 103, 103, 103, 103, 131, 131, 131, 131, 131, + + 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 131, 131, 158, 1253, 1253, 158, + 1253, 1253, 1253, 158, 1253, 158, 1253, 158, 158, 158, + 1253, 1253, 158, 158, 158, 158, 158, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 163, 163, 163, 168, 1253, + 1253, 168, 1253, 1253, 168, 168, 1253, 168, 1253, 168, + 168, 168, 168, 1253, 168, 168, 168, 168, 168, 172, + 1253, 1253, 172, 1253, 1253, 1253, 172, 1253, 172, 1253, + 172, 172, 172, 1253, 1253, 172, 172, 172, 172, 172, + + 174, 1253, 1253, 174, 174, 174, 1253, 174, 174, 174, + 1253, 174, 174, 174, 1253, 1253, 174, 174, 174, 174, + 174, 210, 210, 1253, 210, 210, 210, 1253, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 233, 1253, 1253, 233, 233, 233, 1253, 233, + 233, 233, 1253, 233, 233, 233, 1253, 1253, 233, 233, + 233, 233, 233, 237, 237, 1253, 237, 237, 237, 1253, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 237, 237, 242, 1253, 1253, 242, 242, 242, + 1253, 242, 242, 242, 1253, 242, 242, 242, 1253, 242, + + 242, 1253, 242, 242, 242, 248, 248, 1253, 248, 248, + 248, 1253, 1253, 248, 248, 248, 248, 248, 248, 248, + 248, 248, 1253, 248, 248, 248, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 255, 1253, 1253, + 255, 255, 1253, 1253, 255, 255, 255, 1253, 255, 255, + 255, 255, 1253, 255, 255, 255, 255, 255, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 259, 259, 259, 259, 259, 259, 261, + 261, 1253, 261, 261, 1253, 261, 261, 261, 261, 261, + + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 268, 1253, 1253, 268, 1253, 1253, 268, 268, 1253, 268, + 1253, 268, 268, 268, 268, 1253, 268, 268, 268, 268, + 268, 272, 1253, 1253, 272, 1253, 1253, 1253, 272, 1253, + 272, 1253, 272, 272, 272, 1253, 272, 272, 272, 272, + 272, 272, 275, 1253, 1253, 275, 275, 275, 1253, 275, + 275, 275, 1253, 275, 275, 275, 1253, 275, 275, 275, + 275, 275, 275, 211, 211, 1253, 211, 211, 211, 1253, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 300, 1253, 1253, 1253, 300, 300, + + 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, + 300, 300, 300, 300, 300, 303, 1253, 1253, 303, 1253, + 1253, 1253, 303, 1253, 303, 1253, 303, 303, 303, 1253, + 1253, 303, 303, 303, 303, 303, 305, 1253, 1253, 305, + 1253, 1253, 305, 305, 1253, 305, 1253, 305, 305, 305, + 305, 1253, 305, 305, 305, 305, 305, 307, 1253, 1253, + 307, 1253, 1253, 1253, 307, 1253, 307, 1253, 307, 307, + 307, 1253, 1253, 307, 307, 307, 307, 307, 309, 1253, + 1253, 309, 309, 309, 1253, 309, 309, 309, 1253, 309, + 309, 309, 1253, 1253, 309, 309, 309, 309, 309, 331, + + 331, 1253, 331, 331, 331, 1253, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 269, 1241, 1241, 269, 269, 1241, 269, 269, - 1241, 1241, 269, 269, 298, 1241, 1241, 298, 1241, 1241, - 1241, 298, 1241, 298, 1241, 298, 298, 298, 1241, 1241, - - 298, 298, 298, 298, 298, 1029, 1241, 1029, 1029, 1241, - 1241, 1241, 1241, 1029, 1045, 1045, 1045, 1241, 1241, 1241, - 1241, 1045, 1046, 1046, 1046, 1241, 1241, 1241, 1241, 1241, - 1046, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, - 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, - 1060, 1060, 1065, 1065, 1241, 1065, 1065, 1065, 1065, 1065, - 1241, 1065, 1241, 1065, 1065, 1065, 1241, 1241, 1065, 1065, - 1065, 1065, 1065, 1071, 1071, 1241, 1071, 1071, 1071, 1071, - 1071, 1241, 1071, 1241, 1071, 1071, 1071, 1241, 1241, 1071, - 1071, 1071, 1071, 1071, 1100, 1241, 1100, 1100, 1241, 1241, - - 1241, 1241, 1100, 1151, 1241, 1151, 1151, 1241, 1241, 1241, - 1241, 1151, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, - 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, - 1189, 1189, 1189, 21, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241 + 158, 1253, 1253, 158, 1253, 1253, 1253, 158, 1253, 158, + 1253, 158, 158, 158, 1253, 1253, 158, 158, 158, 158, + 158, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 339, 339, 1253, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 168, 1253, 1253, 168, 1253, 1253, 1253, + 168, 1253, 168, 1253, 168, 168, 168, 1253, 1253, 168, + + 168, 168, 168, 168, 172, 1253, 1253, 172, 1253, 1253, + 1253, 172, 1253, 172, 1253, 172, 172, 172, 1253, 1253, + 172, 172, 172, 172, 172, 174, 1253, 1253, 174, 174, + 174, 1253, 174, 174, 174, 1253, 174, 174, 174, 1253, + 1253, 174, 174, 174, 174, 174, 175, 1253, 1253, 175, + 175, 175, 1253, 175, 175, 175, 1253, 175, 175, 175, + 1253, 1253, 175, 175, 175, 175, 175, 349, 349, 349, + 1253, 1253, 1253, 1253, 349, 210, 210, 1253, 210, 210, + 210, 1253, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 211, 211, 1253, 211, + + 211, 211, 1253, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 233, 1253, 1253, + 233, 233, 233, 1253, 233, 233, 233, 1253, 233, 233, + 233, 1253, 1253, 233, 233, 233, 233, 233, 234, 1253, + 1253, 234, 234, 234, 1253, 234, 234, 234, 1253, 234, + 234, 234, 1253, 1253, 234, 234, 234, 234, 234, 237, + 237, 1253, 237, 237, 237, 1253, 237, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 238, 238, 1253, 238, 238, 238, 1253, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + + 238, 242, 1253, 1253, 242, 242, 242, 1253, 242, 242, + 242, 1253, 242, 242, 242, 1253, 242, 242, 1253, 242, + 242, 242, 248, 248, 1253, 248, 248, 248, 1253, 1253, + 248, 248, 248, 248, 248, 248, 248, 248, 248, 1253, + 248, 248, 248, 255, 1253, 1253, 255, 255, 1253, 1253, + 255, 255, 255, 1253, 255, 255, 255, 255, 1253, 255, + 255, 255, 255, 255, 261, 261, 1253, 261, 261, 1253, + 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, + 261, 261, 261, 261, 261, 271, 1253, 1253, 271, 1253, + 1253, 1253, 271, 1253, 271, 1253, 271, 271, 271, 1253, + + 1253, 271, 271, 271, 271, 271, 272, 1253, 1253, 272, + 1253, 1253, 1253, 272, 1253, 272, 1253, 272, 272, 272, + 1253, 272, 272, 272, 272, 272, 272, 273, 1253, 1253, + 273, 273, 1253, 273, 273, 1253, 1253, 273, 273, 275, + 1253, 1253, 275, 275, 275, 1253, 275, 275, 275, 1253, + 275, 275, 275, 1253, 275, 275, 275, 275, 275, 275, + 300, 1253, 1253, 1253, 300, 300, 300, 300, 300, 300, + 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, + 300, 303, 1253, 1253, 303, 1253, 1253, 1253, 303, 1253, + 303, 1253, 303, 303, 303, 1253, 1253, 303, 303, 303, + + 303, 303, 305, 1253, 1253, 305, 1253, 1253, 1253, 305, + 1253, 305, 1253, 305, 305, 305, 1253, 1253, 305, 305, + 305, 305, 305, 307, 1253, 1253, 307, 1253, 1253, 1253, + 307, 1253, 307, 1253, 307, 307, 307, 1253, 1253, 307, + 307, 307, 307, 307, 309, 1253, 1253, 309, 309, 309, + 1253, 309, 309, 309, 1253, 309, 309, 309, 1253, 1253, + 309, 309, 309, 309, 309, 310, 1253, 1253, 310, 310, + 310, 1253, 310, 310, 310, 1253, 310, 310, 310, 1253, + 1253, 310, 310, 310, 310, 310, 331, 331, 1253, 331, + 331, 331, 1253, 331, 331, 331, 331, 331, 331, 331, + + 331, 331, 331, 331, 331, 331, 331, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 158, + 1253, 1253, 158, 1253, 1253, 1253, 158, 1253, 158, 1253, + 158, 158, 158, 1253, 1253, 158, 158, 158, 158, 158, + 468, 468, 468, 1253, 1253, 1253, 1253, 468, 210, 210, + 1253, 210, 210, 210, 1253, 210, 210, 210, 210, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 238, + + 238, 1253, 238, 238, 238, 238, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 237, 237, 1253, 237, 237, 237, 1253, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 211, 211, 1253, 211, 211, 211, 1253, 211, 211, + 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, + 211, 211, 579, 579, 579, 1253, 1253, 1253, 1253, 579, + 474, 474, 474, 1253, 1253, 1253, 1253, 474, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 238, + + 238, 1253, 238, 238, 238, 1253, 238, 238, 238, 238, + 238, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 683, 683, 683, 1253, 1253, 1253, 1253, 683, 687, 687, + 687, 687, 1253, 1253, 1253, 1253, 687, 794, 794, 794, + 1253, 1253, 1253, 1253, 794, 795, 795, 795, 795, 1253, + 1253, 1253, 1253, 795, 888, 888, 888, 1253, 1253, 1253, + 1253, 888, 889, 889, 889, 889, 1253, 1253, 1253, 1253, + 889, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 273, 1253, 1253, 273, 273, 1253, 273, 273, + + 1253, 1253, 273, 273, 303, 1253, 1253, 303, 1253, 1253, + 1253, 303, 1253, 303, 1253, 303, 303, 303, 1253, 1253, + 303, 303, 303, 303, 303, 960, 1253, 960, 960, 1253, + 1253, 1253, 1253, 960, 978, 978, 978, 1253, 1253, 1253, + 1253, 978, 979, 979, 979, 979, 1253, 1253, 1253, 1253, + 979, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 337, 337, 337, 337, 337, 337, 337, 337, + 337, 337, 273, 1253, 1253, 273, 273, 1253, 273, 273, + 1253, 1253, 273, 273, 303, 1253, 1253, 303, 1253, 1253, + 1253, 303, 1253, 303, 1253, 303, 303, 303, 1253, 1253, + + 303, 303, 303, 303, 303, 1041, 1253, 1041, 1041, 1253, + 1253, 1253, 1253, 1041, 1057, 1057, 1057, 1253, 1253, 1253, + 1253, 1057, 1058, 1058, 1058, 1253, 1253, 1253, 1253, 1253, + 1058, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, + 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, + 1072, 1072, 1077, 1077, 1253, 1077, 1077, 1077, 1077, 1077, + 1253, 1077, 1253, 1077, 1077, 1077, 1253, 1253, 1077, 1077, + 1077, 1077, 1077, 1083, 1083, 1253, 1083, 1083, 1083, 1083, + 1083, 1253, 1083, 1253, 1083, 1083, 1083, 1253, 1253, 1083, + 1083, 1083, 1083, 1083, 1112, 1253, 1112, 1112, 1253, 1253, + + 1253, 1253, 1112, 1163, 1253, 1163, 1163, 1253, 1253, 1253, + 1253, 1163, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, + 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, + 1201, 1201, 1201, 21, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253 } ; static yyconst flex_int16_t yy_chk[9611] = @@ -1966,57 +1969,57 @@ static yyconst flex_int16_t yy_chk[9611] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 23, 43, 41, - 2, 23, 43, 2, 5, 5, 375, 5, 5, 5, - 41, 5, 6, 6, 375, 6, 6, 6, 5, 6, + 2, 23, 43, 2, 5, 5, 382, 5, 5, 5, + 41, 5, 6, 6, 382, 6, 6, 6, 5, 6, 7, 7, 55, 7, 7, 7, 6, 7, 7, 29, - 2, 2, 5, 5, 45, 2, 55, 49, 45, 502, - 6, 6, 49, 2, 69, 45, 2, 3, 69, 116, + 2, 2, 5, 5, 45, 2, 55, 49, 45, 512, + 6, 6, 49, 2, 70, 45, 2, 3, 70, 59, 29, 3, 13, 13, 3, 13, 13, 13, 13, 5, - 116, 3, 502, 44, 3, 52, 44, 6, 14, 14, + 59, 3, 512, 44, 3, 52, 44, 6, 14, 14, 44, 14, 14, 14, 14, 7, 44, 29, 3, 3, - 52, 3, 37, 37, 37, 37, 37, 37, 65, 3, - 160, 3, 160, 3, 3, 46, 3, 448, 46, 46, - 107, 8, 8, 3, 8, 8, 8, 13, 8, 8, - 17, 17, 17, 17, 17, 17, 17, 65, 67, 3, - - 4, 107, 67, 14, 4, 34, 34, 4, 59, 63, - 34, 34, 67, 63, 4, 85, 448, 4, 59, 85, - 18, 18, 18, 18, 18, 18, 18, 59, 107, 63, - 34, 4, 4, 76, 4, 1238, 8, 91, 91, 128, - 91, 91, 4, 76, 4, 17, 4, 4, 128, 4, - 93, 93, 76, 93, 93, 34, 4, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 60, 104, 97, - 99, 60, 4, 9, 9, 18, 9, 9, 9, 58, + 52, 3, 37, 37, 37, 37, 37, 37, 66, 3, + 163, 3, 163, 3, 3, 46, 3, 457, 46, 46, + 108, 8, 8, 3, 8, 8, 8, 13, 8, 8, + 17, 17, 17, 17, 17, 17, 17, 66, 68, 3, + + 4, 108, 68, 14, 4, 34, 34, 4, 60, 64, + 34, 34, 68, 64, 4, 86, 457, 4, 60, 86, + 18, 18, 18, 18, 18, 18, 18, 60, 108, 64, + 34, 4, 4, 77, 4, 1250, 8, 92, 92, 130, + 92, 92, 4, 77, 4, 17, 4, 4, 130, 4, + 94, 94, 77, 94, 94, 34, 4, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 61, 105, 98, + 100, 61, 4, 9, 9, 18, 9, 9, 9, 58, 9, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 62, 364, 364, 62, 97, 99, 117, 62, 183, + 58, 63, 117, 475, 63, 98, 100, 118, 63, 186, - 117, 60, 60, 125, 62, 157, 60, 101, 101, 157, - 101, 101, 103, 183, 60, 142, 103, 60, 104, 226, - 62, 106, 106, 226, 106, 106, 142, 106, 9, 130, + 118, 61, 61, 117, 63, 475, 61, 102, 102, 126, + 102, 102, 104, 186, 61, 144, 104, 61, 105, 160, + 63, 107, 107, 160, 107, 107, 144, 107, 9, 132, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, - 125, 10, 10, 10, 68, 10, 134, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 103, 112, 112, - 112, 112, 112, 112, 1234, 70, 70, 134, 205, 130, - 70, 70, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 139, 139, 139, 139, 139, 139, 132, 132, + 208, 10, 10, 10, 69, 10, 126, 69, 69, 69, + 69, 69, 69, 69, 69, 69, 69, 104, 113, 113, + 113, 113, 113, 113, 145, 71, 71, 145, 1246, 132, + 71, 71, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 141, 141, 141, 141, 141, 141, 134, 134, - 70, 132, 132, 10, 134, 10, 10, 10, 10, 10, + 71, 134, 134, 10, 208, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 11, 11, 70, 11, 11, 11, 11, - 11, 143, 205, 331, 143, 331, 11, 11, 11, 126, - 182, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 182, 11, 132, 167, 228, 136, 136, 208, 228, - 1231, 136, 136, 138, 138, 138, 138, 138, 138, 138, - 138, 138, 138, 211, 222, 167, 211, 154, 11, 12, - 12, 136, 12, 12, 12, 12, 12, 154, 1212, 212, - 223, 222, 12, 12, 12, 212, 154, 203, 203, 245, - - 203, 203, 167, 245, 223, 208, 136, 153, 12, 153, - 153, 153, 153, 153, 153, 153, 153, 153, 153, 163, - 163, 163, 163, 163, 163, 163, 163, 163, 163, 240, - 240, 1185, 240, 240, 12, 15, 15, 15, 15, 15, + 10, 10, 10, 11, 11, 71, 11, 11, 11, 11, + 11, 206, 206, 136, 206, 206, 11, 11, 11, 127, + 156, 127, 127, 127, 127, 127, 127, 127, 127, 127, + 127, 156, 11, 134, 136, 157, 183, 183, 183, 183, + 183, 183, 138, 138, 185, 157, 215, 138, 138, 215, + 216, 214, 226, 334, 157, 185, 216, 227, 11, 12, + 12, 136, 12, 12, 12, 12, 12, 138, 214, 226, + 334, 227, 12, 12, 12, 140, 140, 140, 140, 140, + + 140, 140, 140, 140, 140, 230, 232, 1243, 12, 230, + 232, 155, 138, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 155, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 1224, 12, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -2032,989 +2035,989 @@ static yyconst flex_int16_t yy_chk[9611] = 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 28, 260, 28, - 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - - 221, 28, 807, 234, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 35, 807, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 297, 1183, 224, - 35, 35, 35, 35, 35, 35, 224, 452, 260, 324, - 220, 156, 156, 156, 156, 156, 220, 221, 156, 156, - 234, 262, 156, 35, 220, 262, 35, 35, 35, 35, - 35, 35, 42, 237, 452, 42, 156, 156, 156, 237, - 329, 42, 42, 329, 384, 42, 42, 297, 42, 42, + 19, 19, 19, 19, 19, 19, 19, 28, 264, 28, + 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, + + 211, 28, 1197, 225, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 35, 170, 35, 35, 35, 35, + 35, 35, 35, 35, 35, 35, 35, 238, 370, 370, + 35, 35, 35, 35, 35, 35, 170, 461, 264, 329, + 224, 159, 159, 159, 159, 159, 224, 211, 159, 159, + 225, 249, 159, 35, 224, 249, 35, 35, 35, 35, + 35, 35, 42, 170, 461, 42, 159, 159, 159, 266, + 228, 42, 42, 266, 238, 42, 42, 228, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 384, 324, 42, 42, 42, 42, 42, 42, + 42, 42, 1195, 329, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 219, - 1166, 219, 47, 47, 47, 47, 47, 47, 332, 393, - 332, 259, 47, 393, 166, 259, 47, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 386, 47, 47, - 47, 47, 47, 47, 56, 56, 374, 56, 56, 56, - 56, 56, 296, 386, 56, 56, 296, 330, 56, 171, - - 171, 374, 1154, 330, 171, 171, 180, 180, 180, 180, - 180, 180, 56, 56, 56, 57, 259, 219, 469, 57, - 57, 57, 345, 57, 171, 57, 57, 345, 343, 57, - 168, 168, 168, 168, 168, 469, 225, 168, 168, 343, - 225, 168, 459, 57, 57, 57, 333, 296, 333, 171, - 225, 264, 381, 459, 381, 168, 168, 168, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, 382, 460, - 57, 61, 264, 61, 382, 170, 170, 170, 170, 170, - 460, 385, 170, 170, 385, 61, 170, 567, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, 567, 264, - - 170, 170, 170, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 174, 179, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 206, 206, 210, 206, 206, 210, 292, - 292, 1153, 210, 210, 213, 492, 61, 75, 213, 392, - 174, 75, 75, 75, 380, 75, 380, 75, 75, 196, - 196, 75, 389, 196, 392, 196, 196, 416, 416, 196, - 416, 196, 196, 1151, 492, 75, 75, 75, 213, 213, - 229, 229, 415, 213, 443, 229, 229, 292, 206, 236, - 210, 213, 236, 265, 213, 471, 236, 236, 445, 443, - 445, 479, 75, 83, 83, 229, 83, 83, 83, 389, - - 83, 479, 471, 380, 265, 83, 466, 83, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, 466, 415, - 229, 83, 83, 232, 232, 1150, 446, 232, 446, 232, - 232, 265, 468, 232, 236, 232, 248, 248, 483, 248, - 248, 256, 256, 481, 256, 256, 472, 483, 83, 83, - 92, 468, 92, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 481, 92, 472, 489, 92, 92, 92, - 92, 92, 92, 92, 92, 92, 92, 108, 261, 261, - 108, 261, 261, 489, 470, 252, 108, 108, 470, 252, - 108, 252, 252, 108, 108, 328, 256, 272, 328, 252, - - 1146, 272, 328, 328, 272, 373, 373, 108, 373, 108, - 528, 272, 470, 528, 252, 273, 273, 273, 273, 273, - 273, 273, 273, 273, 273, 272, 272, 278, 278, 278, - 278, 278, 278, 108, 108, 108, 109, 477, 802, 109, - 373, 802, 109, 109, 486, 109, 109, 109, 109, 109, - 328, 477, 109, 109, 266, 266, 266, 266, 456, 456, - 456, 266, 266, 488, 486, 266, 109, 109, 109, 276, - 276, 276, 276, 276, 276, 276, 276, 276, 276, 488, - 266, 266, 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 109, 109, 109, 110, 504, 581, 110, 110, - - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 581, 504, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 473, 1139, 505, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 113, 473, 113, - 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, - 478, 476, 484, 113, 113, 113, 113, 113, 113, 476, - 484, 270, 270, 270, 270, 270, 505, 491, 270, 270, - 491, 478, 270, 312, 312, 312, 312, 312, 312, 113, - - 113, 113, 113, 113, 113, 114, 270, 270, 270, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 491, 485, 114, 114, 114, 114, 114, 114, + 47, 47, 47, 47, 47, 47, 47, 47, 47, 223, + 819, 223, 47, 47, 47, 47, 47, 47, 335, 241, + 302, 335, 47, 819, 169, 241, 47, 169, 169, 169, + 169, 169, 169, 169, 169, 169, 169, 393, 47, 47, + 47, 47, 47, 47, 56, 56, 349, 56, 56, 56, + 56, 56, 229, 393, 56, 56, 229, 349, 56, 174, + + 174, 1178, 233, 233, 174, 174, 229, 233, 233, 337, + 302, 337, 56, 56, 56, 57, 336, 223, 379, 57, + 57, 57, 336, 57, 174, 57, 57, 233, 391, 57, + 171, 171, 171, 171, 171, 504, 379, 171, 171, 296, + 296, 171, 504, 57, 57, 57, 391, 244, 244, 174, + 244, 244, 233, 381, 399, 171, 171, 171, 181, 181, + 181, 181, 181, 181, 181, 181, 181, 181, 381, 399, + 57, 62, 338, 62, 338, 173, 173, 173, 173, 173, + 263, 478, 173, 173, 263, 62, 173, 296, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 478, 396, + + 173, 173, 173, 177, 177, 177, 177, 177, 177, 177, + 177, 177, 177, 182, 182, 182, 182, 182, 182, 182, + 182, 182, 182, 209, 209, 213, 209, 209, 213, 339, + 422, 339, 213, 213, 217, 263, 62, 76, 217, 351, + 177, 76, 76, 76, 351, 76, 396, 76, 76, 199, + 199, 76, 388, 199, 388, 199, 199, 389, 450, 199, + 400, 199, 199, 389, 400, 76, 76, 76, 217, 217, + 268, 252, 252, 217, 252, 252, 450, 422, 209, 240, + 213, 217, 240, 489, 217, 269, 240, 240, 387, 452, + 387, 268, 76, 84, 84, 489, 84, 84, 84, 392, + + 84, 454, 392, 454, 452, 84, 269, 84, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 231, 268, 236, + 236, 84, 84, 236, 301, 236, 236, 477, 301, 236, + 455, 236, 455, 269, 240, 253, 253, 253, 253, 253, + 253, 253, 253, 253, 253, 617, 477, 387, 84, 84, + 93, 486, 93, 260, 260, 468, 260, 260, 265, 265, + 539, 265, 265, 539, 93, 486, 468, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 109, 617, 301, + 109, 424, 424, 482, 424, 256, 109, 109, 480, 256, + 109, 256, 256, 109, 109, 270, 270, 270, 270, 256, + + 469, 481, 270, 270, 482, 480, 270, 109, 260, 109, + 485, 469, 276, 494, 256, 1166, 276, 487, 485, 276, + 481, 270, 270, 465, 465, 465, 276, 282, 282, 282, + 282, 282, 282, 109, 109, 109, 110, 494, 487, 110, + 276, 276, 110, 110, 490, 110, 110, 110, 110, 110, + 488, 493, 110, 110, 274, 274, 274, 274, 274, 493, + 488, 274, 274, 1165, 490, 274, 110, 110, 110, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 274, + 274, 274, 280, 280, 280, 280, 280, 280, 280, 280, + 280, 280, 110, 110, 110, 111, 497, 600, 111, 111, + + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 497, 600, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 491, 1163, 618, + 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 111, 111, 111, 114, 491, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 485, 1133, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 480, 537, - 494, 118, 118, 118, 118, 118, 118, 494, 288, 288, - 480, 118, 288, 482, 288, 288, 1117, 594, 288, 475, - - 288, 442, 442, 475, 442, 594, 537, 118, 118, 118, - 118, 118, 118, 137, 482, 137, 137, 137, 137, 137, - 137, 137, 137, 137, 137, 137, 493, 475, 506, 137, - 137, 137, 137, 137, 137, 506, 442, 474, 608, 556, - 299, 299, 299, 299, 299, 503, 556, 299, 299, 474, - 580, 299, 137, 533, 474, 137, 137, 137, 137, 137, - 137, 140, 493, 517, 140, 299, 299, 299, 517, 580, - 140, 140, 503, 608, 140, 140, 1116, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 503, 533, 140, 140, 140, 140, 140, 140, 140, - - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 849, 555, - 849, 144, 144, 144, 144, 144, 144, 553, 321, 321, - 553, 144, 321, 1112, 321, 321, 304, 304, 321, 542, - 321, 304, 304, 501, 542, 501, 597, 144, 144, 144, - 144, 144, 144, 151, 151, 555, 151, 151, 151, 151, - 151, 304, 553, 151, 151, 1100, 597, 151, 307, 307, - - 307, 307, 307, 307, 307, 307, 307, 307, 587, 554, - 585, 151, 151, 151, 152, 598, 304, 518, 152, 152, - 152, 518, 152, 598, 152, 152, 587, 593, 152, 301, - 301, 301, 301, 301, 585, 307, 301, 301, 554, 501, - 301, 593, 152, 152, 152, 518, 586, 325, 325, 588, - 325, 325, 586, 592, 301, 301, 301, 582, 596, 592, - 303, 303, 303, 303, 303, 588, 919, 303, 303, 152, - 173, 303, 596, 173, 173, 173, 173, 173, 582, 919, - 173, 173, 605, 606, 173, 303, 303, 303, 310, 310, - 310, 310, 310, 310, 310, 310, 310, 310, 173, 173, - - 173, 175, 325, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 606, 605, 1099, 175, 175, 175, - 175, 175, 175, 311, 311, 311, 311, 311, 311, 311, - 311, 311, 311, 463, 463, 463, 463, 463, 463, 589, - 175, 569, 569, 175, 175, 175, 175, 175, 175, 184, - 601, 539, 184, 569, 609, 539, 692, 601, 184, 184, - 609, 589, 184, 184, 692, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 539, - 1091, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, - 184, 184, 184, 184, 184, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 1060, 659, 1060, 185, - 185, 185, 185, 185, 185, 334, 334, 334, 334, 334, - 334, 334, 334, 334, 334, 335, 335, 335, 335, 335, - 335, 335, 335, 335, 335, 185, 185, 185, 185, 185, - 185, 207, 659, 701, 521, 207, 207, 207, 521, 207, - 387, 207, 207, 599, 387, 207, 451, 387, 451, 451, - 451, 451, 451, 451, 387, 595, 600, 701, 1090, 207, - - 207, 207, 521, 607, 599, 600, 603, 515, 387, 387, - 394, 515, 394, 394, 394, 394, 394, 394, 394, 394, - 394, 394, 616, 521, 595, 451, 207, 231, 616, 603, - 231, 231, 231, 231, 231, 515, 607, 231, 231, 1082, - 395, 231, 395, 395, 395, 395, 395, 395, 395, 395, - 395, 395, 515, 660, 657, 231, 231, 231, 233, 660, - 656, 516, 233, 233, 233, 516, 233, 662, 233, 233, - 604, 396, 233, 396, 396, 396, 396, 396, 396, 396, - 396, 396, 396, 571, 571, 657, 233, 233, 233, 516, - 418, 855, 604, 656, 418, 571, 511, 418, 511, 511, - - 511, 511, 511, 511, 418, 613, 662, 613, 516, 614, - 615, 689, 658, 233, 268, 671, 813, 268, 418, 418, - 813, 614, 615, 268, 268, 694, 671, 268, 689, 855, - 268, 268, 447, 447, 447, 447, 447, 447, 447, 447, - 447, 447, 743, 694, 268, 658, 268, 455, 455, 455, - 455, 455, 455, 455, 455, 455, 455, 455, 462, 462, - 462, 462, 462, 462, 462, 462, 462, 462, 688, 447, - 268, 268, 268, 271, 688, 697, 271, 675, 613, 271, - 271, 743, 271, 271, 271, 271, 271, 1081, 675, 271, - 271, 465, 697, 465, 465, 465, 465, 465, 465, 465, - - 465, 465, 465, 271, 271, 271, 507, 507, 507, 507, - 507, 507, 507, 507, 507, 507, 509, 702, 509, 509, - 509, 509, 509, 509, 509, 509, 509, 509, 693, 271, - 271, 271, 274, 702, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 695, 1080, 693, 274, 274, - 274, 274, 274, 274, 510, 699, 510, 510, 510, 510, - 510, 510, 510, 510, 510, 510, 695, 699, 1209, 543, - 676, 676, 699, 543, 274, 274, 274, 274, 274, 274, - 279, 704, 676, 1209, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 543, 704, 279, - - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 800, 800, 279, 279, 279, 279, 279, 279, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, - 279, 279, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 677, 677, 698, 280, 280, 280, 280, - 280, 280, 522, 703, 808, 677, 522, 808, 519, 520, - 712, 703, 519, 520, 698, 523, 1078, 679, 679, 523, - 707, 712, 280, 280, 280, 280, 280, 280, 306, 679, - 522, 306, 306, 306, 306, 306, 519, 520, 306, 306, - - 522, 707, 306, 523, 519, 524, 525, 731, 754, 524, - 525, 520, 731, 754, 717, 523, 306, 306, 306, 308, - 1074, 308, 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 717, 524, 525, 308, 308, 308, 308, 308, - 308, 716, 812, 583, 590, 526, 622, 583, 590, 526, - 622, 806, 716, 524, 812, 525, 806, 718, 308, 803, - 803, 308, 308, 308, 308, 308, 308, 313, 718, 1052, - 313, 583, 590, 526, 622, 796, 313, 313, 932, 932, - 313, 313, 796, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 526, 622, 313, - - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 313, 313, 313, 313, 313, 313, 313, - 313, 313, 313, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 764, 782, 891, 314, 314, 314, - 314, 314, 314, 527, 891, 764, 782, 527, 532, 532, - 532, 532, 532, 532, 532, 532, 532, 532, 691, 715, - 821, 715, 691, 314, 314, 314, 314, 314, 314, 326, - 783, 527, 835, 326, 326, 326, 834, 326, 821, 326, - - 326, 783, 834, 326, 835, 532, 691, 527, 1046, 574, - 574, 574, 574, 574, 574, 574, 574, 326, 326, 326, - 536, 574, 536, 536, 536, 536, 536, 536, 562, 562, - 562, 562, 562, 562, 562, 562, 562, 562, 562, 715, - 809, 826, 1029, 809, 326, 336, 838, 336, 336, 336, - 336, 336, 336, 336, 336, 336, 336, 838, 826, 536, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, - 825, 839, 1028, 825, 336, 337, 839, 337, 337, 337, - 337, 337, 337, 337, 337, 337, 337, 576, 576, 576, - - 576, 576, 576, 576, 576, 576, 576, 577, 577, 577, - 577, 577, 577, 661, 661, 661, 661, 661, 661, 661, - 661, 661, 661, 1024, 337, 338, 848, 338, 338, 338, - 338, 338, 338, 338, 338, 338, 338, 579, 848, 579, - 579, 579, 579, 579, 579, 579, 579, 579, 579, 617, - 661, 617, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 824, 926, 824, 338, 339, 339, 339, 339, 339, - 339, 339, 339, 339, 339, 339, 969, 969, 1013, 339, - 339, 339, 339, 339, 339, 618, 862, 618, 618, 618, - 618, 618, 618, 618, 618, 618, 618, 801, 862, 845, - - 926, 1006, 339, 845, 801, 339, 339, 339, 339, 339, - 339, 342, 342, 342, 342, 342, 342, 342, 342, 342, - 342, 342, 824, 1005, 896, 342, 342, 342, 342, 342, - 342, 619, 827, 619, 619, 619, 619, 619, 619, 619, - 619, 619, 619, 628, 850, 896, 1003, 628, 850, 902, - 827, 342, 342, 342, 342, 342, 342, 344, 344, 344, - 344, 344, 344, 344, 344, 344, 344, 344, 344, 994, - 902, 628, 344, 344, 344, 344, 344, 344, 623, 628, - 632, 626, 623, 634, 632, 626, 672, 634, 672, 672, - 672, 672, 672, 672, 672, 672, 672, 672, 344, 344, - - 344, 344, 344, 344, 346, 852, 623, 346, 632, 626, - 852, 634, 623, 346, 346, 626, 632, 346, 346, 1048, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 634, 1048, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 346, 346, 346, 346, 346, 346, 346, 346, 346, 346, - 347, 347, 347, 347, 347, 347, 347, 347, 347, 347, - 347, 784, 784, 990, 347, 347, 347, 347, 347, 347, - - 627, 629, 847, 784, 627, 629, 864, 630, 847, 935, - 633, 630, 935, 631, 633, 696, 851, 631, 864, 696, - 347, 347, 347, 347, 347, 347, 371, 851, 627, 629, - 371, 371, 371, 853, 371, 630, 371, 371, 633, 876, - 371, 631, 627, 696, 893, 633, 877, 785, 785, 630, - 876, 853, 893, 989, 371, 371, 371, 877, 629, 785, - 665, 631, 665, 665, 665, 665, 665, 665, 673, 897, - 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, - 897, 371, 372, 787, 787, 889, 372, 372, 372, 372, - 372, 889, 372, 372, 1004, 787, 372, 1004, 674, 665, - - 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, - 372, 372, 372, 678, 678, 678, 678, 678, 678, 678, - 678, 678, 678, 682, 682, 682, 682, 682, 682, 682, - 682, 962, 894, 878, 878, 682, 700, 372, 390, 894, - 700, 892, 390, 390, 390, 878, 390, 892, 390, 390, - 934, 1018, 390, 684, 684, 684, 684, 684, 684, 684, - 684, 684, 684, 934, 700, 966, 390, 390, 390, 685, - 685, 685, 685, 685, 685, 687, 966, 687, 687, 687, - 687, 687, 687, 687, 687, 687, 687, 705, 706, 898, - 1018, 705, 706, 390, 391, 970, 970, 898, 391, 391, - - 391, 391, 391, 907, 391, 391, 949, 723, 391, 723, - 723, 723, 723, 723, 723, 705, 706, 993, 949, 993, - 907, 948, 391, 391, 391, 719, 719, 719, 719, 719, - 719, 719, 719, 719, 719, 721, 950, 721, 721, 721, - 721, 721, 721, 721, 721, 721, 721, 944, 950, 391, - 397, 397, 397, 397, 397, 397, 397, 397, 397, 397, - 397, 1015, 1015, 1224, 397, 397, 397, 397, 397, 397, - 722, 952, 722, 722, 722, 722, 722, 722, 722, 722, - 722, 722, 993, 952, 1224, 724, 879, 879, 967, 724, - 397, 397, 397, 397, 397, 397, 399, 1186, 879, 967, - - 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 724, 1186, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, 1047, 1047, - 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, - 399, 399, 399, 399, 399, 399, 399, 399, 400, 400, - 400, 400, 400, 400, 400, 400, 400, 400, 400, 1063, - 939, 1063, 400, 400, 400, 400, 400, 400, 771, 771, - 771, 771, 771, 771, 771, 771, 771, 771, 725, 728, - 729, 730, 725, 728, 729, 730, 977, 936, 400, 400, - - 400, 400, 400, 400, 419, 977, 419, 419, 419, 419, - 419, 419, 419, 419, 419, 419, 725, 728, 729, 730, - 974, 931, 992, 992, 725, 992, 992, 1022, 732, 733, - 734, 974, 732, 733, 734, 729, 735, 736, 730, 1014, - 735, 736, 1014, 419, 420, 921, 420, 420, 420, 420, - 420, 420, 420, 420, 420, 420, 732, 733, 734, 881, - 881, 979, 920, 983, 735, 736, 1022, 917, 747, 979, - 983, 881, 747, 746, 734, 746, 746, 746, 746, 746, - 746, 733, 1016, 420, 421, 1016, 421, 421, 421, 421, - 421, 421, 421, 421, 421, 421, 747, 1092, 1092, 742, - - 742, 742, 742, 742, 742, 742, 742, 742, 742, 751, - 755, 758, 746, 751, 755, 758, 916, 1056, 759, 1189, - 911, 1189, 759, 421, 422, 1056, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 742, 751, 755, 758, - 422, 422, 422, 422, 422, 422, 759, 773, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 774, 774, 774, - 774, 774, 774, 1158, 909, 905, 422, 422, 422, 422, - 422, 422, 424, 424, 424, 424, 424, 424, 424, 424, - 424, 424, 975, 1158, 904, 903, 424, 424, 424, 424, - 424, 424, 776, 975, 776, 776, 776, 776, 776, 776, - - 776, 776, 776, 776, 781, 1084, 781, 781, 781, 781, - 781, 781, 424, 424, 424, 424, 424, 424, 440, 968, - 968, 901, 440, 440, 440, 1192, 440, 1192, 440, 440, - 860, 968, 440, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 859, 1084, 846, 440, 440, 440, 779, - 1030, 779, 779, 779, 779, 779, 779, 779, 779, 779, - 779, 780, 1030, 780, 780, 780, 780, 780, 780, 780, - 780, 780, 780, 440, 441, 982, 984, 1365, 441, 441, - 441, 441, 441, 1365, 441, 441, 982, 984, 441, 786, - 786, 786, 786, 786, 786, 786, 786, 786, 786, 840, - - 837, 1031, 441, 441, 441, 790, 790, 790, 790, 790, - 790, 790, 790, 1031, 836, 833, 1033, 790, 792, 792, - 792, 792, 792, 792, 792, 792, 792, 792, 1033, 441, - 449, 832, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 793, 793, 793, 793, 793, 793, 795, 823, - 795, 795, 795, 795, 795, 795, 795, 795, 795, 795, - 798, 804, 810, 816, 798, 804, 810, 816, 1088, 449, - 450, 991, 450, 450, 450, 450, 450, 450, 450, 450, - 450, 450, 870, 870, 870, 870, 870, 870, 798, 804, - 810, 816, 822, 820, 991, 818, 991, 991, 1049, 818, - - 887, 887, 887, 887, 887, 887, 815, 1088, 1049, 450, - 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, - 461, 461, 461, 818, 814, 778, 461, 461, 461, 461, - 461, 461, 828, 828, 828, 828, 828, 828, 828, 828, - 828, 828, 828, 918, 1058, 906, 906, 918, 906, 906, - 770, 1058, 461, 461, 461, 461, 461, 461, 464, 464, - 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, - 908, 918, 769, 464, 464, 464, 464, 464, 464, 829, - 829, 829, 829, 829, 829, 829, 829, 829, 829, 829, - 768, 763, 918, 908, 762, 908, 908, 1141, 1045, 464, - - 464, 464, 464, 464, 464, 467, 906, 980, 467, 1045, - 761, 980, 760, 757, 467, 467, 756, 753, 467, 467, - 908, 467, 467, 467, 467, 467, 467, 467, 467, 467, - 467, 467, 467, 467, 467, 980, 1141, 467, 467, 467, - 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, - 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, - 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, - 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, - 467, 512, 512, 512, 512, 512, 512, 512, 512, 512, - 512, 512, 1260, 1260, 1260, 512, 512, 512, 512, 512, - - 512, 830, 830, 830, 830, 830, 830, 830, 830, 830, - 830, 830, 914, 914, 914, 914, 914, 914, 914, 752, - 1057, 512, 512, 512, 512, 512, 512, 513, 1057, 750, - 1172, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 749, 748, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 1172, - 741, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 514, - 1200, 1217, 1101, 514, 854, 854, 854, 854, 854, 854, - - 854, 854, 854, 854, 1101, 727, 1102, 514, 514, 514, - 514, 514, 514, 514, 514, 514, 514, 514, 1102, 1123, - 726, 514, 514, 514, 514, 514, 514, 1123, 720, 1200, - 1217, 854, 858, 858, 858, 858, 858, 858, 858, 958, - 958, 958, 958, 958, 958, 714, 713, 514, 514, 514, - 514, 514, 514, 534, 711, 534, 534, 534, 534, 534, - 534, 534, 534, 534, 534, 1061, 1061, 710, 1061, 1061, - 858, 861, 861, 861, 861, 861, 861, 861, 861, 861, - 861, 863, 863, 863, 863, 863, 863, 863, 863, 863, - 863, 709, 534, 535, 1104, 535, 535, 535, 535, 535, - - 535, 535, 535, 535, 535, 867, 1104, 867, 867, 867, - 867, 867, 867, 1292, 1292, 1292, 1118, 867, 869, 869, - 869, 869, 869, 869, 869, 869, 869, 869, 1118, 708, - 985, 690, 535, 557, 985, 557, 557, 557, 557, 557, - 557, 557, 557, 557, 557, 872, 669, 872, 872, 872, - 872, 872, 872, 872, 872, 872, 872, 873, 985, 873, - 873, 873, 873, 873, 873, 873, 873, 873, 873, 668, - 987, 667, 557, 558, 987, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 874, 666, 874, 874, 874, - 874, 874, 874, 874, 874, 874, 874, 875, 987, 875, - - 875, 875, 875, 875, 875, 875, 875, 875, 875, 655, - 654, 653, 558, 559, 652, 559, 559, 559, 559, 559, - 559, 559, 559, 559, 559, 880, 880, 880, 880, 880, - 880, 880, 880, 880, 880, 884, 884, 884, 884, 884, - 884, 884, 884, 651, 1064, 650, 1064, 884, 1157, 1157, - 1157, 1157, 559, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 649, 648, 647, 572, - 572, 572, 572, 572, 572, 886, 886, 886, 886, 886, - 886, 886, 886, 886, 886, 910, 910, 910, 910, 910, - 910, 910, 910, 910, 910, 572, 572, 572, 572, 572, - - 572, 575, 575, 575, 575, 575, 575, 575, 575, 575, - 575, 575, 575, 575, 1064, 646, 645, 575, 575, 575, - 575, 575, 575, 888, 644, 888, 888, 888, 888, 888, - 888, 888, 888, 888, 888, 929, 929, 929, 929, 929, - 929, 929, 643, 575, 575, 575, 575, 575, 575, 578, - 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, - 578, 639, 638, 637, 578, 578, 578, 578, 578, 578, - 636, 635, 965, 929, 965, 965, 965, 965, 965, 965, - 895, 625, 1125, 1125, 895, 1125, 1125, 624, 621, 620, - 578, 578, 578, 578, 578, 578, 640, 612, 640, 640, - - 640, 640, 640, 640, 640, 640, 640, 640, 895, 912, - 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, - 899, 611, 610, 945, 899, 945, 945, 945, 945, 945, - 945, 945, 945, 945, 945, 640, 641, 895, 641, 641, - 641, 641, 641, 641, 641, 641, 641, 641, 899, 913, - 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, - 900, 922, 923, 602, 900, 922, 923, 973, 973, 973, - 973, 973, 973, 973, 973, 641, 642, 899, 642, 642, - 642, 642, 642, 642, 642, 642, 642, 642, 900, 922, - 923, 925, 925, 925, 925, 925, 925, 925, 925, 925, - - 925, 933, 937, 938, 566, 933, 937, 938, 1253, 1253, - 922, 923, 565, 564, 1253, 642, 663, 900, 663, 663, - 663, 663, 663, 663, 663, 663, 663, 663, 925, 933, - 937, 938, 946, 563, 946, 946, 946, 946, 946, 946, - 946, 946, 946, 946, 1039, 1039, 1039, 1039, 1039, 1039, - 933, 937, 938, 561, 560, 663, 664, 1152, 664, 664, - 664, 664, 664, 664, 664, 664, 664, 664, 947, 1152, - 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, - 951, 951, 951, 951, 951, 951, 951, 951, 951, 951, - 1164, 1164, 552, 1164, 1164, 664, 670, 670, 670, 670, - - 670, 670, 670, 670, 670, 670, 670, 551, 550, 549, - 670, 670, 670, 670, 670, 670, 955, 548, 955, 955, - 955, 955, 955, 955, 1281, 1281, 547, 1002, 955, 1050, - 1281, 1002, 546, 1050, 545, 544, 670, 670, 670, 670, - 670, 670, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 1002, 541, 1050, 680, 680, - 680, 680, 680, 680, 957, 957, 957, 957, 957, 957, - 957, 957, 957, 957, 961, 961, 961, 961, 961, 961, - 961, 961, 961, 961, 680, 680, 680, 680, 680, 680, - 683, 683, 683, 683, 683, 683, 683, 683, 683, 683, - - 683, 683, 683, 540, 538, 531, 683, 683, 683, 683, - 683, 683, 960, 530, 960, 960, 960, 960, 960, 960, - 960, 960, 960, 960, 1001, 529, 1190, 1190, 1001, 1190, - 1190, 508, 683, 683, 683, 683, 683, 683, 686, 686, - 686, 686, 686, 686, 686, 686, 686, 686, 686, 686, - 500, 499, 1001, 686, 686, 686, 686, 686, 686, 963, - 498, 963, 963, 963, 963, 963, 963, 963, 963, 963, - 963, 1282, 1282, 1001, 497, 496, 495, 1282, 490, 686, - 686, 686, 686, 686, 686, 744, 487, 744, 744, 744, - 744, 744, 744, 744, 744, 744, 744, 964, 458, 964, - - 964, 964, 964, 964, 964, 964, 964, 964, 964, 457, - 1053, 1079, 1011, 454, 1053, 1079, 1011, 1119, 453, 976, - 439, 1119, 978, 976, 744, 745, 978, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 995, 1053, 1079, - 1011, 995, 995, 995, 995, 1119, 438, 976, 437, 997, - 978, 997, 997, 997, 997, 997, 997, 997, 997, 997, - 997, 1011, 436, 435, 745, 765, 765, 765, 765, 765, - 765, 765, 765, 765, 765, 765, 976, 996, 434, 978, - 433, 996, 996, 996, 996, 1110, 1110, 1110, 1110, 1110, - 1110, 998, 995, 998, 998, 998, 998, 998, 998, 998, - - 998, 998, 998, 765, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 999, 432, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 1012, 1310, 1310, - 431, 1012, 996, 1021, 1310, 1021, 1021, 1021, 1021, 1021, - 1021, 430, 766, 767, 767, 767, 767, 767, 767, 767, - 767, 767, 767, 767, 1000, 1012, 1000, 1000, 1000, 1000, - 1000, 1000, 1000, 1000, 1000, 1000, 429, 1132, 428, 1159, - 427, 1132, 1021, 1159, 1299, 1323, 1012, 1299, 1323, 1299, - 1323, 767, 772, 426, 772, 772, 772, 772, 772, 772, - 772, 772, 772, 772, 772, 1132, 423, 1159, 772, 772, - - 772, 772, 772, 772, 1017, 1017, 1017, 1017, 1017, 1017, - 1017, 1017, 1017, 1017, 1023, 1023, 1023, 1023, 1023, 1023, - 1023, 1023, 1023, 1023, 772, 772, 772, 772, 772, 772, - 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, - 775, 1017, 417, 414, 775, 775, 775, 775, 775, 775, - 1025, 413, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, - 1025, 1025, 1027, 412, 1027, 1027, 1027, 1027, 1027, 1027, - 775, 775, 775, 775, 775, 775, 788, 788, 788, 788, - 788, 788, 788, 788, 788, 788, 788, 788, 788, 411, - 410, 409, 788, 788, 788, 788, 788, 788, 1026, 408, - - 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, - 1077, 407, 1077, 1077, 1077, 1077, 1077, 1077, 788, 788, - 788, 788, 788, 788, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 406, 405, 404, - 791, 791, 791, 791, 791, 791, 1032, 1032, 1032, 1032, - 1032, 1032, 1032, 1032, 1032, 1032, 1038, 1038, 1038, 1038, - 1038, 1038, 1038, 1038, 1038, 1038, 791, 791, 791, 791, - 791, 791, 794, 794, 794, 794, 794, 794, 794, 794, - 794, 794, 794, 403, 402, 401, 398, 794, 794, 794, - 794, 794, 794, 1036, 383, 1036, 1036, 1036, 1036, 1036, - - 1036, 379, 378, 377, 376, 1036, 1115, 1115, 1115, 1115, - 1115, 1115, 1115, 794, 794, 794, 794, 794, 794, 797, - 1070, 1339, 797, 1070, 1339, 370, 1339, 369, 797, 797, - 1070, 1070, 797, 797, 1070, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 797, 1070, 1070, - 1070, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, - 797, 797, 797, 797, 797, 831, 368, 367, 366, 831, - - 831, 831, 831, 831, 831, 831, 831, 831, 831, 831, - 365, 831, 363, 362, 831, 831, 831, 831, 831, 831, - 831, 831, 831, 831, 831, 831, 831, 831, 831, 831, - 831, 831, 831, 831, 831, 831, 831, 361, 360, 831, - 831, 831, 831, 831, 831, 831, 831, 831, 831, 831, - 831, 831, 831, 831, 831, 831, 831, 841, 841, 841, - 841, 841, 841, 841, 841, 841, 841, 841, 1041, 359, - 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, 1041, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 358, 357, 356, 355, 841, 842, 842, 842, 842, - - 842, 842, 842, 842, 842, 842, 842, 1043, 1043, 1043, - 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1044, 1044, - 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1055, - 354, 353, 352, 1055, 842, 843, 843, 843, 843, 843, - 843, 843, 843, 843, 843, 843, 351, 1121, 1065, 349, - 348, 1121, 1065, 1065, 1065, 1065, 1069, 1055, 341, 1069, - 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 340, - 1316, 1316, 327, 843, 844, 1121, 1316, 844, 323, 1317, - 1317, 322, 320, 844, 844, 1317, 1055, 844, 844, 319, - 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, - - 844, 844, 844, 1065, 1121, 318, 844, 844, 844, 844, - 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, - 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, - 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, - 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, + 618, 503, 1162, 114, 114, 114, 114, 114, 114, 281, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 315, + 315, 315, 315, 315, 315, 315, 315, 315, 315, 114, + + 114, 114, 114, 114, 114, 115, 498, 503, 544, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 1158, 498, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 544, 1151, 115, + 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 115, 115, 115, 115, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 492, 495, + 515, 119, 119, 119, 119, 119, 119, 492, 292, 292, + 1145, 119, 292, 501, 292, 292, 501, 502, 292, 495, + + 292, 317, 317, 317, 317, 317, 317, 119, 119, 119, + 119, 119, 119, 139, 567, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 502, 515, 501, 139, + 139, 139, 139, 139, 139, 479, 514, 483, 606, 479, + 304, 304, 304, 304, 304, 513, 606, 304, 304, 483, + 567, 304, 139, 514, 483, 139, 139, 139, 139, 139, + 139, 142, 516, 479, 142, 304, 304, 304, 527, 516, + 142, 142, 513, 527, 142, 142, 714, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 513, 714, 142, 142, 142, 142, 142, 142, 142, + + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 146, 146, 146, + 146, 146, 146, 146, 146, 146, 146, 146, 548, 605, + 592, 146, 146, 146, 146, 146, 146, 565, 326, 326, + 565, 146, 326, 605, 326, 326, 309, 309, 326, 592, + 326, 309, 309, 380, 380, 548, 380, 146, 146, 146, + 146, 146, 146, 153, 153, 579, 153, 153, 153, 153, + 153, 309, 565, 153, 153, 1129, 579, 153, 312, 312, + + 312, 312, 312, 312, 312, 312, 312, 312, 380, 566, + 553, 153, 153, 153, 154, 553, 309, 484, 154, 154, + 154, 484, 154, 1128, 154, 154, 593, 568, 154, 306, + 306, 306, 306, 306, 568, 312, 306, 306, 566, 608, + 306, 593, 154, 154, 154, 484, 598, 330, 330, 607, + 330, 330, 598, 608, 306, 306, 306, 511, 594, 511, + 308, 308, 308, 308, 308, 599, 604, 308, 308, 154, + 176, 308, 604, 176, 176, 176, 176, 176, 607, 594, + 176, 176, 1124, 599, 176, 308, 308, 308, 316, 316, + 316, 316, 316, 316, 316, 316, 316, 316, 176, 176, + + 176, 178, 330, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 1112, 597, 620, 178, 178, 178, + 178, 178, 178, 511, 333, 451, 451, 333, 451, 581, + 581, 333, 333, 472, 472, 472, 472, 472, 472, 597, + 178, 581, 601, 178, 178, 178, 178, 178, 178, 187, + 613, 620, 187, 610, 812, 812, 713, 613, 187, 187, + 451, 610, 187, 187, 601, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 333, + 713, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 187, 187, 188, 188, 188, 188, 188, + 188, 188, 188, 188, 188, 188, 815, 815, 1111, 188, + 188, 188, 188, 188, 188, 340, 340, 340, 340, 340, + 340, 340, 340, 340, 340, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 188, 188, 188, 188, 188, + 188, 210, 619, 615, 528, 210, 210, 210, 528, 210, + 394, 210, 210, 609, 394, 210, 460, 394, 460, 460, + 460, 460, 460, 460, 394, 612, 615, 944, 944, 210, + + 210, 210, 528, 609, 612, 619, 616, 525, 394, 394, + 401, 525, 401, 401, 401, 401, 401, 401, 401, 401, + 401, 401, 1103, 621, 626, 460, 210, 235, 616, 621, + 235, 235, 235, 235, 235, 525, 626, 235, 235, 611, + 402, 235, 402, 402, 402, 402, 402, 402, 402, 402, + 402, 402, 525, 628, 669, 235, 235, 235, 237, 628, + 611, 526, 237, 237, 237, 526, 237, 1102, 237, 237, + 707, 403, 237, 403, 403, 403, 403, 403, 403, 403, + 403, 403, 403, 583, 583, 669, 237, 237, 237, 526, + 426, 707, 668, 670, 426, 583, 521, 426, 521, 521, + + 521, 521, 521, 521, 426, 625, 672, 625, 526, 627, + 671, 683, 672, 237, 272, 981, 981, 272, 426, 426, + 704, 627, 683, 272, 272, 668, 670, 272, 704, 674, + 272, 272, 456, 456, 456, 456, 456, 456, 456, 456, + 456, 456, 982, 982, 272, 671, 272, 464, 464, 464, + 464, 464, 464, 464, 464, 464, 464, 464, 471, 471, + 471, 471, 471, 471, 471, 471, 471, 471, 674, 456, + 272, 272, 272, 275, 706, 700, 275, 687, 625, 275, + 275, 700, 275, 275, 275, 275, 275, 1094, 687, 275, + 275, 474, 706, 474, 474, 474, 474, 474, 474, 474, + + 474, 474, 474, 275, 275, 275, 517, 517, 517, 517, + 517, 517, 517, 517, 517, 517, 519, 1060, 519, 519, + 519, 519, 519, 519, 519, 519, 519, 519, 701, 275, + 275, 275, 278, 1060, 278, 278, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 701, 719, 705, 278, 278, + 278, 278, 278, 278, 520, 709, 520, 520, 520, 520, + 520, 520, 520, 520, 520, 520, 705, 719, 1093, 550, + 688, 688, 709, 550, 278, 278, 278, 278, 278, 278, + 283, 716, 688, 755, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 550, 716, 283, + + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 755, 1092, 283, 283, 283, 283, 283, 283, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 283, 283, 284, 284, 284, 284, 284, 284, 284, 284, + 284, 284, 284, 689, 689, 710, 284, 284, 284, 284, + 284, 284, 532, 715, 711, 689, 532, 814, 529, 530, + 814, 715, 529, 530, 710, 533, 711, 691, 691, 533, + 1090, 711, 284, 284, 284, 284, 284, 284, 311, 691, + 532, 311, 311, 311, 311, 311, 529, 530, 311, 311, + + 532, 724, 311, 533, 529, 531, 535, 931, 743, 531, + 535, 530, 724, 743, 729, 533, 311, 311, 311, 313, + 931, 313, 313, 313, 313, 313, 313, 313, 313, 313, + 313, 313, 729, 531, 535, 313, 313, 313, 313, 313, + 313, 728, 730, 554, 595, 536, 602, 554, 595, 536, + 602, 766, 728, 730, 531, 535, 766, 776, 313, 1030, + 833, 313, 313, 313, 313, 313, 313, 318, 776, 1061, + 318, 554, 595, 536, 602, 808, 318, 318, 833, 1061, + 318, 318, 808, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 536, 1030, 318, + + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 318, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 727, 794, 727, 319, 319, 319, + 319, 319, 319, 534, 537, 1086, 794, 534, 537, 543, + 543, 543, 543, 543, 543, 543, 543, 543, 543, 795, + 836, 1221, 836, 319, 319, 319, 319, 319, 319, 331, + 795, 534, 537, 331, 331, 331, 1221, 331, 813, 331, + + 331, 796, 796, 331, 820, 813, 543, 820, 537, 797, + 797, 534, 635, 796, 727, 1064, 635, 331, 331, 331, + 547, 797, 547, 547, 547, 547, 547, 547, 574, 574, + 574, 574, 574, 574, 574, 574, 574, 574, 574, 821, + 635, 836, 821, 1034, 331, 342, 635, 342, 342, 342, + 342, 342, 342, 342, 342, 342, 342, 1027, 1027, 547, + 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 582, + 837, 818, 1034, 837, 342, 343, 818, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 586, 586, 586, + + 586, 586, 586, 586, 586, 861, 838, 861, 824, 586, + 588, 588, 588, 588, 588, 588, 588, 588, 588, 588, + 824, 1058, 825, 838, 343, 344, 825, 344, 344, 344, + 344, 344, 344, 344, 344, 344, 344, 589, 589, 589, + 589, 589, 589, 591, 847, 591, 591, 591, 591, 591, + 591, 591, 591, 591, 591, 846, 847, 859, 639, 839, + 865, 846, 639, 859, 344, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 1041, 839, 865, 345, + 345, 345, 345, 345, 345, 629, 639, 629, 629, 629, + 629, 629, 629, 629, 629, 629, 629, 857, 851, 864, + + 639, 857, 345, 851, 864, 345, 345, 345, 345, 345, + 345, 348, 348, 348, 348, 348, 348, 348, 348, 348, + 348, 348, 1059, 1059, 1040, 348, 348, 348, 348, 348, + 348, 630, 860, 630, 630, 630, 630, 630, 630, 630, + 630, 630, 630, 634, 860, 862, 1036, 634, 908, 862, + 1025, 348, 348, 348, 348, 348, 348, 350, 350, 350, + 350, 350, 350, 350, 350, 350, 350, 350, 350, 908, + 914, 634, 350, 350, 350, 350, 350, 350, 631, 850, + 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, + 850, 914, 1170, 799, 799, 634, 1096, 863, 350, 350, + + 350, 350, 350, 350, 352, 799, 703, 352, 863, 901, + 703, 903, 1170, 352, 352, 901, 1018, 352, 352, 903, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 703, 1096, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 352, 352, 352, 352, 352, 352, 352, 352, 352, 352, + 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, + 353, 874, 1104, 1104, 353, 353, 353, 353, 353, 353, + + 641, 638, 906, 874, 641, 638, 876, 1017, 888, 906, + 640, 642, 867, 643, 640, 642, 889, 643, 876, 888, + 353, 353, 353, 353, 353, 353, 377, 889, 641, 638, + 377, 377, 377, 989, 377, 638, 377, 377, 640, 642, + 377, 643, 989, 644, 646, 645, 640, 644, 646, 645, + 867, 1015, 905, 642, 377, 377, 377, 641, 890, 890, + 905, 643, 694, 694, 694, 694, 694, 694, 694, 694, + 890, 644, 646, 645, 694, 938, 910, 904, 995, 644, + 645, 377, 378, 904, 910, 995, 378, 378, 378, 378, + 378, 919, 378, 378, 946, 646, 378, 673, 673, 673, + + 673, 673, 673, 673, 673, 673, 673, 946, 919, 1006, + 378, 378, 378, 938, 677, 991, 677, 677, 677, 677, + 677, 677, 684, 991, 684, 684, 684, 684, 684, 684, + 684, 684, 684, 684, 673, 891, 891, 378, 397, 893, + 893, 1002, 397, 397, 397, 1001, 397, 891, 397, 397, + 974, 893, 397, 677, 685, 960, 685, 685, 685, 685, + 685, 685, 685, 685, 685, 685, 397, 397, 397, 686, + 956, 686, 686, 686, 686, 686, 686, 686, 686, 686, + 686, 690, 690, 690, 690, 690, 690, 690, 690, 690, + 690, 708, 712, 397, 398, 708, 712, 951, 398, 398, + + 398, 398, 398, 947, 398, 398, 947, 1100, 398, 696, + 696, 696, 696, 696, 696, 696, 696, 696, 696, 708, + 712, 909, 398, 398, 398, 697, 697, 697, 697, 697, + 697, 699, 909, 699, 699, 699, 699, 699, 699, 699, + 699, 699, 699, 717, 718, 1153, 1100, 717, 718, 398, + 404, 404, 404, 404, 404, 404, 404, 404, 404, 404, + 404, 1072, 1068, 1072, 404, 404, 404, 404, 404, 404, + 1068, 717, 718, 731, 731, 731, 731, 731, 731, 731, + 731, 731, 731, 948, 1153, 736, 961, 962, 943, 736, + 404, 404, 404, 404, 404, 404, 406, 1198, 961, 962, + + 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 736, 1198, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 406, 406, 933, 932, + 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, + 406, 406, 406, 406, 406, 406, 406, 406, 407, 407, + 407, 407, 407, 407, 407, 407, 407, 407, 407, 1075, + 929, 1075, 407, 407, 407, 407, 407, 407, 733, 964, + 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, + 735, 964, 735, 735, 735, 735, 735, 735, 407, 407, + + 407, 407, 407, 407, 427, 1042, 427, 427, 427, 427, + 427, 427, 427, 427, 427, 427, 734, 1042, 734, 734, + 734, 734, 734, 734, 734, 734, 734, 734, 737, 740, + 741, 742, 737, 740, 741, 742, 1016, 744, 746, 1016, + 928, 744, 746, 427, 428, 923, 428, 428, 428, 428, + 428, 428, 428, 428, 428, 428, 737, 740, 741, 742, + 978, 1201, 921, 1201, 737, 744, 746, 917, 745, 747, + 748, 978, 745, 747, 748, 741, 918, 918, 742, 918, + 918, 916, 746, 428, 429, 915, 429, 429, 429, 429, + 429, 429, 429, 429, 429, 429, 745, 747, 748, 754, + + 754, 754, 754, 754, 754, 754, 754, 754, 754, 758, + 1070, 758, 758, 758, 758, 758, 758, 1070, 759, 913, + 745, 763, 759, 429, 430, 763, 430, 430, 430, 430, + 430, 430, 430, 430, 430, 430, 754, 918, 872, 979, + 430, 430, 430, 430, 430, 430, 759, 871, 758, 763, + 979, 980, 980, 986, 767, 770, 771, 810, 767, 770, + 771, 810, 1026, 980, 986, 1026, 430, 430, 430, 430, + 430, 430, 432, 432, 432, 432, 432, 432, 432, 432, + 432, 432, 767, 770, 771, 810, 432, 432, 432, 432, + 432, 432, 783, 783, 783, 783, 783, 783, 783, 783, + + 783, 783, 785, 785, 785, 785, 785, 785, 785, 785, + 785, 785, 432, 432, 432, 432, 432, 432, 448, 987, + 994, 858, 448, 448, 448, 1204, 448, 1204, 448, 448, + 987, 994, 448, 786, 786, 786, 786, 786, 786, 805, + 805, 805, 805, 805, 805, 852, 448, 448, 448, 788, + 849, 788, 788, 788, 788, 788, 788, 788, 788, 788, + 788, 789, 789, 789, 789, 789, 789, 789, 789, 789, + 789, 816, 822, 448, 449, 816, 822, 848, 449, 449, + 449, 449, 449, 1028, 449, 449, 1028, 791, 449, 791, + 791, 791, 791, 791, 791, 791, 791, 791, 791, 816, + + 822, 845, 449, 449, 449, 792, 1043, 792, 792, 792, + 792, 792, 792, 792, 792, 792, 792, 793, 1043, 793, + 793, 793, 793, 793, 793, 1169, 1169, 1169, 1169, 449, + 458, 844, 458, 458, 458, 458, 458, 458, 458, 458, + 458, 458, 798, 798, 798, 798, 798, 798, 798, 798, + 798, 798, 802, 802, 802, 802, 802, 802, 802, 802, + 996, 835, 1004, 1004, 802, 1004, 1004, 1184, 1212, 458, + 459, 996, 459, 459, 459, 459, 459, 459, 459, 459, + 459, 459, 804, 804, 804, 804, 804, 804, 804, 804, + 804, 804, 807, 1045, 807, 807, 807, 807, 807, 807, + + 807, 807, 807, 807, 828, 1045, 1184, 1212, 828, 459, + 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, + 470, 470, 470, 834, 1003, 832, 470, 470, 470, 470, + 470, 470, 828, 870, 870, 870, 870, 870, 870, 870, + 1057, 1005, 830, 1005, 992, 827, 830, 1003, 992, 1003, + 1003, 1057, 470, 470, 470, 470, 470, 470, 473, 473, + 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, + 830, 870, 992, 473, 473, 473, 473, 473, 473, 840, + 840, 840, 840, 840, 840, 840, 840, 840, 840, 840, + 882, 882, 882, 882, 882, 882, 826, 1229, 1113, 473, + + 473, 473, 473, 473, 473, 476, 1005, 997, 476, 1069, + 1113, 997, 1135, 790, 476, 476, 782, 1069, 476, 476, + 1135, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 997, 1229, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, + 476, 522, 522, 522, 522, 522, 522, 522, 522, 522, + 522, 522, 1272, 1272, 1272, 522, 522, 522, 522, 522, + + 522, 841, 841, 841, 841, 841, 841, 841, 841, 841, + 841, 841, 899, 899, 899, 899, 899, 899, 1114, 781, + 780, 522, 522, 522, 522, 522, 522, 523, 775, 774, + 1114, 523, 523, 523, 523, 523, 523, 523, 523, 523, + 523, 523, 523, 523, 773, 772, 523, 523, 523, 523, + 523, 523, 523, 523, 523, 523, 523, 523, 523, 523, + 523, 523, 523, 523, 523, 523, 523, 523, 523, 1236, + 769, 523, 523, 523, 523, 523, 523, 523, 523, 523, + 523, 523, 523, 523, 523, 523, 523, 523, 523, 524, + 1236, 768, 765, 524, 842, 842, 842, 842, 842, 842, + + 842, 842, 842, 842, 842, 764, 1116, 524, 524, 524, + 524, 524, 524, 524, 524, 524, 524, 524, 1116, 762, + 761, 524, 524, 524, 524, 524, 524, 760, 866, 866, + 866, 866, 866, 866, 866, 866, 866, 866, 926, 926, + 926, 926, 926, 926, 926, 753, 739, 524, 524, 524, + 524, 524, 524, 545, 738, 545, 545, 545, 545, 545, + 545, 545, 545, 545, 545, 866, 873, 873, 873, 873, + 873, 873, 873, 873, 873, 873, 875, 875, 875, 875, + 875, 875, 875, 875, 875, 875, 970, 970, 970, 970, + 970, 970, 545, 546, 1130, 546, 546, 546, 546, 546, + + 546, 546, 546, 546, 546, 879, 1130, 879, 879, 879, + 879, 879, 879, 1304, 1304, 1304, 1164, 879, 881, 881, + 881, 881, 881, 881, 881, 881, 881, 881, 1164, 732, + 999, 726, 546, 569, 999, 569, 569, 569, 569, 569, + 569, 569, 569, 569, 569, 884, 725, 884, 884, 884, + 884, 884, 884, 884, 884, 884, 884, 885, 999, 885, + 885, 885, 885, 885, 885, 885, 885, 885, 885, 723, + 1014, 722, 569, 570, 1014, 570, 570, 570, 570, 570, + 570, 570, 570, 570, 570, 886, 721, 886, 886, 886, + 886, 886, 886, 886, 886, 886, 886, 887, 1014, 887, + + 887, 887, 887, 887, 887, 887, 887, 887, 887, 720, + 702, 681, 570, 571, 680, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 571, 892, 892, 892, 892, 892, + 892, 892, 892, 892, 892, 896, 896, 896, 896, 896, + 896, 896, 896, 1371, 1371, 1073, 1073, 896, 1073, 1073, + 1371, 679, 571, 584, 584, 584, 584, 584, 584, 584, + 584, 584, 584, 584, 584, 584, 920, 678, 667, 584, + 584, 584, 584, 584, 584, 898, 898, 898, 898, 898, + 898, 898, 898, 898, 898, 666, 930, 1265, 1265, 920, + 930, 920, 920, 1265, 665, 584, 584, 584, 584, 584, + + 584, 587, 587, 587, 587, 587, 587, 587, 587, 587, + 587, 587, 587, 587, 930, 664, 920, 587, 587, 587, + 587, 587, 587, 900, 663, 900, 900, 900, 900, 900, + 900, 900, 900, 900, 900, 930, 1051, 1051, 1051, 1051, + 1051, 1051, 662, 587, 587, 587, 587, 587, 587, 590, + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 661, 660, 659, 590, 590, 590, 590, 590, 590, + 922, 922, 922, 922, 922, 922, 922, 922, 922, 922, + 907, 1377, 1137, 1137, 907, 1137, 1137, 1377, 658, 657, + 590, 590, 590, 590, 590, 590, 652, 656, 652, 652, + + 652, 652, 652, 652, 652, 652, 652, 652, 907, 924, + 924, 924, 924, 924, 924, 924, 924, 924, 924, 924, + 911, 655, 651, 650, 911, 941, 941, 941, 941, 941, + 941, 941, 649, 648, 647, 652, 653, 907, 653, 653, + 653, 653, 653, 653, 653, 653, 653, 653, 911, 925, + 925, 925, 925, 925, 925, 925, 925, 925, 925, 925, + 912, 934, 935, 941, 912, 934, 935, 977, 637, 977, + 977, 977, 977, 977, 977, 653, 654, 911, 654, 654, + 654, 654, 654, 654, 654, 654, 654, 654, 912, 934, + 935, 937, 937, 937, 937, 937, 937, 937, 937, 937, + + 937, 945, 949, 950, 636, 945, 949, 950, 1293, 1293, + 934, 935, 633, 632, 1293, 654, 675, 912, 675, 675, + 675, 675, 675, 675, 675, 675, 675, 675, 937, 945, + 949, 950, 957, 624, 957, 957, 957, 957, 957, 957, + 957, 957, 957, 957, 1122, 1122, 1122, 1122, 1122, 1122, + 945, 949, 950, 1062, 623, 675, 676, 1062, 676, 676, + 676, 676, 676, 676, 676, 676, 676, 676, 958, 622, + 958, 958, 958, 958, 958, 958, 958, 958, 958, 958, + 959, 1062, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 614, 578, 577, 676, 682, 682, 682, 682, + + 682, 682, 682, 682, 682, 682, 682, 576, 575, 573, + 682, 682, 682, 682, 682, 682, 963, 963, 963, 963, + 963, 963, 963, 963, 963, 963, 969, 969, 969, 969, + 969, 969, 969, 969, 969, 969, 682, 682, 682, 682, + 682, 682, 692, 692, 692, 692, 692, 692, 692, 692, + 692, 692, 692, 692, 692, 572, 564, 563, 692, 692, + 692, 692, 692, 692, 967, 562, 967, 967, 967, 967, + 967, 967, 561, 560, 559, 1039, 967, 1039, 1039, 1039, + 1039, 1039, 1039, 558, 692, 692, 692, 692, 692, 692, + 695, 695, 695, 695, 695, 695, 695, 695, 695, 695, + + 695, 695, 695, 557, 556, 555, 695, 695, 695, 695, + 695, 695, 972, 552, 972, 972, 972, 972, 972, 972, + 972, 972, 972, 972, 985, 985, 985, 985, 985, 985, + 985, 985, 695, 695, 695, 695, 695, 695, 698, 698, + 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, + 551, 549, 542, 698, 698, 698, 698, 698, 698, 973, + 973, 973, 973, 973, 973, 973, 973, 973, 973, 541, + 1076, 1033, 1076, 1033, 1033, 1033, 1033, 1033, 1033, 698, + 698, 698, 698, 698, 698, 756, 540, 756, 756, 756, + 756, 756, 756, 756, 756, 756, 756, 975, 518, 975, + + 975, 975, 975, 975, 975, 975, 975, 975, 975, 976, + 1033, 976, 976, 976, 976, 976, 976, 976, 976, 976, + 976, 510, 988, 509, 756, 757, 988, 757, 757, 757, + 757, 757, 757, 757, 757, 757, 757, 1007, 508, 507, + 1076, 1007, 1007, 1007, 1007, 1176, 1176, 1008, 1176, 1176, + 988, 1008, 1008, 1008, 1008, 1294, 1294, 506, 990, 1065, + 505, 1294, 990, 1065, 757, 777, 777, 777, 777, 777, + 777, 777, 777, 777, 777, 777, 500, 499, 1048, 988, + 1048, 1048, 1048, 1048, 1048, 1048, 990, 1065, 496, 467, + 1048, 1089, 1007, 1089, 1089, 1089, 1089, 1089, 1089, 466, + + 463, 462, 1008, 777, 778, 778, 778, 778, 778, 778, + 778, 778, 778, 778, 778, 990, 1009, 447, 1009, 1009, + 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1010, 446, + 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, + 445, 444, 778, 779, 779, 779, 779, 779, 779, 779, + 779, 779, 779, 779, 1011, 443, 1011, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1011, 1012, 442, 1012, 1012, + 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 441, 1091, + 440, 779, 784, 1091, 784, 784, 784, 784, 784, 784, + 784, 784, 784, 784, 784, 439, 438, 437, 784, 784, + + 784, 784, 784, 784, 436, 1202, 1202, 1091, 1202, 1202, + 1322, 1322, 435, 1013, 1023, 1024, 1322, 1013, 1023, 1024, + 434, 431, 425, 423, 784, 784, 784, 784, 784, 784, + 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, + 787, 1013, 1023, 1024, 787, 787, 787, 787, 787, 787, + 421, 420, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, + 1029, 1029, 1013, 1023, 1024, 419, 418, 417, 416, 415, + 787, 787, 787, 787, 787, 787, 800, 800, 800, 800, + 800, 800, 800, 800, 800, 800, 800, 800, 800, 1029, + 414, 413, 800, 800, 800, 800, 800, 800, 1035, 1035, + + 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1044, 1044, + 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 800, 800, + 800, 800, 800, 800, 803, 803, 803, 803, 803, 803, + 803, 803, 803, 803, 803, 803, 803, 412, 411, 410, + 803, 803, 803, 803, 803, 803, 1037, 409, 1037, 1037, + 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1101, 408, + 1311, 405, 1101, 1311, 390, 1311, 803, 803, 803, 803, + 803, 803, 806, 806, 806, 806, 806, 806, 806, 806, + 806, 806, 806, 386, 385, 384, 1101, 806, 806, 806, + 806, 806, 806, 1038, 383, 1038, 1038, 1038, 1038, 1038, + + 1038, 1038, 1038, 1038, 1038, 1328, 1328, 1101, 376, 375, + 374, 1328, 373, 806, 806, 806, 806, 806, 806, 809, + 1082, 1335, 809, 1082, 1335, 372, 1335, 371, 809, 809, + 1082, 1082, 809, 809, 1082, 809, 809, 809, 809, 809, + 809, 809, 809, 809, 809, 809, 809, 809, 1082, 1082, + 1082, 809, 809, 809, 809, 809, 809, 809, 809, 809, + 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, + 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, + 809, 809, 809, 809, 809, 809, 809, 809, 809, 809, + 809, 809, 809, 809, 809, 843, 369, 368, 367, 843, + + 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, + 366, 843, 365, 364, 843, 843, 843, 843, 843, 843, + 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, + 843, 843, 843, 843, 843, 843, 843, 363, 362, 843, + 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, + 843, 843, 843, 843, 843, 843, 843, 853, 853, 853, + 853, 853, 853, 853, 853, 853, 853, 853, 1050, 1050, + 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1053, 361, + 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, + 360, 359, 358, 357, 355, 853, 854, 854, 854, 854, + + 854, 854, 854, 854, 854, 854, 854, 1054, 1054, 1054, + 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1055, 1055, + 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1067, + 354, 347, 346, 1067, 854, 855, 855, 855, 855, 855, + 855, 855, 855, 855, 855, 855, 1056, 1056, 1056, 1056, + 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1067, 1081, 332, + 328, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, + 1081, 327, 325, 855, 856, 1131, 1144, 856, 324, 1131, + 1144, 323, 322, 856, 856, 321, 1067, 856, 856, 320, + 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, + + 856, 856, 856, 1131, 1144, 314, 856, 856, 856, 856, + 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, + 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, - 856, 1066, 317, 1359, 1359, 1066, 1066, 1066, 1066, 1067, - 1359, 316, 315, 1067, 1067, 1067, 1067, 1073, 1073, 1073, - 1073, 1073, 1073, 1073, 1073, 1073, 1073, 309, 856, 857, - 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, - - 1068, 1363, 305, 1363, 1068, 1068, 1068, 1068, 1071, 1363, - 302, 300, 1071, 1071, 1071, 1071, 1066, 1207, 1207, 1207, - 1207, 1207, 1207, 298, 1067, 295, 294, 857, 865, 293, - 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, - 865, 868, 290, 868, 868, 868, 868, 868, 868, 868, - 868, 868, 868, 868, 289, 1068, 287, 868, 868, 868, - 868, 868, 868, 1071, 1075, 286, 1075, 1075, 1075, 1075, - 1075, 1075, 1075, 1075, 1075, 1075, 1237, 1237, 1237, 1237, - 1237, 1237, 285, 868, 868, 868, 868, 868, 868, 871, - 871, 871, 871, 871, 871, 871, 871, 871, 871, 871, - - 284, 283, 281, 871, 871, 871, 871, 871, 871, 1076, - 275, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, - 1076, 1089, 1161, 267, 263, 1089, 1161, 258, 257, 871, - 871, 871, 871, 871, 871, 882, 882, 882, 882, 882, - 882, 882, 882, 882, 882, 882, 882, 882, 255, 1089, - 1161, 882, 882, 882, 882, 882, 882, 251, 1083, 1083, - 1083, 1083, 1083, 1083, 1083, 1083, 1083, 1083, 246, 1087, - 1089, 1087, 1087, 1087, 1087, 1087, 1087, 882, 882, 882, - 882, 882, 882, 885, 885, 885, 885, 885, 885, 885, - 885, 885, 885, 885, 885, 1083, 241, 239, 235, 885, - - 885, 885, 885, 885, 885, 1122, 230, 1072, 1087, 1122, - 1072, 1131, 218, 1318, 1318, 1131, 217, 1072, 1072, 1318, - 216, 1072, 215, 214, 209, 885, 885, 885, 885, 885, - 885, 890, 202, 1122, 890, 1072, 1072, 1072, 201, 1131, - 890, 890, 200, 199, 890, 890, 198, 890, 890, 890, - 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, - 1131, 197, 1122, 890, 890, 890, 890, 890, 890, 890, - 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, - 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, - 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, - - 890, 890, 890, 890, 890, 890, 890, 915, 195, 194, - 193, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 192, 915, 191, 190, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 189, - 188, 915, 915, 915, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 915, 927, + 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, + 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, + 868, 1077, 1375, 310, 1375, 1077, 1077, 1077, 1077, 1078, + 1375, 307, 305, 1078, 1078, 1078, 1078, 1085, 1085, 1085, + 1085, 1085, 1085, 1085, 1085, 1085, 1085, 303, 868, 869, + 869, 869, 869, 869, 869, 869, 869, 869, 869, 869, + + 1079, 300, 299, 298, 1079, 1079, 1079, 1079, 1080, 297, + 294, 293, 1080, 1080, 1080, 1080, 1077, 1127, 1127, 1127, + 1127, 1127, 1127, 1127, 1078, 291, 290, 869, 877, 289, + 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, + 877, 880, 288, 880, 880, 880, 880, 880, 880, 880, + 880, 880, 880, 880, 287, 1079, 285, 880, 880, 880, + 880, 880, 880, 1080, 1083, 279, 271, 267, 1083, 1083, + 1083, 1083, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, + 1095, 1095, 262, 880, 880, 880, 880, 880, 880, 883, + 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, + + 261, 259, 255, 883, 883, 883, 883, 883, 883, 1095, + 1099, 250, 1099, 1099, 1099, 1099, 1099, 1099, 1351, 1083, + 1143, 1351, 1149, 1351, 1143, 245, 1149, 243, 239, 883, + 883, 883, 883, 883, 883, 894, 894, 894, 894, 894, + 894, 894, 894, 894, 894, 894, 894, 894, 1143, 1099, + 1149, 894, 894, 894, 894, 894, 894, 1087, 234, 1087, + 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 1143, + 1150, 1149, 222, 221, 1150, 220, 219, 894, 894, 894, + 894, 894, 894, 897, 897, 897, 897, 897, 897, 897, + 897, 897, 897, 897, 897, 218, 212, 205, 1150, 897, + + 897, 897, 897, 897, 897, 1133, 204, 1084, 203, 1133, + 1084, 1171, 202, 201, 200, 1171, 198, 1084, 1084, 1150, + 197, 1084, 196, 195, 194, 897, 897, 897, 897, 897, + 897, 902, 193, 1133, 902, 1084, 1084, 1084, 192, 1171, + 902, 902, 191, 190, 902, 902, 189, 902, 902, 902, + 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, + 184, 180, 1133, 902, 902, 902, 902, 902, 902, 902, + 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, + 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, + 902, 902, 902, 902, 902, 902, 902, 902, 902, 902, + + 902, 902, 902, 902, 902, 902, 902, 927, 179, 175, + 172, 927, 927, 927, 927, 927, 927, 927, 927, 927, + 927, 927, 168, 927, 165, 162, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, 927, - 1096, 187, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, - 1096, 1096, 1097, 186, 1097, 1097, 1097, 1097, 1097, 1097, - - 1097, 1097, 1097, 1097, 181, 177, 176, 927, 928, 928, - 928, 928, 928, 928, 928, 928, 928, 928, 928, 1098, - 172, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, - 1098, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, 1103, - 1103, 169, 165, 162, 159, 155, 928, 930, 1170, 1187, - 930, 150, 1170, 1187, 149, 148, 930, 930, 147, 146, - 930, 930, 145, 930, 930, 930, 930, 930, 930, 930, - 930, 930, 930, 930, 930, 930, 1170, 1187, 141, 930, - 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, - 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, - - 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, - 930, 930, 930, 930, 930, 930, 930, 930, 930, 930, - 930, 930, 930, 940, 135, 940, 940, 940, 940, 940, - 940, 940, 940, 940, 940, 1107, 133, 1107, 1107, 1107, - 1107, 1107, 1107, 129, 124, 123, 122, 1107, 1109, 1109, - 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1324, 1324, - 121, 120, 940, 941, 1324, 941, 941, 941, 941, 941, - 941, 941, 941, 941, 941, 1111, 119, 1111, 1111, 1111, - 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1113, 1113, 1113, - 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1325, 1325, - - 115, 102, 941, 942, 1325, 942, 942, 942, 942, 942, - 942, 942, 942, 942, 942, 1114, 1114, 1114, 1114, 1114, - 1114, 1114, 1114, 1114, 1114, 1114, 1126, 1126, 1126, 1126, - 1126, 1126, 1126, 1126, 1126, 1126, 95, 88, 1326, 1326, - 87, 80, 942, 943, 1326, 943, 943, 943, 943, 943, - 943, 943, 943, 943, 943, 1127, 1127, 1127, 1127, 1127, - 1127, 1127, 1127, 1127, 1127, 1128, 79, 1128, 1128, 1128, - 1128, 1128, 1128, 1128, 1128, 1128, 1128, 74, 1329, 1329, - 73, 72, 943, 953, 1329, 953, 953, 953, 953, 953, - 953, 953, 953, 953, 953, 953, 956, 71, 956, 956, - - 956, 956, 956, 956, 956, 956, 956, 956, 956, 66, - 64, 54, 956, 956, 956, 956, 956, 956, 1129, 53, - 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, - 1149, 51, 1149, 1149, 1149, 1149, 1149, 1149, 956, 956, - 956, 956, 956, 956, 959, 959, 959, 959, 959, 959, - 959, 959, 959, 959, 959, 50, 48, 38, 959, 959, - 959, 959, 959, 959, 1130, 32, 1130, 1130, 1130, 1130, - 1130, 1130, 1130, 1130, 1130, 1130, 1169, 26, 1169, 1169, - 1169, 1169, 1169, 1169, 959, 959, 959, 959, 959, 959, - 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, - - 971, 971, 1007, 25, 1007, 1007, 1007, 1007, 1007, 1007, - 1007, 1007, 1007, 1007, 22, 1137, 21, 0, 1144, 1137, - 1144, 1144, 1144, 1144, 1144, 1144, 1138, 0, 0, 0, - 1138, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, - 1140, 1007, 1008, 1137, 1008, 1008, 1008, 1008, 1008, 1008, - 1008, 1008, 1008, 1008, 1138, 0, 1215, 1144, 1215, 1215, - 1215, 1215, 1215, 1215, 1137, 1330, 1330, 0, 1140, 0, - 0, 1330, 1331, 1331, 1347, 1138, 0, 1347, 1331, 1347, - 0, 1008, 1009, 0, 1009, 1009, 1009, 1009, 1009, 1009, - 1009, 1009, 1009, 1009, 1145, 1145, 1145, 1145, 1145, 1145, - - 1145, 1145, 1145, 1145, 1147, 0, 1147, 1147, 1147, 1147, - 1147, 1147, 1147, 1147, 1147, 1147, 0, 0, 0, 1163, - 0, 1009, 1010, 1163, 1010, 1010, 1010, 1010, 1010, 1010, - 1010, 1010, 1010, 1010, 1148, 0, 1148, 1148, 1148, 1148, - 1148, 1148, 1148, 1148, 1148, 1148, 1155, 1163, 1155, 1155, - 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 0, 0, - 0, 1010, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, - 1019, 1019, 1019, 1019, 0, 0, 1163, 1165, 1165, 1165, - 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1167, 0, 1167, - 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 0, - - 0, 1019, 1020, 0, 1020, 1020, 1020, 1020, 1020, 1020, - 1020, 1020, 1020, 1020, 1168, 0, 1168, 1168, 1168, 1168, - 1168, 1168, 1168, 1168, 1168, 1168, 0, 0, 0, 0, - 0, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, - 1171, 1020, 1034, 0, 1034, 1034, 1034, 1034, 1034, 1034, - 1034, 1034, 1034, 1034, 1034, 1037, 0, 1037, 1037, 1037, - 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1171, 0, - 0, 1037, 1037, 1037, 1037, 1037, 1037, 1175, 0, 1175, - 1175, 1175, 1175, 1175, 1175, 1176, 1334, 1334, 0, 1176, - 1335, 1335, 1334, 0, 0, 0, 1335, 1037, 1037, 1037, - - 1037, 1037, 1037, 1040, 1040, 1040, 1040, 1040, 1040, 1040, - 1040, 1040, 1040, 1176, 0, 0, 1175, 1040, 1040, 1040, - 1040, 1040, 1040, 1180, 1180, 1180, 1180, 1180, 1180, 1180, - 1180, 1180, 1180, 0, 1176, 1342, 1342, 0, 0, 0, - 0, 1342, 0, 1040, 1040, 1040, 1040, 1040, 1040, 1085, - 0, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, - 1085, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, - 1181, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, - 1182, 1350, 1350, 0, 1357, 1357, 0, 1350, 1085, 1086, - 1357, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, 1086, - - 1086, 1193, 0, 1193, 1193, 1193, 1193, 1193, 1193, 1193, - 1193, 1193, 1193, 1194, 0, 1194, 1194, 1194, 1194, 1194, - 1194, 1194, 1194, 1194, 1194, 0, 0, 0, 1086, 1093, - 0, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - 1093, 1195, 0, 1195, 1195, 1195, 1195, 1195, 1195, 1195, - 1195, 1195, 1195, 1199, 1199, 1199, 1199, 1199, 1199, 1199, - 1199, 1199, 1199, 0, 1360, 1360, 0, 0, 1093, 1094, - 1360, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, 1094, - 1094, 0, 1203, 0, 1203, 1203, 1203, 1203, 1203, 1203, - 1199, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, - - 1205, 1362, 1362, 0, 0, 0, 0, 1362, 1094, 1095, - 0, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, - 1095, 1203, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, - 1206, 1206, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, - 1211, 1211, 0, 0, 0, 0, 0, 0, 1095, 1105, + 927, 927, 927, 927, 927, 927, 927, 927, 927, 158, + 152, 927, 927, 927, 927, 927, 927, 927, 927, 927, + 927, 927, 927, 927, 927, 927, 927, 927, 927, 939, + 939, 939, 939, 939, 939, 939, 939, 939, 939, 939, + 1088, 151, 1088, 1088, 1088, 1088, 1088, 1088, 1088, 1088, + 1088, 1088, 1108, 150, 1108, 1108, 1108, 1108, 1108, 1108, + + 1108, 1108, 1108, 1108, 149, 148, 147, 939, 940, 940, + 940, 940, 940, 940, 940, 940, 940, 940, 940, 1109, + 143, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, + 1109, 1110, 137, 1110, 1110, 1110, 1110, 1110, 1110, 1110, + 1110, 1110, 1110, 135, 131, 129, 940, 942, 1173, 1182, + 942, 125, 1173, 1182, 124, 123, 942, 942, 122, 121, + 942, 942, 120, 942, 942, 942, 942, 942, 942, 942, + 942, 942, 942, 942, 942, 942, 1173, 1182, 116, 942, + 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, + 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, + + 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, + 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, + 942, 942, 942, 952, 103, 952, 952, 952, 952, 952, + 952, 952, 952, 952, 952, 1115, 1115, 1115, 1115, 1115, + 1115, 1115, 1115, 1115, 1115, 1119, 96, 1119, 1119, 1119, + 1119, 1119, 1119, 1329, 1329, 1330, 1330, 1119, 89, 1329, + 88, 1330, 952, 953, 81, 953, 953, 953, 953, 953, + 953, 953, 953, 953, 953, 1121, 1121, 1121, 1121, 1121, + 1121, 1121, 1121, 1121, 1121, 1123, 80, 1123, 1123, 1123, + 1123, 1123, 1123, 1123, 1123, 1123, 1123, 75, 1336, 1336, + + 74, 73, 953, 954, 1336, 954, 954, 954, 954, 954, + 954, 954, 954, 954, 954, 1125, 1125, 1125, 1125, 1125, + 1125, 1125, 1125, 1125, 1125, 1125, 1126, 1126, 1126, 1126, + 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1199, 72, 67, + 1134, 1199, 954, 955, 1134, 955, 955, 955, 955, 955, + 955, 955, 955, 955, 955, 1138, 1138, 1138, 1138, 1138, + 1138, 1138, 1138, 1138, 1138, 1199, 65, 54, 1134, 1139, + 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 53, + 51, 50, 955, 965, 48, 965, 965, 965, 965, 965, + 965, 965, 965, 965, 965, 965, 968, 1134, 968, 968, + + 968, 968, 968, 968, 968, 968, 968, 968, 968, 38, + 32, 26, 968, 968, 968, 968, 968, 968, 1140, 25, + 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, + 1161, 22, 1161, 1161, 1161, 1161, 1161, 1161, 968, 968, + 968, 968, 968, 968, 971, 971, 971, 971, 971, 971, + 971, 971, 971, 971, 971, 21, 0, 0, 971, 971, + 971, 971, 971, 971, 1141, 0, 1141, 1141, 1141, 1141, + 1141, 1141, 1141, 1141, 1141, 1141, 1156, 0, 1156, 1156, + 1156, 1156, 1156, 1156, 971, 971, 971, 971, 971, 971, + 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, + + 983, 983, 1019, 0, 1019, 1019, 1019, 1019, 1019, 1019, + 1019, 1019, 1019, 1019, 1142, 1156, 1142, 1142, 1142, 1142, + 1142, 1142, 1142, 1142, 1142, 1142, 1152, 1152, 1152, 1152, + 1152, 1152, 1152, 1152, 1152, 1152, 0, 1337, 1337, 0, + 0, 1019, 1020, 1337, 1020, 1020, 1020, 1020, 1020, 1020, + 1020, 1020, 1020, 1020, 1181, 0, 1181, 1181, 1181, 1181, + 1181, 1181, 0, 1152, 1157, 1157, 1157, 1157, 1157, 1157, + 1157, 1157, 1157, 1157, 1219, 1219, 1219, 1219, 1219, 1219, + 0, 1020, 1021, 0, 1021, 1021, 1021, 1021, 1021, 1021, + 1021, 1021, 1021, 1021, 1159, 0, 1159, 1159, 1159, 1159, + + 1159, 1159, 1159, 1159, 1159, 1159, 1160, 0, 1160, 1160, + 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 0, 1175, + 0, 1021, 1022, 1175, 1022, 1022, 1022, 1022, 1022, 1022, + 1022, 1022, 1022, 1022, 1167, 0, 1167, 1167, 1167, 1167, + 1167, 1167, 1167, 1167, 1167, 1167, 0, 1175, 1177, 1177, + 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 0, 0, + 0, 1022, 1031, 0, 1031, 1031, 1031, 1031, 1031, 1031, + 1031, 1031, 1031, 1031, 0, 1179, 1175, 1179, 1179, 1179, + 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1180, 0, 1180, + 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 1180, 0, + + 0, 1031, 1032, 0, 1032, 1032, 1032, 1032, 1032, 1032, + 1032, 1032, 1032, 1032, 0, 0, 0, 0, 0, 1183, + 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1187, + 0, 1187, 1187, 1187, 1187, 1187, 1187, 1338, 1338, 0, + 0, 1032, 1046, 1338, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1049, 1183, 1049, 1049, 1049, + 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1187, 0, + 0, 1049, 1049, 1049, 1049, 1049, 1049, 1215, 0, 1215, + 1215, 1215, 1215, 1215, 1215, 1188, 0, 0, 1227, 1188, + 1227, 1227, 1227, 1227, 1227, 1227, 0, 1049, 1049, 1049, + + 1049, 1049, 1049, 1052, 1052, 1052, 1052, 1052, 1052, 1052, + 1052, 1052, 1052, 1188, 0, 0, 1215, 1052, 1052, 1052, + 1052, 1052, 1052, 1192, 1192, 1192, 1192, 1192, 1192, 1192, + 1192, 1192, 1192, 0, 1188, 1249, 1249, 1249, 1249, 1249, + 1249, 0, 0, 1052, 1052, 1052, 1052, 1052, 1052, 1097, + 0, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, + 1097, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, + 1193, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, + 1194, 1341, 1341, 0, 1342, 1342, 0, 1341, 1097, 1098, + 1342, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, + + 1098, 1205, 0, 1205, 1205, 1205, 1205, 1205, 1205, 1205, + 1205, 1205, 1205, 1206, 0, 1206, 1206, 1206, 1206, 1206, + 1206, 1206, 1206, 1206, 1206, 0, 0, 0, 1098, 1105, 0, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, 1105, - 1105, 1105, 1108, 0, 1108, 1108, 1108, 1108, 1108, 1108, - 1108, 1108, 1108, 1108, 0, 0, 0, 0, 1108, 1108, - 1108, 1108, 1108, 1108, 1213, 0, 1213, 1213, 1213, 1213, - 1213, 1213, 1213, 1213, 1213, 1213, 0, 0, 0, 0, - - 0, 0, 0, 0, 1108, 1108, 1108, 1108, 1108, 1108, - 1134, 0, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, - 1134, 1134, 1214, 0, 1214, 1214, 1214, 1214, 1214, 1214, - 1214, 1214, 1214, 1214, 1216, 1216, 1216, 1216, 1216, 1216, - 1216, 1216, 1216, 1216, 0, 0, 0, 0, 0, 1134, - 1135, 0, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, - 1135, 1135, 0, 1220, 0, 1220, 1220, 1220, 1220, 1220, - 1220, 1216, 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1221, - 1221, 1221, 0, 1233, 1233, 1233, 1233, 1233, 1233, 1135, - 1136, 0, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, - - 1136, 1136, 1220, 0, 0, 0, 0, 0, 0, 1221, - 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, 1222, - 1233, 0, 0, 0, 0, 0, 0, 0, 0, 1136, - 1142, 0, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, - 1142, 1142, 0, 0, 0, 0, 0, 1222, 1223, 1223, - 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1225, 1225, - 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 0, 1142, - 1143, 0, 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1143, - 1143, 1143, 0, 0, 0, 1223, 1226, 1226, 1226, 1226, - 1226, 1226, 1226, 1226, 1226, 1226, 1227, 1227, 1227, 1227, - - 1227, 1227, 1227, 1227, 1227, 1227, 0, 0, 0, 1143, - 1173, 0, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1173, - 1173, 1173, 0, 0, 0, 1228, 1228, 1228, 1228, 1228, - 1228, 1228, 1228, 1228, 1228, 1229, 1229, 1229, 1229, 1229, - 1229, 1229, 1229, 1229, 1229, 0, 0, 0, 0, 1173, - 1174, 0, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, - 1174, 1174, 1228, 0, 0, 1240, 1240, 1240, 1240, 1240, - 1240, 0, 1229, 1230, 1230, 1230, 1230, 1230, 1230, 1230, - 1230, 1230, 1230, 0, 0, 0, 0, 0, 0, 1174, - 1177, 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, - - 1177, 1177, 1240, 0, 0, 0, 0, 0, 0, 0, - 1230, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1232, - 1232, 0, 0, 0, 0, 0, 0, 0, 0, 1177, - 1178, 0, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, - 1178, 1178, 0, 0, 0, 0, 0, 0, 1232, 1236, - 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1239, - 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1178, - 1179, 0, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, - 1179, 1179, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1239, 0, 0, 0, - - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1179, - 1196, 0, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, - 1196, 1196, 0, 0, 0, 0, 0, 0, 0, 0, + 1105, 1207, 0, 1207, 1207, 1207, 1207, 1207, 1207, 1207, + 1207, 1207, 1207, 1211, 1211, 1211, 1211, 1211, 1211, 1211, + 1211, 1211, 1211, 0, 1343, 1343, 0, 0, 1105, 1106, + 1343, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, + 1106, 1346, 1346, 1347, 1347, 0, 0, 1346, 0, 1347, + 1211, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, + + 1217, 1354, 1354, 0, 1362, 1362, 0, 1354, 1106, 1107, + 1362, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, + 1107, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, + 1218, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, + 1223, 1359, 0, 0, 1359, 0, 1359, 0, 1107, 1117, + 0, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, + 1117, 1117, 1120, 0, 1120, 1120, 1120, 1120, 1120, 1120, + 1120, 1120, 1120, 1120, 0, 0, 0, 0, 1120, 1120, + 1120, 1120, 1120, 1120, 1225, 0, 1225, 1225, 1225, 1225, + 1225, 1225, 1225, 1225, 1225, 1225, 1369, 1369, 0, 0, + + 0, 0, 1369, 0, 1120, 1120, 1120, 1120, 1120, 1120, + 1146, 0, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, + 1146, 1146, 1226, 0, 1226, 1226, 1226, 1226, 1226, 1226, + 1226, 1226, 1226, 1226, 1228, 1228, 1228, 1228, 1228, 1228, + 1228, 1228, 1228, 1228, 0, 1372, 1372, 0, 0, 1146, + 1147, 1372, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, + 1147, 1147, 0, 1232, 0, 1232, 1232, 1232, 1232, 1232, + 1232, 1228, 1233, 1233, 1233, 1233, 1233, 1233, 1233, 1233, + 1233, 1233, 0, 1245, 1245, 1245, 1245, 1245, 1245, 1147, + 1148, 0, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, + + 1148, 1148, 1232, 0, 0, 0, 0, 0, 0, 1233, + 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, 1234, + 1245, 1374, 1374, 0, 0, 0, 0, 1374, 0, 1148, + 1154, 0, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, + 1154, 1154, 0, 0, 0, 0, 0, 1234, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1237, 1237, + 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 0, 1154, + 1155, 0, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, + 1155, 1155, 0, 0, 0, 1235, 1238, 1238, 1238, 1238, + 1238, 1238, 1238, 1238, 1238, 1238, 1239, 1239, 1239, 1239, + + 1239, 1239, 1239, 1239, 1239, 1239, 0, 0, 0, 1155, + 1185, 0, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, + 1185, 1185, 0, 0, 0, 1240, 1240, 1240, 1240, 1240, + 1240, 1240, 1240, 1240, 1240, 1241, 1241, 1241, 1241, 1241, + 1241, 1241, 1241, 1241, 1241, 0, 0, 0, 0, 1185, + 1186, 0, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, + 1186, 1186, 1240, 0, 0, 1252, 1252, 1252, 1252, 1252, + 1252, 0, 1241, 1242, 1242, 1242, 1242, 1242, 1242, 1242, + 1242, 1242, 1242, 0, 0, 0, 0, 0, 0, 1186, + 1189, 0, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, + + 1189, 1189, 1252, 0, 0, 0, 0, 0, 0, 0, + 1242, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, + 1244, 0, 0, 0, 0, 0, 0, 0, 0, 1189, + 1190, 0, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, + 1190, 1190, 0, 0, 0, 0, 0, 0, 1244, 1248, + 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1251, + 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1251, 1190, + 1191, 0, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, + 1191, 1191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1251, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1191, + 1208, 0, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, + 1208, 1208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1196, - 1197, 0, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, - 1197, 1197, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1208, + 1209, 0, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, + 1209, 1209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1197, - 1198, 0, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1209, + 1210, 0, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, - 1198, 1198, 0, 0, 0, 0, 0, 0, 0, 0, + 1210, 1210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1198, - 1201, 0, 1201, 1201, 1201, 1201, 1201, 1201, 1201, 1201, - 1201, 1201, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1210, + 1213, 0, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, + 1213, 1213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1201, - 1202, 0, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, - 1202, 1202, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1213, + 1214, 0, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, + 1214, 1214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1202, - 1218, 0, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, - 1218, 1218, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1214, + 1230, 0, 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230, + 1230, 1230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1218, - 1219, 0, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, - 1219, 1219, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1230, + 1231, 0, 1231, 1231, 1231, 1231, 1231, 1231, 1231, 1231, + 1231, 1231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1219, - 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, - - 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, - 1242, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, - 1243, 1243, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, - 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, - 1244, 1244, 1244, 1245, 1245, 1245, 1245, 1245, 1245, 1245, - 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, - 1245, 1245, 1245, 1245, 1246, 1246, 1246, 1246, 1246, 1246, - 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1246, - 1246, 1246, 1246, 1246, 1246, 1247, 1247, 1247, 1247, 1247, - - 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, - 1247, 1247, 1247, 1247, 1247, 1247, 1248, 0, 0, 1248, - 0, 0, 0, 1248, 0, 1248, 0, 1248, 1248, 1248, - 0, 0, 1248, 1248, 1248, 1248, 1248, 1249, 1249, 1249, - 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, - 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1249, 1250, 0, - 0, 1250, 0, 0, 1250, 1250, 0, 1250, 0, 1250, - 1250, 1250, 1250, 0, 1250, 1250, 1250, 1250, 1250, 1251, - 0, 0, 1251, 0, 0, 0, 1251, 0, 1251, 0, - 1251, 1251, 1251, 0, 0, 1251, 1251, 1251, 1251, 1251, - - 1252, 0, 0, 1252, 1252, 1252, 0, 1252, 1252, 1252, - 0, 1252, 1252, 1252, 0, 0, 1252, 1252, 1252, 1252, - 1252, 1254, 1254, 0, 1254, 1254, 1254, 0, 1254, 1254, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1231, + 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, + 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, - 1254, 1254, 1255, 0, 0, 1255, 1255, 1255, 0, 1255, - 1255, 1255, 0, 1255, 1255, 1255, 0, 0, 1255, 1255, - 1255, 1255, 1255, 1256, 1256, 0, 1256, 1256, 1256, 0, + 1254, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, + 1255, 1255, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, - 1256, 1256, 1256, 1256, 1257, 0, 0, 1257, 1257, 1257, - 0, 1257, 1257, 1257, 0, 1257, 1257, 1257, 0, 1257, + 1256, 1256, 1256, 1257, 1257, 1257, 1257, 1257, 1257, 1257, + 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, + 1257, 1257, 1257, 1257, 1258, 1258, 1258, 1258, 1258, 1258, + 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1258, + 1258, 1258, 1258, 1258, 1258, 1259, 1259, 1259, 1259, 1259, - 1257, 0, 1257, 1257, 1257, 1258, 1258, 0, 1258, 1258, - 1258, 0, 0, 1258, 1258, 1258, 1258, 1258, 1258, 1258, - 1258, 1258, 0, 1258, 1258, 1258, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, - 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1261, 0, 0, - 1261, 1261, 0, 0, 1261, 1261, 1261, 0, 1261, 1261, - 1261, 1261, 0, 1261, 1261, 1261, 1261, 1261, 1262, 1262, - 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, - 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1263, - 1263, 0, 1263, 1263, 0, 1263, 1263, 1263, 1263, 1263, - - 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, - 1264, 0, 0, 1264, 0, 0, 1264, 1264, 0, 1264, - 0, 1264, 1264, 1264, 1264, 0, 1264, 1264, 1264, 1264, - 1264, 1265, 0, 0, 1265, 0, 0, 0, 1265, 0, - 1265, 0, 1265, 1265, 1265, 0, 1265, 1265, 1265, 1265, - 1265, 1265, 1266, 0, 0, 1266, 1266, 1266, 0, 1266, - 1266, 1266, 0, 1266, 1266, 1266, 0, 1266, 1266, 1266, - 1266, 1266, 1266, 1267, 1267, 0, 1267, 1267, 1267, 0, - 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, - 1267, 1267, 1267, 1267, 1268, 0, 0, 0, 1268, 1268, - + 1259, 1259, 1259, 1259, 1259, 1259, 1260, 0, 0, 1260, + 0, 0, 0, 1260, 0, 1260, 0, 1260, 1260, 1260, + 0, 0, 1260, 1260, 1260, 1260, 1260, 1261, 1261, 1261, + 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, + 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1261, 1262, 0, + 0, 1262, 0, 0, 1262, 1262, 0, 1262, 0, 1262, + 1262, 1262, 1262, 0, 1262, 1262, 1262, 1262, 1262, 1263, + 0, 0, 1263, 0, 0, 0, 1263, 0, 1263, 0, + 1263, 1263, 1263, 0, 0, 1263, 1263, 1263, 1263, 1263, + + 1264, 0, 0, 1264, 1264, 1264, 0, 1264, 1264, 1264, + 0, 1264, 1264, 1264, 0, 0, 1264, 1264, 1264, 1264, + 1264, 1266, 1266, 0, 1266, 1266, 1266, 0, 1266, 1266, + 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, 1266, + 1266, 1266, 1267, 0, 0, 1267, 1267, 1267, 0, 1267, + 1267, 1267, 0, 1267, 1267, 1267, 0, 0, 1267, 1267, + 1267, 1267, 1267, 1268, 1268, 0, 1268, 1268, 1268, 0, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, - 1268, 1268, 1268, 1268, 1268, 1269, 0, 0, 1269, 0, - 0, 0, 1269, 0, 1269, 0, 1269, 1269, 1269, 0, - 0, 1269, 1269, 1269, 1269, 1269, 1270, 0, 0, 1270, - 0, 0, 1270, 1270, 0, 1270, 0, 1270, 1270, 1270, - 1270, 0, 1270, 1270, 1270, 1270, 1270, 1271, 0, 0, - 1271, 0, 0, 0, 1271, 0, 1271, 0, 1271, 1271, - 1271, 0, 0, 1271, 1271, 1271, 1271, 1271, 1272, 0, - 0, 1272, 1272, 1272, 0, 1272, 1272, 1272, 0, 1272, - 1272, 1272, 0, 0, 1272, 1272, 1272, 1272, 1272, 1273, - - 1273, 0, 1273, 1273, 1273, 0, 1273, 1273, 1273, 1273, - 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, - 1274, 0, 0, 1274, 0, 0, 0, 1274, 0, 1274, - 0, 1274, 1274, 1274, 0, 0, 1274, 1274, 1274, 1274, - 1274, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, + 1268, 1268, 1268, 1268, 1269, 0, 0, 1269, 1269, 1269, + 0, 1269, 1269, 1269, 0, 1269, 1269, 1269, 0, 1269, + + 1269, 0, 1269, 1269, 1269, 1270, 1270, 0, 1270, 1270, + 1270, 0, 0, 1270, 1270, 1270, 1270, 1270, 1270, 1270, + 1270, 1270, 0, 1270, 1270, 1270, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1273, 0, 0, + 1273, 1273, 0, 0, 1273, 1273, 1273, 0, 1273, 1273, + 1273, 1273, 0, 1273, 1273, 1273, 1273, 1273, 1274, 1274, + 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, + 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1275, + 1275, 0, 1275, 1275, 0, 1275, 1275, 1275, 1275, 1275, + 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, - 1275, 1275, 1276, 1276, 0, 1276, 1276, 1276, 1276, 1276, - 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, - 1276, 1276, 1276, 1277, 0, 0, 1277, 0, 0, 0, - 1277, 0, 1277, 0, 1277, 1277, 1277, 0, 0, 1277, - - 1277, 1277, 1277, 1277, 1278, 0, 0, 1278, 0, 0, - 0, 1278, 0, 1278, 0, 1278, 1278, 1278, 0, 0, - 1278, 1278, 1278, 1278, 1278, 1279, 0, 0, 1279, 1279, - 1279, 0, 1279, 1279, 1279, 0, 1279, 1279, 1279, 0, - 0, 1279, 1279, 1279, 1279, 1279, 1280, 0, 0, 1280, - 1280, 1280, 0, 1280, 1280, 1280, 0, 1280, 1280, 1280, - 0, 0, 1280, 1280, 1280, 1280, 1280, 1283, 1283, 1283, - 0, 0, 0, 0, 1283, 1284, 1284, 0, 1284, 1284, - 1284, 0, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, - 1284, 1284, 1284, 1284, 1284, 1284, 1285, 1285, 0, 1285, - - 1285, 1285, 0, 1285, 1285, 1285, 1285, 1285, 1285, 1285, - 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1286, 0, 0, - 1286, 1286, 1286, 0, 1286, 1286, 1286, 0, 1286, 1286, - 1286, 0, 0, 1286, 1286, 1286, 1286, 1286, 1287, 0, - 0, 1287, 1287, 1287, 0, 1287, 1287, 1287, 0, 1287, - 1287, 1287, 0, 0, 1287, 1287, 1287, 1287, 1287, 1288, - 1288, 0, 1288, 1288, 1288, 0, 1288, 1288, 1288, 1288, + 1276, 0, 0, 1276, 0, 0, 1276, 1276, 0, 1276, + 0, 1276, 1276, 1276, 1276, 0, 1276, 1276, 1276, 1276, + 1276, 1277, 0, 0, 1277, 0, 0, 0, 1277, 0, + 1277, 0, 1277, 1277, 1277, 0, 1277, 1277, 1277, 1277, + 1277, 1277, 1278, 0, 0, 1278, 1278, 1278, 0, 1278, + 1278, 1278, 0, 1278, 1278, 1278, 0, 1278, 1278, 1278, + 1278, 1278, 1278, 1279, 1279, 0, 1279, 1279, 1279, 0, + 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, 1279, + 1279, 1279, 1279, 1279, 1280, 0, 0, 0, 1280, 1280, + + 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, 1280, + 1280, 1280, 1280, 1280, 1280, 1281, 0, 0, 1281, 0, + 0, 0, 1281, 0, 1281, 0, 1281, 1281, 1281, 0, + 0, 1281, 1281, 1281, 1281, 1281, 1282, 0, 0, 1282, + 0, 0, 1282, 1282, 0, 1282, 0, 1282, 1282, 1282, + 1282, 0, 1282, 1282, 1282, 1282, 1282, 1283, 0, 0, + 1283, 0, 0, 0, 1283, 0, 1283, 0, 1283, 1283, + 1283, 0, 0, 1283, 1283, 1283, 1283, 1283, 1284, 0, + 0, 1284, 1284, 1284, 0, 1284, 1284, 1284, 0, 1284, + 1284, 1284, 0, 0, 1284, 1284, 1284, 1284, 1284, 1285, + + 1285, 0, 1285, 1285, 1285, 0, 1285, 1285, 1285, 1285, + 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, + 1286, 0, 0, 1286, 0, 0, 0, 1286, 0, 1286, + 0, 1286, 1286, 1286, 0, 0, 1286, 1286, 1286, 1286, + 1286, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, + 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, + 1287, 1287, 1288, 1288, 0, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, 1288, - 1289, 1289, 0, 1289, 1289, 1289, 0, 1289, 1289, 1289, - 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, - - 1289, 1290, 0, 0, 1290, 1290, 1290, 0, 1290, 1290, - 1290, 0, 1290, 1290, 1290, 0, 1290, 1290, 0, 1290, - 1290, 1290, 1291, 1291, 0, 1291, 1291, 1291, 0, 0, - 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 1291, 0, - 1291, 1291, 1291, 1293, 0, 0, 1293, 1293, 0, 0, - 1293, 1293, 1293, 0, 1293, 1293, 1293, 1293, 0, 1293, - 1293, 1293, 1293, 1293, 1294, 1294, 0, 1294, 1294, 0, - 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, - 1294, 1294, 1294, 1294, 1294, 1295, 0, 0, 1295, 0, - 0, 0, 1295, 0, 1295, 0, 1295, 1295, 1295, 0, - - 0, 1295, 1295, 1295, 1295, 1295, 1296, 0, 0, 1296, - 0, 0, 0, 1296, 0, 1296, 0, 1296, 1296, 1296, - 0, 1296, 1296, 1296, 1296, 1296, 1296, 1297, 0, 0, - 1297, 1297, 0, 1297, 1297, 0, 0, 1297, 1297, 1298, - 0, 0, 1298, 1298, 1298, 0, 1298, 1298, 1298, 0, - 1298, 1298, 1298, 0, 1298, 1298, 1298, 1298, 1298, 1298, - 1300, 0, 0, 0, 1300, 1300, 1300, 1300, 1300, 1300, + 1288, 1288, 1288, 1289, 0, 0, 1289, 0, 0, 0, + 1289, 0, 1289, 0, 1289, 1289, 1289, 0, 0, 1289, + + 1289, 1289, 1289, 1289, 1290, 0, 0, 1290, 0, 0, + 0, 1290, 0, 1290, 0, 1290, 1290, 1290, 0, 0, + 1290, 1290, 1290, 1290, 1290, 1291, 0, 0, 1291, 1291, + 1291, 0, 1291, 1291, 1291, 0, 1291, 1291, 1291, 0, + 0, 1291, 1291, 1291, 1291, 1291, 1292, 0, 0, 1292, + 1292, 1292, 0, 1292, 1292, 1292, 0, 1292, 1292, 1292, + 0, 0, 1292, 1292, 1292, 1292, 1292, 1295, 1295, 1295, + 0, 0, 0, 0, 1295, 1296, 1296, 0, 1296, 1296, + 1296, 0, 1296, 1296, 1296, 1296, 1296, 1296, 1296, 1296, + 1296, 1296, 1296, 1296, 1296, 1296, 1297, 1297, 0, 1297, + + 1297, 1297, 0, 1297, 1297, 1297, 1297, 1297, 1297, 1297, + 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1298, 0, 0, + 1298, 1298, 1298, 0, 1298, 1298, 1298, 0, 1298, 1298, + 1298, 0, 0, 1298, 1298, 1298, 1298, 1298, 1299, 0, + 0, 1299, 1299, 1299, 0, 1299, 1299, 1299, 0, 1299, + 1299, 1299, 0, 0, 1299, 1299, 1299, 1299, 1299, 1300, + 1300, 0, 1300, 1300, 1300, 0, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, - 1300, 1301, 0, 0, 1301, 0, 0, 0, 1301, 0, - 1301, 0, 1301, 1301, 1301, 0, 0, 1301, 1301, 1301, - - 1301, 1301, 1302, 0, 0, 1302, 0, 0, 0, 1302, - 0, 1302, 0, 1302, 1302, 1302, 0, 0, 1302, 1302, - 1302, 1302, 1302, 1303, 0, 0, 1303, 0, 0, 0, - 1303, 0, 1303, 0, 1303, 1303, 1303, 0, 0, 1303, - 1303, 1303, 1303, 1303, 1304, 0, 0, 1304, 1304, 1304, - 0, 1304, 1304, 1304, 0, 1304, 1304, 1304, 0, 0, - 1304, 1304, 1304, 1304, 1304, 1305, 0, 0, 1305, 1305, - 1305, 0, 1305, 1305, 1305, 0, 1305, 1305, 1305, 0, - 0, 1305, 1305, 1305, 1305, 1305, 1306, 1306, 0, 1306, - 1306, 1306, 0, 1306, 1306, 1306, 1306, 1306, 1306, 1306, - - 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1307, 1307, 1307, - 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, - 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1307, 1308, 1308, - 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, - 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1308, 1309, - 0, 0, 1309, 0, 0, 0, 1309, 0, 1309, 0, - 1309, 1309, 1309, 0, 0, 1309, 1309, 1309, 1309, 1309, - 1311, 1311, 1311, 0, 0, 0, 0, 1311, 1312, 1312, - 0, 1312, 1312, 1312, 0, 1312, 1312, 1312, 1312, 1312, - 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1313, - - 1313, 0, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, - 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, - 1314, 1314, 0, 1314, 1314, 1314, 0, 1314, 1314, 1314, - 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, - 1314, 1315, 1315, 0, 1315, 1315, 1315, 0, 1315, 1315, - 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, 1315, - 1315, 1315, 1319, 1319, 1319, 0, 0, 0, 0, 1319, - 1320, 1320, 1320, 0, 0, 0, 0, 1320, 1321, 1321, - 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, - 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1321, 1322, - - 1322, 0, 1322, 1322, 1322, 0, 1322, 1322, 1322, 1322, - 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, 1322, - 1327, 1327, 1327, 0, 0, 0, 0, 1327, 1328, 1328, - 1328, 1328, 0, 0, 0, 0, 1328, 1332, 1332, 1332, - 0, 0, 0, 0, 1332, 1333, 1333, 1333, 1333, 0, - 0, 0, 0, 1333, 1336, 1336, 1336, 0, 0, 0, - 0, 1336, 1337, 1337, 1337, 1337, 0, 0, 0, 0, - 1337, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, - 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, - 1338, 1338, 1340, 0, 0, 1340, 1340, 0, 1340, 1340, - - 0, 0, 1340, 1340, 1341, 0, 0, 1341, 0, 0, - 0, 1341, 0, 1341, 0, 1341, 1341, 1341, 0, 0, - 1341, 1341, 1341, 1341, 1341, 1343, 0, 1343, 1343, 0, - 0, 0, 0, 1343, 1344, 1344, 1344, 0, 0, 0, - 0, 1344, 1345, 1345, 1345, 1345, 0, 0, 0, 0, - 1345, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, - 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, - 1346, 1346, 1348, 0, 0, 1348, 1348, 0, 1348, 1348, - 0, 0, 1348, 1348, 1349, 0, 0, 1349, 0, 0, - 0, 1349, 0, 1349, 0, 1349, 1349, 1349, 0, 0, - - 1349, 1349, 1349, 1349, 1349, 1351, 0, 1351, 1351, 0, - 0, 0, 0, 1351, 1352, 1352, 1352, 0, 0, 0, - 0, 1352, 1353, 1353, 1353, 0, 0, 0, 0, 0, - 1353, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, - 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1354, - 1354, 1354, 1355, 1355, 0, 1355, 1355, 1355, 1355, 1355, - 0, 1355, 0, 1355, 1355, 1355, 0, 0, 1355, 1355, - 1355, 1355, 1355, 1356, 1356, 0, 1356, 1356, 1356, 1356, - 1356, 0, 1356, 0, 1356, 1356, 1356, 0, 0, 1356, - 1356, 1356, 1356, 1356, 1358, 0, 1358, 1358, 0, 0, - - 0, 0, 1358, 1361, 0, 1361, 1361, 0, 0, 0, - 0, 1361, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, - 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, - 1364, 1364, 1364, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, - - 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241 + 1301, 1301, 0, 1301, 1301, 1301, 0, 1301, 1301, 1301, + 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, + + 1301, 1302, 0, 0, 1302, 1302, 1302, 0, 1302, 1302, + 1302, 0, 1302, 1302, 1302, 0, 1302, 1302, 0, 1302, + 1302, 1302, 1303, 1303, 0, 1303, 1303, 1303, 0, 0, + 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 0, + 1303, 1303, 1303, 1305, 0, 0, 1305, 1305, 0, 0, + 1305, 1305, 1305, 0, 1305, 1305, 1305, 1305, 0, 1305, + 1305, 1305, 1305, 1305, 1306, 1306, 0, 1306, 1306, 0, + 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, 1306, + 1306, 1306, 1306, 1306, 1306, 1307, 0, 0, 1307, 0, + 0, 0, 1307, 0, 1307, 0, 1307, 1307, 1307, 0, + + 0, 1307, 1307, 1307, 1307, 1307, 1308, 0, 0, 1308, + 0, 0, 0, 1308, 0, 1308, 0, 1308, 1308, 1308, + 0, 1308, 1308, 1308, 1308, 1308, 1308, 1309, 0, 0, + 1309, 1309, 0, 1309, 1309, 0, 0, 1309, 1309, 1310, + 0, 0, 1310, 1310, 1310, 0, 1310, 1310, 1310, 0, + 1310, 1310, 1310, 0, 1310, 1310, 1310, 1310, 1310, 1310, + 1312, 0, 0, 0, 1312, 1312, 1312, 1312, 1312, 1312, + 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, 1312, + 1312, 1313, 0, 0, 1313, 0, 0, 0, 1313, 0, + 1313, 0, 1313, 1313, 1313, 0, 0, 1313, 1313, 1313, + + 1313, 1313, 1314, 0, 0, 1314, 0, 0, 0, 1314, + 0, 1314, 0, 1314, 1314, 1314, 0, 0, 1314, 1314, + 1314, 1314, 1314, 1315, 0, 0, 1315, 0, 0, 0, + 1315, 0, 1315, 0, 1315, 1315, 1315, 0, 0, 1315, + 1315, 1315, 1315, 1315, 1316, 0, 0, 1316, 1316, 1316, + 0, 1316, 1316, 1316, 0, 1316, 1316, 1316, 0, 0, + 1316, 1316, 1316, 1316, 1316, 1317, 0, 0, 1317, 1317, + 1317, 0, 1317, 1317, 1317, 0, 1317, 1317, 1317, 0, + 0, 1317, 1317, 1317, 1317, 1317, 1318, 1318, 0, 1318, + 1318, 1318, 0, 1318, 1318, 1318, 1318, 1318, 1318, 1318, + + 1318, 1318, 1318, 1318, 1318, 1318, 1318, 1319, 1319, 1319, + 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, + 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1319, 1320, 1320, + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, + 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1320, 1321, + 0, 0, 1321, 0, 0, 0, 1321, 0, 1321, 0, + 1321, 1321, 1321, 0, 0, 1321, 1321, 1321, 1321, 1321, + 1323, 1323, 1323, 0, 0, 0, 0, 1323, 1324, 1324, + 0, 1324, 1324, 1324, 0, 1324, 1324, 1324, 1324, 1324, + 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1324, 1325, + + 1325, 0, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, 1325, + 1326, 1326, 0, 1326, 1326, 1326, 0, 1326, 1326, 1326, + 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, 1326, + 1326, 1327, 1327, 0, 1327, 1327, 1327, 0, 1327, 1327, + 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327, 1327, + 1327, 1327, 1331, 1331, 1331, 0, 0, 0, 0, 1331, + 1332, 1332, 1332, 0, 0, 0, 0, 1332, 1333, 1333, + 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, + 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1333, 1334, + + 1334, 0, 1334, 1334, 1334, 0, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1339, 1339, 1339, 0, 0, 0, 0, 1339, 1340, 1340, + 1340, 1340, 0, 0, 0, 0, 1340, 1344, 1344, 1344, + 0, 0, 0, 0, 1344, 1345, 1345, 1345, 1345, 0, + 0, 0, 0, 1345, 1348, 1348, 1348, 0, 0, 0, + 0, 1348, 1349, 1349, 1349, 1349, 0, 0, 0, 0, + 1349, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, + 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, 1350, + 1350, 1350, 1352, 0, 0, 1352, 1352, 0, 1352, 1352, + + 0, 0, 1352, 1352, 1353, 0, 0, 1353, 0, 0, + 0, 1353, 0, 1353, 0, 1353, 1353, 1353, 0, 0, + 1353, 1353, 1353, 1353, 1353, 1355, 0, 1355, 1355, 0, + 0, 0, 0, 1355, 1356, 1356, 1356, 0, 0, 0, + 0, 1356, 1357, 1357, 1357, 1357, 0, 0, 0, 0, + 1357, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, + 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, 1358, + 1358, 1358, 1360, 0, 0, 1360, 1360, 0, 1360, 1360, + 0, 0, 1360, 1360, 1361, 0, 0, 1361, 0, 0, + 0, 1361, 0, 1361, 0, 1361, 1361, 1361, 0, 0, + + 1361, 1361, 1361, 1361, 1361, 1363, 0, 1363, 1363, 0, + 0, 0, 0, 1363, 1364, 1364, 1364, 0, 0, 0, + 0, 1364, 1365, 1365, 1365, 0, 0, 0, 0, 0, + 1365, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, + 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, + 1366, 1366, 1367, 1367, 0, 1367, 1367, 1367, 1367, 1367, + 0, 1367, 0, 1367, 1367, 1367, 0, 0, 1367, 1367, + 1367, 1367, 1367, 1368, 1368, 0, 1368, 1368, 1368, 1368, + 1368, 0, 1368, 0, 1368, 1368, 1368, 0, 0, 1368, + 1368, 1368, 1368, 1368, 1370, 0, 1370, 1370, 0, 0, + + 0, 0, 1370, 1373, 0, 1373, 1373, 0, 0, 0, + 0, 1373, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, + + 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1253 } ; static yy_state_type yy_last_accepting_state; @@ -3135,7 +3138,7 @@ int (*trace_print)(const char *msg) = sudoers_trace_print; -#line 3133 "toke.c" +#line 3136 "toke.c" #define INITIAL 0 #define GOTDEFS 1 @@ -3358,7 +3361,7 @@ YY_DECL { #line 124 "toke.l" -#line 3356 "toke.c" +#line 3359 "toke.c" while ( 1 ) /* loops until end-of-file is reached */ { @@ -3386,7 +3389,7 @@ YY_DECL while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1242 ) + if ( yy_current_state >= 1254 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -4261,6 +4264,17 @@ YY_RULE_SETUP case 70: YY_RULE_SETUP #line 753 "toke.l" +{ + /* No command line args. */ + LEXTRACE("COMMAND "); + if (!fill_cmnd(sudoerstext, sudoersleng)) + yyterminate(); + return COMMAND; + } /* sudo -l -U otheruser */ + YY_BREAK +case 71: +YY_RULE_SETUP +#line 761 "toke.l" { BEGIN GOTCMND; LEXTRACE("COMMAND "); @@ -4268,9 +4282,9 @@ YY_RULE_SETUP yyterminate(); } /* sudo -e */ YY_BREAK -case 71: +case 72: YY_RULE_SETUP -#line 760 "toke.l" +#line 768 "toke.l" { BEGIN prev_state; if (!fill(sudoerstext, sudoersleng)) @@ -4279,9 +4293,9 @@ YY_RULE_SETUP return WORD; } YY_BREAK -case 72: +case 73: YY_RULE_SETUP -#line 768 "toke.l" +#line 776 "toke.l" { /* directories can't have args... */ if (sudoerstext[sudoersleng - 1] == '/') { @@ -4296,9 +4310,9 @@ YY_RULE_SETUP yyterminate(); } /* a pathname */ YY_BREAK -case 73: +case 74: YY_RULE_SETUP -#line 782 "toke.l" +#line 790 "toke.l" { if (sudoers_strict) { if (!sudo_regex_compile(NULL, sudoerstext, &sudoers_errstr)) { @@ -4312,9 +4326,9 @@ YY_RULE_SETUP yyterminate(); } /* a regex */ YY_BREAK -case 74: +case 75: YY_RULE_SETUP -#line 795 "toke.l" +#line 803 "toke.l" { LEXTRACE("BEGINSTR "); sudoerslval.string = NULL; @@ -4322,9 +4336,9 @@ YY_RULE_SETUP BEGIN INSTR; } YY_BREAK -case 75: +case 76: YY_RULE_SETUP -#line 802 "toke.l" +#line 810 "toke.l" { /* a word */ if (!fill(sudoerstext, sudoersleng)) @@ -4334,9 +4348,9 @@ YY_RULE_SETUP } YY_BREAK -case 76: +case 77: YY_RULE_SETUP -#line 811 "toke.l" +#line 819 "toke.l" { /* include file/directory */ if (!fill(sudoerstext, sudoersleng)) @@ -4346,9 +4360,9 @@ YY_RULE_SETUP return WORD; } YY_BREAK -case 77: +case 78: YY_RULE_SETUP -#line 820 "toke.l" +#line 828 "toke.l" { LEXTRACE("BEGINSTR "); sudoerslval.string = NULL; @@ -4357,49 +4371,49 @@ YY_RULE_SETUP } YY_BREAK -case 78: +case 79: YY_RULE_SETUP -#line 828 "toke.l" +#line 836 "toke.l" { LEXTRACE("( "); return '('; } YY_BREAK -case 79: +case 80: YY_RULE_SETUP -#line 833 "toke.l" +#line 841 "toke.l" { LEXTRACE(") "); return ')'; } YY_BREAK -case 80: +case 81: YY_RULE_SETUP -#line 838 "toke.l" +#line 846 "toke.l" { LEXTRACE(", "); return ','; } /* return ',' */ YY_BREAK -case 81: +case 82: YY_RULE_SETUP -#line 843 "toke.l" +#line 851 "toke.l" { LEXTRACE("= "); return '='; } /* return '=' */ YY_BREAK -case 82: +case 83: YY_RULE_SETUP -#line 848 "toke.l" +#line 856 "toke.l" { LEXTRACE(": "); return ':'; } /* return ':' */ YY_BREAK -case 83: +case 84: YY_RULE_SETUP -#line 853 "toke.l" +#line 861 "toke.l" { if (sudoersleng & 1) { LEXTRACE("!"); @@ -4407,10 +4421,10 @@ YY_RULE_SETUP } } YY_BREAK -case 84: -/* rule 84 can match eol */ +case 85: +/* rule 85 can match eol */ YY_RULE_SETUP -#line 860 "toke.l" +#line 868 "toke.l" { if (YY_START == INSTR) { /* throw away old string */ @@ -4430,27 +4444,27 @@ YY_RULE_SETUP return '\n'; } /* return newline */ YY_BREAK -case 85: +case 86: YY_RULE_SETUP -#line 879 "toke.l" +#line 887 "toke.l" { /* throw away space/tabs */ sawspace = true; /* but remember for fill_args */ } YY_BREAK -case 86: -/* rule 86 can match eol */ +case 87: +/* rule 87 can match eol */ YY_RULE_SETUP -#line 883 "toke.l" +#line 891 "toke.l" { sawspace = true; /* remember for fill_args */ sudolineno++; continued = true; } /* throw away EOL after \ */ YY_BREAK -case 87: -/* rule 87 can match eol */ +case 88: +/* rule 88 can match eol */ YY_RULE_SETUP -#line 889 "toke.l" +#line 897 "toke.l" { if (sudoerstext[sudoersleng - 1] == '\n') { /* comment ending in a newline */ @@ -4466,9 +4480,9 @@ YY_RULE_SETUP return '\n'; } /* comment, not uid/gid */ YY_BREAK -case 88: +case 89: YY_RULE_SETUP -#line 904 "toke.l" +#line 912 "toke.l" { LEXTRACE("NOMATCH "); return NOMATCH; @@ -4484,18 +4498,18 @@ case YY_STATE_EOF(INSTR): case YY_STATE_EOF(WANTDIGEST): case YY_STATE_EOF(GOTINC): case YY_STATE_EOF(EXPECTPATH): -#line 909 "toke.l" +#line 917 "toke.l" { if (!pop_include()) yyterminate(); } YY_BREAK -case 89: +case 90: YY_RULE_SETUP -#line 914 "toke.l" +#line 922 "toke.l" ECHO; YY_BREAK -#line 4493 "toke.c" +#line 4507 "toke.c" case YY_END_OF_BUFFER: { @@ -4789,7 +4803,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1242 ) + if ( yy_current_state >= 1254 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -4817,11 +4831,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1242 ) + if ( yy_current_state >= 1254 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 1241); + yy_is_jam = (yy_current_state == 1253); return yy_is_jam ? 0 : yy_current_state; } @@ -5456,7 +5470,7 @@ void sudoersfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 914 "toke.l" +#line 922 "toke.l" struct path_list { @@ -5911,13 +5925,18 @@ sudoers_trace_print(const char *msg) int sudoers_trace_print(const char *msg) { - sudo_lbuf_append(&trace_lbuf, "%s", msg); - if (strchr(msg, '\n') != NULL) - { - /* We already parsed the newline so sudolineno is off by one. */ - sudo_debug_printf2(NULL, NULL, 0, SUDOERS_DEBUG_PARSER|SUDO_DEBUG_DEBUG, - "sudoerslex: %s:%d: %s", sudoers, sudolineno - 1, trace_lbuf.buf); - trace_lbuf.len = 0; + const int sudo_debug_subsys = SUDOERS_DEBUG_PARSER; + + if (sudo_debug_needed(SUDO_DEBUG_DEBUG)) { + sudo_lbuf_append(&trace_lbuf, "%s", msg); + if (strchr(msg, '\n') != NULL) + { + /* We already parsed the newline so sudolineno is off by one. */ + sudo_debug_printf2(NULL, NULL, 0, + sudo_debug_subsys|SUDO_DEBUG_DEBUG, "sudoerslex: %s:%d: %s", + sudoers, sudolineno - 1, trace_lbuf.buf); + trace_lbuf.len = 0; + } } return 0; } diff --git a/plugins/sudoers/toke.l b/plugins/sudoers/toke.l index 2f062ff129..9db2a33bd8 100644 --- a/plugins/sudoers/toke.l +++ b/plugins/sudoers/toke.l @@ -750,6 +750,14 @@ sha512 { return SHA512_TOK; } +list { + /* No command line args. */ + LEXTRACE("COMMAND "); + if (!fill_cmnd(sudoerstext, sudoersleng)) + yyterminate(); + return COMMAND; + } /* sudo -l -U otheruser */ + sudoedit { BEGIN GOTCMND; LEXTRACE("COMMAND "); @@ -1364,13 +1372,18 @@ sudoers_trace_print(const char *msg) int sudoers_trace_print(const char *msg) { - sudo_lbuf_append(&trace_lbuf, "%s", msg); - if (strchr(msg, '\n') != NULL) - { - /* We already parsed the newline so sudolineno is off by one. */ - sudo_debug_printf2(NULL, NULL, 0, SUDOERS_DEBUG_PARSER|SUDO_DEBUG_DEBUG, - "sudoerslex: %s:%d: %s", sudoers, sudolineno - 1, trace_lbuf.buf); - trace_lbuf.len = 0; + const int sudo_debug_subsys = SUDOERS_DEBUG_PARSER; + + if (sudo_debug_needed(SUDO_DEBUG_DEBUG)) { + sudo_lbuf_append(&trace_lbuf, "%s", msg); + if (strchr(msg, '\n') != NULL) + { + /* We already parsed the newline so sudolineno is off by one. */ + sudo_debug_printf2(NULL, NULL, 0, + sudo_debug_subsys|SUDO_DEBUG_DEBUG, "sudoerslex: %s:%d: %s", + sudoers, sudolineno - 1, trace_lbuf.buf); + trace_lbuf.len = 0; + } } return 0; } diff --git a/plugins/sudoers/toke_util.c b/plugins/sudoers/toke_util.c index 8860fa431e..d38ae96ca6 100644 --- a/plugins/sudoers/toke_util.c +++ b/plugins/sudoers/toke_util.c @@ -51,7 +51,7 @@ copy_string(char *dst, const char *src, size_t len) while (len--) { if (*src == '\\' && len) { - if (src[1] == 'x' && len >= 3 && (h = hexchar(src + 2)) != -1) { + if (src[1] == 'x' && len >= 3 && (h = sudo_hexchar(src + 2)) != -1) { *dst++ = h; src += 4; len -= 3; diff --git a/plugins/sudoers/tsdump.c b/plugins/sudoers/tsdump.c index db15f7b633..abe56e8134 100644 --- a/plugins/sudoers/tsdump.c +++ b/plugins/sudoers/tsdump.c @@ -50,10 +50,10 @@ union timestamp_entry_storage { sudo_dso_public int main(int argc, char *argv[]); -static sudo_noreturn void usage(void); static void dump_entry(struct timestamp_entry *entry, off_t pos); static bool valid_entry(union timestamp_entry_storage *u, off_t pos); static bool convert_entry(union timestamp_entry_storage *record, struct timespec *off); +sudo_noreturn static void usage(void); /* * tsdump: a simple utility to dump the contents of a time stamp file. diff --git a/plugins/sudoers/tsgetgrpw.c b/plugins/sudoers/tsgetgrpw.c index 481cb33708..19fb798c47 100644 --- a/plugins/sudoers/tsgetgrpw.c +++ b/plugins/sudoers/tsgetgrpw.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2005, 2008, 2010-2015 + * Copyright (c) 2005, 2008, 2010-2015, 2022 * Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any @@ -67,8 +67,8 @@ testsudoers_setpwfile(const char *file) testsudoers_endpwent(); } -void -testsudoers_setpwent(void) +static int +open_passwd(int reset) { if (pwf == NULL) { pwf = fopen(pwfile, "r"); @@ -78,10 +78,27 @@ testsudoers_setpwent(void) pwf = NULL; } } - } else { + if (pwf == NULL) + return 0; + } else if (reset) { rewind(pwf); } - pw_stayopen = 1; + return 1; +} + +int +testsudoers_setpassent(int stayopen) +{ + if (!open_passwd(1)) + return 0; + pw_stayopen = stayopen; + return 1; +} + +void +testsudoers_setpwent(void) +{ + testsudoers_setpassent(0); } void @@ -104,6 +121,9 @@ testsudoers_getpwent(void) char *cp, *colon; const char *errstr; + if (!open_passwd(0)) + return NULL; + next_entry: if ((colon = fgets(pwbuf, sizeof(pwbuf), pwf)) == NULL) return NULL; @@ -151,16 +171,8 @@ testsudoers_getpwnam(const char *name) { struct passwd *pw; - if (pwf == NULL) { - if ((pwf = fopen(pwfile, "r")) == NULL) - return NULL; - if (fcntl(fileno(pwf), F_SETFD, FD_CLOEXEC) == -1) { - fclose(pwf); - return NULL; - } - } else { - rewind(pwf); - } + if (!open_passwd(1)) + return NULL; while ((pw = testsudoers_getpwent()) != NULL) { if (strcmp(pw->pw_name, name) == 0) break; @@ -177,16 +189,8 @@ testsudoers_getpwuid(uid_t uid) { struct passwd *pw; - if (pwf == NULL) { - if ((pwf = fopen(pwfile, "r")) == NULL) - return NULL; - if (fcntl(fileno(pwf), F_SETFD, FD_CLOEXEC) == -1) { - fclose(pwf); - return NULL; - } - } else { - rewind(pwf); - } + if (!open_passwd(1)) + return NULL; while ((pw = testsudoers_getpwent()) != NULL) { if (pw->pw_uid == uid) break; @@ -203,11 +207,11 @@ testsudoers_setgrfile(const char *file) { grfile = file; if (grf != NULL) - endgrent(); + testsudoers_endgrent(); } -void -testsudoers_setgrent(void) +static int +open_group(int reset) { if (grf == NULL) { grf = fopen(grfile, "r"); @@ -217,10 +221,27 @@ testsudoers_setgrent(void) grf = NULL; } } - } else { + if (grf == NULL) + return 0; + } else if (reset) { rewind(grf); } - gr_stayopen = 1; + return 1; +} + +int +testsudoers_setgroupent(int stayopen) +{ + if (!open_group(1)) + return 0; + gr_stayopen = stayopen; + return 1; +} + +void +testsudoers_setgrent(void) +{ + testsudoers_setgroupent(0); } void @@ -244,6 +265,9 @@ testsudoers_getgrent(void) const char *errstr; int n; + if (!open_group(0)) + return NULL; + next_entry: if ((colon = fgets(grbuf, sizeof(grbuf), grf)) == NULL) return NULL; @@ -276,7 +300,7 @@ testsudoers_getgrent(void) gr.gr_mem[n] = cp; cp = strtok_r(NULL, ",", &last); } - gr.gr_mem[n++] = NULL; + gr.gr_mem[n] = NULL; } else gr.gr_mem = NULL; return &gr; @@ -287,16 +311,8 @@ testsudoers_getgrnam(const char *name) { struct group *gr; - if (grf == NULL) { - if ((grf = fopen(grfile, "r")) == NULL) - return NULL; - if (fcntl(fileno(grf), F_SETFD, FD_CLOEXEC) == -1) { - fclose(grf); - grf = NULL; - } - } else { - rewind(grf); - } + if (!open_group(1)) + return NULL; while ((gr = testsudoers_getgrent()) != NULL) { if (strcmp(gr->gr_name, name) == 0) break; @@ -313,16 +329,8 @@ testsudoers_getgrgid(gid_t gid) { struct group *gr; - if (grf == NULL) { - if ((grf = fopen(grfile, "r")) == NULL) - return NULL; - if (fcntl(fileno(grf), F_SETFD, FD_CLOEXEC) == -1) { - fclose(grf); - grf = NULL; - } - } else { - rewind(grf); - } + if (!open_group(1)) + return NULL; while ((gr = testsudoers_getgrent()) != NULL) { if (gr->gr_gid == gid) break; diff --git a/plugins/sudoers/tsgetgrpw.h b/plugins/sudoers/tsgetgrpw.h index 826189b392..7662e02f92 100644 --- a/plugins/sudoers/tsgetgrpw.h +++ b/plugins/sudoers/tsgetgrpw.h @@ -30,6 +30,7 @@ void testsudoers_setgrfile(const char *); void testsudoers_setgrent(void); void testsudoers_endgrent(void); +int testsudoers_setgroupent(int); struct group *testsudoers_getgrent(void); struct group *testsudoers_getgrnam(const char *); struct group *testsudoers_getgrgid(gid_t); @@ -37,6 +38,7 @@ struct group *testsudoers_getgrgid(gid_t); void testsudoers_setpwfile(const char *); void testsudoers_setpwent(void); void testsudoers_endpwent(void); +int testsudoers_setpassent(int); struct passwd *testsudoers_getpwent(void); struct passwd *testsudoers_getpwnam(const char *); struct passwd *testsudoers_getpwuid(uid_t); diff --git a/plugins/sudoers/visudo.c b/plugins/sudoers/visudo.c index 3f43382e4b..425071afde 100644 --- a/plugins/sudoers/visudo.c +++ b/plugins/sudoers/visudo.c @@ -96,9 +96,9 @@ static bool reparse_sudoers(char *, int, char **, bool, bool); static int run_command(const char *, char *const *); static void parse_sudoers_options(void); static void setup_signals(void); -static sudo_noreturn void help(void); -static sudo_noreturn void usage(void); static void visudo_cleanup(void); +sudo_noreturn static void help(void); +sudo_noreturn static void usage(void); extern void get_hostname(void); @@ -544,7 +544,7 @@ edit_sudoers(struct sudoersfile *sp, char *editor, int editor_argc, } editor_argv[ac++] = (char *)"--"; editor_argv[ac++] = sp->tpath; - editor_argv[ac++] = NULL; + editor_argv[ac] = NULL; /* * Do the edit: @@ -975,8 +975,6 @@ check_syntax(const char *file, bool quiet, bool strict, bool check_owner, sudo_warn(U_("unable to open %s"), file); goto done; } - if (!init_defaults()) - sudo_fatalx("%s", U_("unable to initialize sudoers default values")); init_parser(file, quiet, true); sudoers_setlocale(SUDOERS_LOCALE_SUDOERS, &oldlocale); if (sudoersparse() && !parse_error) { diff --git a/po/cs.mo b/po/cs.mo index bc3aaacf81..68d174d8fb 100644 Binary files a/po/cs.mo and b/po/cs.mo differ diff --git a/po/cs.po b/po/cs.po index 6c8d5d7544..9473fab38e 100644 --- a/po/cs.po +++ b/po/cs.po @@ -2,14 +2,14 @@ # This file is put in the public domain. # Todd C. Miller , 2011-2013 # Petr Pisar , 2013, 2014, 2015, 2016, 2017, 2018, 2019. -# Petr Pisar , 2020, 2021, 2022. +# Petr Pisar , 2020, 2021, 2022, 2023. # msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12b2\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" -"PO-Revision-Date: 2022-10-11 20:57+02:00\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 21:34+01:00\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" "Language: cs\n" @@ -32,74 +32,74 @@ msgid "unable to restore registry" msgstr "registr nelze obnovit" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "nelze alokovat paměť" @@ -114,9 +114,9 @@ msgstr "nelze získat údaje o %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s existuje, ale nejedná se o adresář (0%o)" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "%s nelze otevřít" @@ -131,7 +131,7 @@ msgstr "adresář %.*s nelze vytvořit" msgid "unable to open %.*s" msgstr "%.*s nelze otevřít" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "regulární výraz je příliš dlouhý" @@ -152,43 +152,43 @@ msgstr "hodnota je příliš velká" msgid "value too small" msgstr "hodnota je příliš malá" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "neplatná hodnota Path „%s“ v %s, řádek %u" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "neplatná hodnota pro %s „%s“ v %s, řádek %u" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "nepodporovaný zdroj skupin „%s“ v %s, řádek %u" # This is about maximal GID. English text "max groups" is wrong. -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "neplatné maximum skupin „%s“ v %s, řádek %u" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s není obyčejný soubor" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s je vlastněn UID %u, avšak UID by mělo být %u" -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s je zapisovatelný pro všechny" -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s je zapisovatelný pro skupinu" @@ -284,8 +284,8 @@ msgstr "pracovní adresář nelze změnit na %s" msgid "starting from %s" msgstr "začíná se od %s" -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -305,60 +305,60 @@ msgstr "z PRIV_LIMIT nelze odstranit PRIV_PROC_EXEC" #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "událost nelze přidat do fronty" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "příkaz nenastaven bezpečnostní politikou" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "příkaz zamítnut politikou" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "chyba schvalovacího modulu" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "chyba modulu s politikou" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "neplatný požadavek PolicyCheckRequest" -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "požadavek od klienta je příliš dlouhý: %zu" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "nelze rozbalit %s o velikosti %zu" -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "nečekaná hodnota type_case %d v %s od %s" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "zpráva serveru je příliš dlouhá: %zu" @@ -381,93 +381,93 @@ msgstr "chyba pozastavování protokolu" msgid "error changing window size" msgstr "chyba při měnění velikosti okna" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "chyba při čtení z dvojice socketů" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "neočekávaný druh odpovědi na zpětném kanálu: %d" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "řídicí terminál nelze nastavit" -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "nelze vytvořit rouru" -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "od rodiče nelze přijmout zprávu" -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "nelze vytvořit potomka" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "nelze obnovit značku TTY" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "%s nelze spustit" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "modul s politikami zrušil inicializaci relace" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "nelze vytvořit sockety" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "chyba ve smyčce s událostmi" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 -#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 #: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "vnitřní chyba, přetečení v %s" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "nelze nastavit registry pro proces %d" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "proces %d nečekaně skončil" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "nelze nastavit filtr seccomp" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "argument interpretru, očekáváno „%s“, obdrženo „%s“" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "cesta neodpovídá, očekáváno „%s“, obdrženo „%s“" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "%s[%d] neodpovídá, očekáváno „%s“, obdrženo „%s“" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "proces %d má nečekaný stav 0x%x" @@ -486,67 +486,56 @@ msgstr "nelze získat registry procesu %d" msgid "unable to allocate pty" msgstr "nelze alokovat PTY" -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "nelze obnovit obsluhu signálu %d" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "dohlížejícímu procesu nelze odeslat zprávu" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "chyba v %s na řádku %d při zavádění modulu „%s“" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s musí být vlastněn UID %d" - -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "%s musí být zapisovatelný jen vlastníkem" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "ignoruje je opakovaný modul „%s“ v %s na řádku %d" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "%s nelze zavést: %s" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "v %s nelze nalézt symbol „%s“" -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "neslučitelná hlavní verze modulu %d (očekáváno %d) nalezena v %s" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "ignoruje se modul politiky „%s“ v %s na řádku %d" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "lze zadat pouze jeden modul s politikou" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "v %2$s nalezen neznámý druh modulu %1$d" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "modul s politikou %s neobsahuje metodu check_policy" @@ -951,133 +940,133 @@ msgstr "nepřekonatelná chyba, moduly nelze zavést" msgid "plugin did not return a command to execute" msgstr "modul nevrátil příkaz k provedení" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "neočekávaný režim programu sudo 0x%x" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "neexistujete v databázi %s" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "nelze určit terminál" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "Je nastaven příznak „žádná další oprávnění“, což brání sudu, aby běželo jako root" -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "Běží-li sudo v kontejneru, můžete potřebovat upravit nastavení kontejneru, aby se tento příznak vypnul." -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s musí být vlastněn UID %d a mít nastaven bit setuid" -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "efektivní UID není %d, nalézá se %s na souborovém systému s nastavenou volbou „nosuid“ nebo na souborovém systému NFS bez práv roota?" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "efektivní UID není %d, je sudo nainstalované jako setuid vlastněné rootem?" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "nelze nastavit ID doplňkových skupin" -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "efektivní GID nelze nastavit na %u" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "GID nelze nastavit na %u" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "pole argumentů nenastaveno bezpečnostní politikou" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "pole proměnných prostředí nenastaveno bezpečnostní politikou" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "neočekávaný důvod ukončení potomka: %d" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "modul s politikami nelze inicializovat" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "modulu s politikami %s chybí metoda „check_policy“" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "modul s politikami %s nepodporuje získání seznamu oprávnění" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "modul s politikami %s nepodporuje přepínač -v" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "modul s politikami %s nepodporuje přepínače -k/-K" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "chyba při inicializaci vstupně-výstupního modulu %s" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "chyba při inicializaci vstupně-výstupního modulu" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "chyba při inicializaci auditního modulu %s" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s nelze zaznamenat chybovou událost%s%s" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s nelze zaznamenat přijímací událost%s%s " -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "chyba auditního modulu" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s nelze zaznamenat zamítací událost%s%s " -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "chyba při inicializaci schvalovacího modulu %s" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "příkaz zamítnut schvalovatelem" @@ -1120,16 +1109,20 @@ msgstr "dočasné soubory nelze zkopírovat zpět na jejich původní místo" msgid "unable to copy some of the temporary files back to their original location" msgstr "některé z dočasných souborů nelze zkopírovat zpět na jejich původní místo" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "UID nelze změnit na roota (%u)" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "chyba modulu: neplatný seznam souborů pro program sudoedit" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" -msgstr "chyba modulu: programu sudoedit chybí seznam souborů" +msgstr "chyba modulu: chybí seznam souborů pro program sudoedit" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "nelze přečíst hodiny" @@ -1184,6 +1177,12 @@ msgstr "standardní vstup nelze zduplikovat voláním dup2" msgid "unable to restore stdin" msgstr "standardní vstup nelze obnovit" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s musí být vlastněn UID %d" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s musí být zapisovatelný jen vlastníkem" + #~ msgid "insufficient space for execve arguments" #~ msgstr "nedostatek místa pro argumenty volání execve" diff --git a/po/de.mo b/po/de.mo index 2fa91ba9c6..f8e811f72b 100644 Binary files a/po/de.mo and b/po/de.mo differ diff --git a/po/de.po b/po/de.po index ee2307aa1e..ba74997441 100644 --- a/po/de.po +++ b/po/de.po @@ -1,13 +1,13 @@ # German translation for sudo. # This file is distributed under the same license as the sudo package. # Jakob Kramer , 2012, 2013-2014. -# Mario Blättermann , 2012, 2014-2017, 2019-2022. +# Mario Blättermann , 2012, 2014-2017, 2019-2023. msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12b2\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" -"PO-Revision-Date: 2022-10-12 20:10+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 18:48+0100\n" "Last-Translator: Mario Blättermann \n" "Language-Team: German \n" "Language: de\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 22.08.1\n" +"X-Generator: Lokalize 22.12.0\n" #: lib/util/aix.c:89 lib/util/aix.c:169 msgid "unable to open userdb" @@ -32,74 +32,74 @@ msgid "unable to restore registry" msgstr "Registrierungsdatenbank konnte nicht wiederhergestellt werden" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "Speicher konnte nicht zugewiesen werden" @@ -114,9 +114,9 @@ msgstr "stat konnte nicht auf %.*s angewendet werden" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s existiert, aber ist kein Verzeichnis (0%o)" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "%s konnte nicht geöffnet werden" @@ -131,7 +131,7 @@ msgstr "Verzeichnis %.*s konnte nicht erstellt werden" msgid "unable to open %.*s" msgstr "%.*s konnte nicht geöffnet werden" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "regulärer Ausdruck ist zu groß" @@ -152,42 +152,42 @@ msgstr "Wert zu groß" msgid "value too small" msgstr "Wert zu klein" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "Ungültiger Pfad-Wert »%s« in %s, Zeile %u" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "Ungültiger Wert für %s »%s« in %s, Zeile %u" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "Nicht unterstützte Gruppenquelle »%s« in %s, Zeile %u" -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "Ungültige Maximalzahl an Gruppen »%s« in %s, Zeile %u" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s ist keine reguläre Datei" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s gehört Benutzer mit UID %u, sollte allerdings %u gehören" -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s kann von allen verändert werden" -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s kann von der Gruppe verändert werden" @@ -281,8 +281,8 @@ msgstr "In Verzeichnis »%s« konnte nicht gewechselt werden" msgid "starting from %s" msgstr "beginnend mit %s" -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -302,60 +302,60 @@ msgstr "PRIV_PROC_EXEC konnte nicht von PRIV_LIMIT entfernt werden" #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "Ereignis konnte nicht zur Warteschlange hinzugefügt werden" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "Befehl wurde durch Sicherheitsregelwerk nicht gesetzt" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "Befehl wurde durch Regelwerk abgewiesen" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "Genehmigungs-Plugin-Fehler" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "Regelwerk-Plugin-Fehler" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "ungültige PolicyCheckRequest" -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "Client-Anfrage ist zu groß: %zu" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "%s, Größe %zu, kann nicht entpackt werden" -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "unerwarteter Wert %d für type_case in %s aus %s" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "Server-Meldung ist zu groß: %zu" @@ -378,93 +378,93 @@ msgstr "Fehler bei der Aussetzung der Protokollierung" msgid "error changing window size" msgstr "Fehler beim Ändern der Fenstergröße" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "Fehler beim Lesen des Socket-Paars" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "Unerwarteter Antworttyp auf Rückmeldungskanal: %d" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "Kontrollierendes TTY konnte nicht gesetzt werden" -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "Weiterleitung konnte nicht erstellt werden" -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "Die Nachricht konnte nicht empfangen werden" -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "Es konnte nicht geforkt werden" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "TTY-Kennzeichnung konnte nicht wiederhergestellt werden" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "%s konnte nicht ausgeführt werden" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "Regelwerks-Plugin konnte Sitzung nicht initialisieren" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "Sockets konnten nicht hergestellt werden" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "Fehler in Ereignisschleife" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 -#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 #: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "Interner Fehler: %s-Überlauf" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "Register konnten für Prozess %d nicht gesetzt werden" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "Prozess %d wurde unerwartet beendet" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "seccomp-Filter konnte nicht gesetzt werden" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "Interpreter-Argument: »%s« wurde erwartet, »%s« erhalten" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "Pfadname passt nicht, »%s« wurde erwartet, »%s« erhalten" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "%s[%d] passt nicht, »%s« wurde erwartet, »%s« erhalten" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "Prozess %d hat den unerwarteten Status 0x%x" @@ -483,67 +483,56 @@ msgstr "Register konnten für Prozess %d nicht erhalten werden" msgid "unable to allocate pty" msgstr "PTY konnte nicht vergeben werden" -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "Handler für Signal %d konnte nicht wiederhergestellt werden" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "Die Nachricht konnte nicht an den überwachenden Prozess verschickt werden" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "Fehler in %s, Zeile %d, während Plugin »%s« geladen wurde" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s muss Benutzer mit UID %d gehören" - -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "%s darf nur vom Besitzer beschreibbar sein" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "Doppelt vorhandenes Plugin »%s« in %s, Zeile %d, wird ignoriert" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "»%s« konnte nicht geladen werden: %s" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "Symbol »%s« konnte in %s nicht gefunden werden" -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "Inkompatible Hauptversion %d des Regelwerks (%d erwartet) wurde in %s gefunden" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "Regelwerks-Plugin »%s« in %s, Zeile %d, wird ignoriert" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "Nur ein einziges Regelwerks-Plugin kann geladen werden" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "Unbekannter Plugintyp %d wurde in %s gefunden" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "Das Regelwerks-Plugin %s enthält keine check_policy-Methode" @@ -952,133 +941,133 @@ msgstr "Schwerwiegender Fehler, Plugins konnten nicht geladen werden" msgid "plugin did not return a command to execute" msgstr "Plugin gab keinen auszuführenden Befehl zurück" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "Unerwarteter sudo-Modus 0x%x" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "Sie sind in der %s-Datenbank nicht enthalten" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "TTY konnte nicht ermittelt werden" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "Der Schalter »no new privileges« ist gesetzt, welcher sudo daran hindert, als Root ausgeführt zu werden." -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "Falls sudo in einem Container ausgeführt wird, könnte es nötig sein, die Containerkonfiguration anzupassen, um diesen Schalter zu deaktivieren." -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s muss dem Benutzer mit UID %d gehören und das »setuid«-Bit gesetzt haben" -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "Effektive UID ist nicht %d. Liegt %s auf einem Dateisystem mit gesetzter »nosuid«-Option oder auf einem NFS-Dateisystem ohne Root-Rechte?" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "Effektive UID ist nicht %d. Wurde sudo mit »setuid root« installiert?" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "Zusätzliche Gruppenkennungen konnten nicht gesetzt werden" -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "Effektive GID konnte nicht auf »runas«-GID %u gesetzt werden" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "GID konnte nicht auf »runas«-GID %u gesetzt werden" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "argv wurde durch Sicherheitsregelwerk nicht gesetzt" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "envp wurde durch Sicherheitsregelwerk nicht gesetzt" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "Unerwartete Abbruchbedingung eines Unterprozesses: %d" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "Regelwerks-Plugin konnte nicht initialisiert werden" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "Dem Regelwerks-Plugin %s fehlt die »check_policy«-Methode" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "Regelwerks-Plugin %s unterstützt das Auflisten von Privilegien nicht" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "Regelwerks-Plugin %s unterstützt die Option -v nicht" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "Regelwerks-Plugin %s unterstützt die Optionen -k und -K nicht" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "E/A-Plugin %s konnte nicht initialisiert werden" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "E/A-Plugin konnte nicht initialisiert werden" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "Audit-Plugin %s konnte nicht initialisiert werden" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s: Fehlerereignis%s%s konnte nicht protokolliert werden" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: Ereignis%s%s konnte für das Protokoll nicht akzeptiert werden" -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "Audit-Pluginfehler" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: Ereignis%s%s wurde vom Protokoll abgewiesen" -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "Genehmigungs-Plugin %s konnte nicht initialisiert werden" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "Befehl wurde vom Genehmigenden abgewiesen" @@ -1121,16 +1110,20 @@ msgstr "Temporäre Dateien konnten nicht an ihre ursprünglichen Orte zurück ko msgid "unable to copy some of the temporary files back to their original location" msgstr "Einige der temporären Dateien konnten nicht an ihre ursprünglichen Orte zurück kopiert werden" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "UID konnte nicht zu Root (%u) geändert werden" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "Plugin-Fehler: ungültige Dateiliste für sudoedit" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "Plugin-Fehler: Fehlende Dateiliste für sudoedit" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "Die Uhr konnte nicht gelesen werden" @@ -1184,3 +1177,9 @@ msgstr "dup2 konnte nicht auf die Standardeingabe angewendet werden" #: src/utmp.c:293 msgid "unable to restore stdin" msgstr "Standardeingabe konnte nicht wiederhergestellt werden" + +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s muss Benutzer mit UID %d gehören" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s darf nur vom Besitzer beschreibbar sein" diff --git a/po/eo.mo b/po/eo.mo index 038e1200c0..586206677b 100644 Binary files a/po/eo.mo and b/po/eo.mo differ diff --git a/po/eo.po b/po/eo.po index ac8c7bb1d2..d3f63b4130 100644 --- a/po/eo.po +++ b/po/eo.po @@ -1,14 +1,14 @@ # Esperanto translations for sudo package. # This file is distributed under the same license as the sudo package. -# Keith Bowes , 2012, 2020-2022 +# Keith Bowes , 2012, 2020-2023 # Felipe Castro , 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020. # msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.11b1\n" +"Project-Id-Version: sudo 1.9.12b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-05-27 08:39-0600\n" -"PO-Revision-Date: 2022-05-29 16:52-0400\n" +"POT-Creation-Date: 2022-10-09 09:48-0600\n" +"PO-Revision-Date: 2023-01-01 15:34-0500\n" "Last-Translator: Keith Bowes \n" "Language-Team: Esperanto \n" "Language: eo\n" @@ -33,76 +33,75 @@ msgid "unable to restore registry" msgstr "ne eblas restarigi registrejon" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:218 -#: lib/util/sudo_conf.c:304 lib/util/sudo_conf.c:381 lib/util/sudo_conf.c:665 -#: src/conversation.c:80 src/exec_monitor.c:205 src/exec_monitor.c:458 +#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 +#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 #: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 #: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 #: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:224 src/exec_nopty.c:233 -#: src/exec_nopty.c:240 src/exec_nopty.c:247 src/exec_nopty.c:254 -#: src/exec_nopty.c:261 src/exec_nopty.c:268 src/exec_nopty.c:275 -#: src/exec_nopty.c:282 src/exec_nopty.c:289 src/exec_nopty.c:296 -#: src/exec_nopty.c:303 src/exec_nopty.c:311 src/exec_nopty.c:549 -#: src/exec_preload.c:143 src/exec_preload.c:204 src/exec_ptrace.c:632 -#: src/exec_ptrace.c:730 src/exec_ptrace.c:895 src/exec_pty.c:845 -#: src/exec_pty.c:854 src/exec_pty.c:911 src/exec_pty.c:1075 -#: src/exec_pty.c:1265 src/exec_pty.c:1274 src/exec_pty.c:1281 -#: src/exec_pty.c:1288 src/exec_pty.c:1295 src/exec_pty.c:1302 -#: src/exec_pty.c:1309 src/exec_pty.c:1316 src/exec_pty.c:1323 -#: src/exec_pty.c:1330 src/exec_pty.c:1337 src/exec_pty.c:1345 -#: src/exec_pty.c:1811 src/load_plugins.c:156 src/load_plugins.c:181 -#: src/load_plugins.c:217 src/load_plugins.c:449 src/load_plugins.c:455 -#: src/parse_args.c:169 src/parse_args.c:190 src/parse_args.c:264 -#: src/parse_args.c:613 src/parse_args.c:635 src/parse_args.c:660 -#: src/preserve_fds.c:46 src/preserve_fds.c:131 src/selinux.c:89 -#: src/selinux.c:362 src/selinux.c:474 src/selinux.c:485 src/sesh.c:113 -#: src/sesh.c:146 src/sesh.c:152 src/sesh.c:159 src/sesh.c:165 src/sesh.c:410 -#: src/sudo.c:639 src/sudo.c:712 src/sudo.c:722 src/sudo.c:748 src/sudo.c:771 -#: src/sudo.c:780 src/sudo.c:789 src/sudo.c:806 src/sudo.c:848 src/sudo.c:858 -#: src/sudo.c:891 src/sudo.c:1100 src/sudo.c:1121 src/sudo.c:1414 -#: src/sudo.c:1583 src/sudo.c:1810 src/sudo.c:2144 src/sudo_edit.c:89 -#: src/sudo_edit.c:149 src/sudo_edit.c:429 src/sudo_edit.c:438 -#: src/sudo_edit.c:539 src/sudo_edit.c:546 src/sudo_edit.c:677 -#: src/sudo_edit.c:697 src/sudo_intercept_common.c:113 -#: src/sudo_intercept_common.c:317 +#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 +#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 +#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 +#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 +#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 +#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 +#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 +#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 +#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 +#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 +#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 +#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 +#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 +#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 +#: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 +#: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 +#: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 +#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 +#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 +#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 +#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 +#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 #: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:219 lib/util/sudo_conf.c:304 lib/util/sudo_conf.c:381 -#: lib/util/sudo_conf.c:665 src/conversation.c:81 src/exec_intercept.c:68 -#: src/exec_intercept.c:336 src/exec_intercept.c:359 src/exec_intercept.c:367 -#: src/exec_intercept.c:392 src/exec_intercept.c:398 src/exec_intercept.c:407 -#: src/exec_intercept.c:413 src/exec_intercept.c:478 src/exec_intercept.c:588 -#: src/exec_intercept.c:707 src/exec_monitor.c:458 src/exec_monitor.c:464 -#: src/exec_monitor.c:472 src/exec_monitor.c:480 src/exec_monitor.c:487 -#: src/exec_monitor.c:494 src/exec_monitor.c:501 src/exec_monitor.c:508 -#: src/exec_monitor.c:515 src/exec_monitor.c:522 src/exec_monitor.c:529 -#: src/exec_nopty.c:224 src/exec_nopty.c:233 src/exec_nopty.c:240 -#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 -#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 -#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 -#: src/exec_nopty.c:311 src/exec_preload.c:143 src/exec_preload.c:204 -#: src/exec_ptrace.c:632 src/exec_pty.c:845 src/exec_pty.c:854 -#: src/exec_pty.c:911 src/exec_pty.c:1265 src/exec_pty.c:1274 -#: src/exec_pty.c:1281 src/exec_pty.c:1288 src/exec_pty.c:1295 -#: src/exec_pty.c:1302 src/exec_pty.c:1309 src/exec_pty.c:1316 -#: src/exec_pty.c:1323 src/exec_pty.c:1330 src/exec_pty.c:1337 -#: src/exec_pty.c:1345 src/exec_pty.c:1811 src/load_plugins.c:156 -#: src/load_plugins.c:181 src/load_plugins.c:217 src/load_plugins.c:449 -#: src/load_plugins.c:455 src/parse_args.c:169 src/parse_args.c:191 -#: src/parse_args.c:264 src/parse_args.c:613 src/parse_args.c:635 -#: src/parse_args.c:660 src/preserve_fds.c:46 src/preserve_fds.c:131 -#: src/selinux.c:89 src/selinux.c:362 src/selinux.c:474 src/selinux.c:485 -#: src/sesh.c:113 src/sesh.c:411 src/sudo.c:230 src/sudo.c:639 src/sudo.c:891 -#: src/sudo.c:1100 src/sudo.c:1121 src/sudo.c:1414 src/sudo.c:1583 -#: src/sudo.c:1810 src/sudo.c:2144 src/sudo_edit.c:89 src/sudo_edit.c:149 -#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:539 -#: src/sudo_edit.c:546 src/sudo_edit.c:677 src/sudo_edit.c:697 -#: src/sudo_intercept_common.c:113 src/sudo_intercept_common.c:317 +#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 +#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 +#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 +#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 +#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 +#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 +#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 +#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 +#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 +#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 +#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 +#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 +#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 +#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 +#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 +#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 +#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 +#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 +#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 +#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 +#: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 +#: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 +#: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 +#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 +#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 +#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 +#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "ne eblas generi memoron" @@ -116,23 +115,23 @@ msgstr "ne eblas apliki stat al %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s ekzistas sed ne estas dosierujo (0%o)" -#: lib/util/mkdir_parents.c:102 lib/util/sudo_conf.c:704 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:559 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 +#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "ne eblas malfermi %s" -#: lib/util/mkdir_parents.c:119 lib/util/mkdir_parents.c:127 -#: lib/util/mkdir_parents.c:136 -#, c-format -msgid "unable to open %.*s" -msgstr "ne eblas malfermi %.*s" - -#: lib/util/mkdir_parents.c:157 +#: lib/util/mkdir_parents.c:120 lib/util/mkdir_parents.c:160 #, c-format msgid "unable to mkdir %.*s" msgstr "ne eblas apliki mkdir al %.*s" +#: lib/util/mkdir_parents.c:130 lib/util/mkdir_parents.c:139 +#, c-format +msgid "unable to open %.*s" +msgstr "ne eblas malfermi %.*s" + #: lib/util/regex.c:103 msgid "regular expression too large" msgstr "regulesprimo tra grandas" @@ -141,8 +140,8 @@ msgstr "regulesprimo tra grandas" msgid "Unknown signal" msgstr "Nekonata signalo" -#: lib/util/strtoid.c:87 lib/util/strtomode.c:52 lib/util/strtonum.c:148 -#: lib/util/strtonum.c:187 src/sesh.c:146 src/sesh.c:159 +#: lib/util/strtoid.c:84 lib/util/strtomode.c:52 lib/util/strtonum.c:148 +#: lib/util/strtonum.c:187 src/sesh.c:240 src/sesh.c:253 msgid "invalid value" msgstr "nevalida valoro" @@ -154,86 +153,86 @@ msgstr "valoro tro grandas" msgid "value too small" msgstr "valoro tro malgrandas" -#: lib/util/sudo_conf.c:237 +#: lib/util/sudo_conf.c:238 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "nevalida voja valoro \"%s\" en %s, linio %u" -#: lib/util/sudo_conf.c:403 lib/util/sudo_conf.c:419 lib/util/sudo_conf.c:472 +#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "nevalida valoro por %s \"%s\" en %s, linio %u" -#: lib/util/sudo_conf.c:440 +#: lib/util/sudo_conf.c:441 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "nekomprenata grupa fonto \"%s\" en %s, linio %u" -#: lib/util/sudo_conf.c:456 +#: lib/util/sudo_conf.c:457 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "nevalidaj maksimumaj grupoj \"%s\" en %s, linio %u" -#: lib/util/sudo_conf.c:681 src/copy_file.c:150 -#, c-format -msgid "unable to stat %s" -msgstr "ne eblas apliki stat al %s" - -#: lib/util/sudo_conf.c:684 +#: lib/util/sudo_conf.c:692 #, c-format msgid "%s is not a regular file" msgstr "%s estas ne regula dosiero" -#: lib/util/sudo_conf.c:687 src/copy_file.c:163 +#: lib/util/sudo_conf.c:695 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s estas estrata de uid %u, devas esti %u" -#: lib/util/sudo_conf.c:691 +#: lib/util/sudo_conf.c:699 #, c-format msgid "%s is world writable" msgstr "%s estas skribebla de ĉiuj" -#: lib/util/sudo_conf.c:694 +#: lib/util/sudo_conf.c:702 #, c-format msgid "%s is group writable" msgstr "%s estas skribebla de la tuta grupo" -#: src/apparmor.c:79 +#: src/apparmor.c:85 msgid "failed to determine AppArmor confinement" msgstr "ne povas determini AppArmon-enfermon." -#: src/apparmor.c:87 +#: src/apparmor.c:93 #, c-format msgid "unable to change AppArmor profile to %s" msgstr "ne eblas ŝanĝi AppArmor-profilon al %s" -#: src/copy_file.c:93 +#: src/copy_file.c:94 #, c-format msgid "%s: truncate %s to zero bytes? (y/n) [n] " msgstr "%s: ĉu distranĉi %s ĝis nul bajto? (y/n) [n]" -#: src/copy_file.c:97 +#: src/copy_file.c:98 #, c-format msgid "not overwriting %s" msgstr "ne anstataŭigos je %s" -#: src/copy_file.c:119 +#: src/copy_file.c:120 #, c-format msgid "unable to read from %s" msgstr "ne eblas legi ell %s" -#: src/copy_file.c:136 src/sudo_edit.c:320 +#: src/copy_file.c:137 src/sudo_edit.c:320 #, c-format msgid "unable to write to %s" msgstr "ne eblas skribi al %s" -#: src/copy_file.c:154 src/sesh.c:218 src/sudo_edit.c:197 +#: src/copy_file.c:151 +#, c-format +msgid "unable to stat %s" +msgstr "ne eblas apliki stat al %s" + +#: src/copy_file.c:155 src/sesh.c:312 src/sudo_edit.c:197 #, c-format msgid "%s: not a regular file" msgstr "%s: ne regula dosiero" -#: src/copy_file.c:158 +#: src/copy_file.c:159 #, c-format msgid "%s: bad file mode: 0%o" msgstr "%s: malbona dosiera reĝimo: 0%o" @@ -242,60 +241,59 @@ msgstr "%s: malbona dosiera reĝimo: 0%o" msgid "unable to restore current working directory" msgstr "ne eblas restarigi nune kurantan dosierujon" -#: src/exec.c:103 +#: src/exec.c:111 msgid "unable to set privileges" msgstr "ne eblas agordi rajtojn" -#: src/exec.c:109 src/exec.c:114 +#: src/exec.c:117 src/exec.c:122 msgid "unable to set limit privileges" msgstr "ne eblas limigi rajtojn" -#: src/exec.c:137 +#: src/exec.c:145 #, c-format msgid "unknown login class %s" msgstr "nekonata ensaluta klaso %s" -#: src/exec.c:149 +#: src/exec.c:157 msgid "unable to set user context" msgstr "ne eblas elekti uzanto-kuntekston" -#: src/exec.c:165 +#: src/exec.c:173 msgid "unable to set process priority" msgstr "ne eblas elekti procezan prioritaton" -#: src/exec.c:182 +#: src/exec.c:190 #, c-format msgid "unable to change root to %s" msgstr "ne eblas ŝanĝi ĉefuzanton al %s" -#: src/exec.c:195 src/exec.c:201 src/exec.c:208 +#: src/exec.c:203 src/exec.c:209 src/exec.c:216 #, c-format msgid "unable to change to runas uid (%u, %u)" msgstr "ne eblas ŝanĝi al plenumigkiela uid (%u, %u)" -#: src/exec.c:226 +#: src/exec.c:238 src/sesh.c:199 #, c-format msgid "unable to change directory to %s" msgstr "ne eblas ŝanĝi dosierujon al %s" -#: src/exec.c:230 +#: src/exec.c:243 #, c-format msgid "starting from %s" msgstr "komenciĝas de %s" -#: src/exec.c:312 src/exec_monitor.c:575 src/exec_monitor.c:577 -#: src/exec_monitor.c:648 src/exec_nopty.c:439 src/exec_pty.c:586 -#: src/exec_pty.c:1447 src/exec_pty.c:1449 src/signal.c:144 src/signal.c:151 -#: src/signal.c:165 src/suspend_nopty.c:89 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 +#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" msgstr "ne eblas difini traktilon por la signalo %d" -#: src/exec.c:391 +#: src/exec.c:422 msgid "intercept mode is not supported with SELinux RBAC on this system" msgstr "interkapta reĝo ne estas regata kun SELinux-RABC en ĉi tiu sistemo" -#: src/exec.c:396 +#: src/exec.c:427 msgid "unable to log sub-commands with SELinux RBAC on this system" msgstr "ne eblas protokoli subkomandojn kun SELinux-RBAC en ĉi tiu sistemo" @@ -303,58 +301,84 @@ msgstr "ne eblas protokoli subkomandojn kun SELinux-RBAC en ĉi tiu sistemo" msgid "unable to remove PRIV_PROC_EXEC from PRIV_LIMIT" msgstr "ne eblas forigi PRIV_PROC_EXEC-on de PRIV_LIMIT" -#: src/exec_intercept.c:95 src/exec_intercept.c:674 src/exec_intercept.c:864 -#: src/exec_intercept.c:876 src/exec_monitor.c:466 src/exec_monitor.c:474 -#: src/exec_monitor.c:482 src/exec_monitor.c:489 src/exec_monitor.c:496 -#: src/exec_monitor.c:503 src/exec_monitor.c:510 src/exec_monitor.c:517 -#: src/exec_monitor.c:524 src/exec_monitor.c:531 src/exec_nopty.c:226 -#: src/exec_nopty.c:235 src/exec_nopty.c:242 src/exec_nopty.c:249 -#: src/exec_nopty.c:256 src/exec_nopty.c:263 src/exec_nopty.c:270 -#: src/exec_nopty.c:277 src/exec_nopty.c:284 src/exec_nopty.c:291 -#: src/exec_nopty.c:298 src/exec_nopty.c:305 src/exec_nopty.c:313 -#: src/exec_pty.c:711 src/exec_pty.c:716 src/exec_pty.c:813 src/exec_pty.c:820 -#: src/exec_pty.c:917 src/exec_pty.c:1267 src/exec_pty.c:1276 -#: src/exec_pty.c:1283 src/exec_pty.c:1290 src/exec_pty.c:1297 -#: src/exec_pty.c:1304 src/exec_pty.c:1311 src/exec_pty.c:1318 -#: src/exec_pty.c:1325 src/exec_pty.c:1332 src/exec_pty.c:1339 -#: src/exec_pty.c:1764 src/exec_pty.c:1774 src/exec_pty.c:1819 -#: src/exec_pty.c:1826 src/exec_pty.c:1853 +#: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 +#: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 +#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 +#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 +#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 +#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 +#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 +#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 msgid "unable to add event to queue" msgstr "ne eblas aldoni al la atendovico eventon" -#: src/exec_intercept.c:344 src/sudo.c:1226 src/sudo.c:1271 src/sudo.c:1315 +#: src/exec_intercept.c:317 src/sudo.c:1018 +msgid "command not set by the security policy" +msgstr "komando ne agordita per la sekureco-regularo" + +#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 +#: src/sudo.c:1283 src/sudo.c:1327 msgid "command rejected by policy" msgstr "komando rifuzita pro konduto-regularo" -#: src/exec_intercept.c:437 src/sudo.c:1231 src/sudo.c:1276 src/sudo.c:1320 -#: src/sudo.c:1394 +#: src/exec_intercept.c:491 src/sudo.c:1925 +msgid "approval plugin error" +msgstr "eraro de aproba kromprogramo" + +#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 +#: src/sudo.c:1406 msgid "policy plugin error" msgstr "eraro de konduta kromprogramo" -#: src/exec_intercept.c:462 +#: src/exec_intercept.c:543 msgid "invalid PolicyCheckRequest" msgstr "nevalida PolicyCheckRequest" -#: src/exec_intercept.c:584 +#: src/exec_intercept.c:678 #, c-format msgid "client request too large: %zu" msgstr "klienta peto tro granda: %zu" -#: src/exec_intercept.c:622 +#: src/exec_intercept.c:720 #, c-format msgid "unable to unpack %s size %zu" msgstr "ne eblas malpaki %s, grando %zu" -#: src/exec_intercept.c:665 +#: src/exec_intercept.c:768 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "neatendita valoro %d de type_case en %s el %s" -#: src/exec_intercept.c:695 +#: src/exec_intercept.c:794 #, c-format msgid "server message too large: %zu" msgstr "servila mesaĝo tro granda: %zu" +#: src/exec_iolog.c:323 src/exec_iolog.c:363 src/exec_iolog.c:403 +#: src/exec_iolog.c:454 src/exec_iolog.c:505 +msgid "I/O plugin error" +msgstr "En/eliga kromprograma eraro" + +#: src/exec_iolog.c:327 src/exec_iolog.c:367 src/exec_iolog.c:407 +#: src/exec_iolog.c:458 src/exec_iolog.c:509 +msgid "command rejected by I/O plugin" +msgstr "komando rifuzita de en/eliga kromprogramo" + +#: src/exec_iolog.c:556 +msgid "error logging suspend" +msgstr "ni paŭzas la protokoladon de eraroj" + +#: src/exec_iolog.c:591 +msgid "error changing window size" +msgstr "eraro dum ŝanĝo de fenestro-grando" + #: src/exec_monitor.c:360 msgid "error reading from socketpair" msgstr "eraro dum legi la konektingan paron" @@ -364,224 +388,213 @@ msgstr "eraro dum legi la konektingan paron" msgid "unexpected reply type on backchannel: %d" msgstr "neatendita respondotipo ĉe la postkanalo: %d" -#: src/exec_monitor.c:593 +#: src/exec_monitor.c:585 msgid "unable to set controlling tty" msgstr "ne eblas elekti la regan tty-on" -#: src/exec_monitor.c:601 src/exec_nopty.c:382 src/exec_pty.c:1526 -#: src/exec_pty.c:1547 src/exec_pty.c:1567 src/tgetpass.c:305 +#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 +#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 +#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "ne eblas krei tubon" -#: src/exec_monitor.c:611 +#: src/exec_monitor.c:603 msgid "unable to receive message from parent" msgstr "ne eblas ricevi mesaĝon el supre" -#: src/exec_monitor.c:627 src/exec_nopty.c:422 src/exec_pty.c:1605 +#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "ne eblas forki" -#: src/exec_monitor.c:631 src/exec_monitor.c:749 src/exec_nopty.c:518 +#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 msgid "unable to restore tty label" msgstr "ne eblis reatingi tty-etikedon" -#: src/exec_monitor.c:664 src/sesh.c:123 src/sudo.c:1177 +#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 #, c-format msgid "unable to execute %s" msgstr "ne eblas plenumigi: %s" -#: src/exec_nopty.c:376 src/exec_pty.c:1456 +#: src/exec_nopty.c:542 src/exec_pty.c:1026 msgid "policy plugin failed session initialization" msgstr "konduta kromprogramo fiaskis dum seanca komenciĝo" -#: src/exec_nopty.c:391 src/exec_pty.c:1425 src/exec_pty.c:1434 +#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 msgid "unable to create sockets" msgstr "ne eblas krei konektingojn" -#: src/exec_nopty.c:506 src/exec_pty.c:1703 +#: src/exec_nopty.c:684 src/exec_pty.c:1265 msgid "error in event loop" msgstr "eraro en la eventa iteracio" -#: src/exec_ptrace.c:647 -msgid "insufficient space for execve arguments" -msgstr "nesufiĉa spaco por execve-parametroj" - -#: src/exec_ptrace.c:658 src/exec_ptrace.c:668 src/exec_ptrace.c:678 +#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format -msgid "unable to read execve %s for process %d" -msgstr "ne eblas legi execve %s por procezo %d" +msgid "internal error, %s overflow" +msgstr "interna eraro, superfluo en %s" -#: src/exec_ptrace.c:714 src/exec_ptrace.c:739 src/exec_ptrace.c:1194 +#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 #, c-format msgid "unable to set registers for process %d" msgstr "ne eblas ŝanĝi registrejojn por procezo %d" -#: src/exec_ptrace.c:734 src/exec_ptrace.c:899 +#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 #, c-format msgid "process %d exited unexpectedly" msgstr "procezo %d neatendite finiĝis" -#: src/exec_ptrace.c:843 +#: src/exec_ptrace.c:1207 msgid "unable to set seccomp filter" msgstr "ne eblas elekti seccomp-filtrilon" -#: src/exec_ptrace.c:934 +#: src/exec_ptrace.c:1404 +#, c-format +msgid "interpreter argument , expected \"%s\", got \"%s\"" +msgstr "interpretila argumento , atendita \"%s\", ricevita \"%s\"" + +#: src/exec_ptrace.c:1503 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "vojnomo malkongruaĵo, atendita \"%s\", ricevita \"%s\"" -#: src/exec_ptrace.c:942 src/exec_ptrace.c:948 src/exec_ptrace.c:954 -#: src/exec_ptrace.c:962 src/exec_ptrace.c:968 src/exec_ptrace.c:974 +#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 +#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "%s[%d] malkongruaĵo, atendita \"%s\", ricevita \"%s\"" -#: src/exec_ptrace.c:1013 +#: src/exec_ptrace.c:1619 +#, c-format +msgid "process %d unexpected status 0x%x" +msgstr "procezo %d neatendita stato 0x%x" + +#: src/exec_ptrace.c:1711 #, c-format msgid "unable to get event message for process %d" msgstr "ne eblas atingi eventan mesaĝon por procezo %d" -#: src/exec_ptrace.c:1019 +#: src/exec_ptrace.c:1718 #, c-format msgid "unable to get registers for process %d" msgstr "ne eblas atingi registrejojn por procezo %d" -#: src/exec_pty.c:163 +#: src/exec_pty.c:103 msgid "unable to allocate pty" msgstr "ne eblis generi pty-on" -#: src/exec_pty.c:227 src/exec_pty.c:267 src/exec_pty.c:307 src/exec_pty.c:358 -#: src/exec_pty.c:409 -msgid "I/O plugin error" -msgstr "En/eliga kromprograma eraro" - -#: src/exec_pty.c:231 src/exec_pty.c:271 src/exec_pty.c:311 src/exec_pty.c:362 -#: src/exec_pty.c:413 -msgid "command rejected by I/O plugin" -msgstr "komando rifuzita de en/eliga kromprogramo" - -#: src/exec_pty.c:460 -msgid "error logging suspend" -msgstr "ni paŭzas la protokoladon de eraroj" - -#: src/exec_pty.c:494 -msgid "error changing window size" -msgstr "eraro dum ŝanĝo de fenestro-grando" - -#: src/exec_pty.c:624 src/signal.c:101 src/suspend_nopty.c:95 +#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "ne eblas restarigi traktilon por la signalo %d" -#: src/exec_pty.c:1651 +#: src/exec_pty.c:1213 msgid "unable to send message to monitor process" msgstr "ne eblas sendi mesaĝon al observa procezo" -#: src/load_plugins.c:108 src/load_plugins.c:122 src/load_plugins.c:128 -#: src/load_plugins.c:277 src/load_plugins.c:287 src/load_plugins.c:297 -#: src/load_plugins.c:344 +#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 +#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 +#: src/load_plugins.c:346 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "eraro en %s, linio %d dum ŝargi kromprogramon \"%s\"" -#: src/load_plugins.c:124 +#: src/load_plugins.c:125 #, c-format msgid "%s must be owned by uid %d" msgstr "%s devas esti estrita de uid %d" -#: src/load_plugins.c:130 +#: src/load_plugins.c:131 #, c-format msgid "%s must be only be writable by owner" msgstr "%s estas skribebla nur de estro" -#: src/load_plugins.c:241 src/load_plugins.c:312 +#: src/load_plugins.c:243 src/load_plugins.c:314 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "ni malatentas duobligitan kromprogramon \"%s\" en %s, linio %d" -#: src/load_plugins.c:279 +#: src/load_plugins.c:281 #, c-format msgid "unable to load %s: %s" msgstr "maleblas ŝarĝi je %s: %s" -#: src/load_plugins.c:289 +#: src/load_plugins.c:291 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "ne eblas trovi simbolon \"%s\" en %s" -#: src/load_plugins.c:299 +#: src/load_plugins.c:301 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "malkongrua granda versio %d de kromprogramo (atendite %d) trovita en %s" -#: src/load_plugins.c:317 +#: src/load_plugins.c:319 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "ni malatentas kondutan kromprogramon \"%s\" en %s, linio %d" -#: src/load_plugins.c:320 +#: src/load_plugins.c:322 msgid "only a single policy plugin may be specified" msgstr "nur unu konduta kromprogramo povas esti indikata" -#: src/load_plugins.c:346 +#: src/load_plugins.c:348 #, c-format msgid "unknown plugin type %d found in %s" msgstr "nekonata kromprograma tipo %d trovita en %s" -#: src/load_plugins.c:529 +#: src/load_plugins.c:531 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "konduta kromprogramo %s ne inkluzivas la metodon check_policy" -#: src/net_ifs.c:210 src/net_ifs.c:376 src/net_ifs.c:437 src/net_ifs.c:624 -#: src/net_ifs.c:855 src/sudo.c:486 src/sudo_edit.c:398 src/sudo_edit.c:406 -#, c-format -msgid "internal error, %s overflow" -msgstr "interna eraro, superfluo en %s" - -#: src/parse_args.c:211 +#: src/parse_args.c:214 #, c-format msgid "invalid environment variable name: %s" msgstr "malvalida medivariabla nomo: %s" -#: src/parse_args.c:314 +#: src/parse_args.c:317 msgid "the argument to -C must be a number greater than or equal to 3" msgstr "la parametro de -C devas esti nombron almenaŭ 3" -#: src/parse_args.c:545 +#: src/parse_args.c:554 msgid "you may not specify both the -i and -s options" msgstr "vi ne rajtas specifi ambaŭ parametrojn -i kaj -s" -#: src/parse_args.c:550 +#: src/parse_args.c:559 msgid "you may not specify both the -i and -E options" msgstr "vi ne rajtas specifi ambaŭ parametrojn -i kaj -E" -#: src/parse_args.c:560 +#: src/parse_args.c:569 msgid "the -E option is not valid in edit mode" msgstr "la parametro -E ne validas en redakta reĝimo" -#: src/parse_args.c:563 +#: src/parse_args.c:572 msgid "you may not specify environment variables in edit mode" msgstr "vi ne rajtas specifi medivariablojn en redakta reĝimo" -#: src/parse_args.c:573 +#: src/parse_args.c:582 msgid "the -U option may only be used with the -l option" msgstr "la parametro '-U' nur povas esti uzata kun '-l'" -#: src/parse_args.c:577 +#: src/parse_args.c:586 msgid "the -A and -S options may not be used together" msgstr "vi ne rajtas kune uzi la parametrojn '-A' kaj '-S'" -#: src/parse_args.c:674 +#: src/parse_args.c:684 msgid "sudoedit is not supported on this platform" msgstr "sudoedit ne estas havebla en ĉi tiu platformon" -#: src/parse_args.c:757 +#: src/parse_args.c:767 msgid "Only one of the -e, -h, -i, -K, -l, -s, -v or -V options may be specified" msgstr "Vi rajtas specifi nur unu el -e, -h, -i, -K, -l, -s, -v aŭ -V" -#: src/parse_args.c:773 +#: src/parse_args.c:780 +msgid "Only one of the -K, -k or -N options may be specified" +msgstr "Vi rajtas specifi nur unu el -K, -k aŭ -N" + +#: src/parse_args.c:796 #, c-format msgid "" "%s - edit files as another user\n" @@ -590,7 +603,7 @@ msgstr "" "%s - redakti dosierojn kiel alia uzanto\n" "\n" -#: src/parse_args.c:775 +#: src/parse_args.c:798 #, c-format msgid "" "%s - execute a command as another user\n" @@ -599,7 +612,7 @@ msgstr "" "%s - plenumigi komandon kiel alia uzanto\n" "\n" -#: src/parse_args.c:781 +#: src/parse_args.c:804 msgid "" "\n" "Options:\n" @@ -607,131 +620,131 @@ msgstr "" "\n" "Parametroj:\n" -#: src/parse_args.c:783 +#: src/parse_args.c:806 msgid "use a helper program for password prompting" msgstr "uzi helpoprogrogramon por pasvortilo" -#: src/parse_args.c:786 +#: src/parse_args.c:809 msgid "use specified BSD authentication type" msgstr "uzi specifitan BSD-konstatan tipon" -#: src/parse_args.c:790 +#: src/parse_args.c:813 msgid "run command in the background" msgstr "plenumigi komandon fone" -#: src/parse_args.c:793 +#: src/parse_args.c:816 msgid "ring bell when prompting" msgstr "sonigi pepon kiam invitanta" -#: src/parse_args.c:795 +#: src/parse_args.c:818 msgid "close all file descriptors >= num" msgstr "fermi ĉiujn dosierpriskribilojn >= numeron" -#: src/parse_args.c:798 +#: src/parse_args.c:821 msgid "run command with the specified BSD login class" msgstr "plenumigi komandon per specifita BSD-ensaluta klaso" -#: src/parse_args.c:801 +#: src/parse_args.c:824 msgid "change the working directory before running command" msgstr "ŝanĝu la kurantan dosierujon antaŭ plenumi komandon" -#: src/parse_args.c:804 +#: src/parse_args.c:827 msgid "preserve user environment when running command" msgstr "konservi uzanto-medivariablojn dum plenumigi komandon" -#: src/parse_args.c:806 +#: src/parse_args.c:829 msgid "preserve specific environment variables" msgstr "konservi specifajn medivariablojn" -#: src/parse_args.c:808 +#: src/parse_args.c:831 msgid "edit files instead of running a command" msgstr "redakti dosierojn anstataŭ plenumigi komandon" -#: src/parse_args.c:811 +#: src/parse_args.c:834 msgid "run command as the specified group name or ID" msgstr "plenumigi komandon kiel la specifitan grupnomon aŭ identigilon" -#: src/parse_args.c:814 +#: src/parse_args.c:837 msgid "set HOME variable to target user's home dir" msgstr "valorizi medivariablon HOME je la hejma dosierujo de la cela uzanto" -#: src/parse_args.c:817 +#: src/parse_args.c:840 msgid "display help message and exit" msgstr "elmontri helpan mesaĝon kaj eliri" -#: src/parse_args.c:819 +#: src/parse_args.c:842 msgid "run command on host (if supported by plugin)" msgstr "plenumigi komandon en gastiganto (se permesata de kromprogramo)" -#: src/parse_args.c:822 +#: src/parse_args.c:845 msgid "run login shell as the target user; a command may also be specified" msgstr "plenumigi ensalutan ŝelon kiel celan uzanton; komando ankaŭ enmeteblas" -#: src/parse_args.c:824 +#: src/parse_args.c:847 msgid "remove timestamp file completely" msgstr "tute forigi tempo-indikilan dosieron" -#: src/parse_args.c:827 +#: src/parse_args.c:850 msgid "invalidate timestamp file" msgstr "eksvalidigi tempo-indikilan dosieron" -#: src/parse_args.c:830 +#: src/parse_args.c:853 msgid "list user's privileges or check a specific command; use twice for longer format" msgstr "listigi privilegiojn de la uzanto aŭ kontroli specifan komandon; uzu dufoje por pli longa formato" -#: src/parse_args.c:833 +#: src/parse_args.c:856 msgid "non-interactive mode, no prompts are used" msgstr "neinteraga reĝimo, ne demandos al uzanto" -#: src/parse_args.c:836 +#: src/parse_args.c:859 msgid "preserve group vector instead of setting to target's" msgstr "konservi grupan vektoron anstataŭ elekti celan" -#: src/parse_args.c:839 +#: src/parse_args.c:862 msgid "use the specified password prompt" msgstr "uzi specifitan pasvortilon" -#: src/parse_args.c:841 +#: src/parse_args.c:864 msgid "change the root directory before running command" msgstr "ŝanĝu la radikan dosierujon antaŭ ol plenumigi komandon" -#: src/parse_args.c:844 +#: src/parse_args.c:867 msgid "create SELinux security context with specified role" msgstr "krei SELinux-sekurecan kuntekston kun specifita rolo" -#: src/parse_args.c:847 +#: src/parse_args.c:870 msgid "read password from standard input" msgstr "legi pasvorton el norma enigo" -#: src/parse_args.c:850 +#: src/parse_args.c:873 msgid "run shell as the target user; a command may also be specified" msgstr "plenumigi ŝelon kiel cela uzanto; komando ankaŭ specifebla" -#: src/parse_args.c:854 +#: src/parse_args.c:877 msgid "create SELinux security context with specified type" msgstr "krei SELinux-sekurecan kuntekston kun specifita rolo" -#: src/parse_args.c:857 +#: src/parse_args.c:880 msgid "terminate command after the specified time limit" msgstr "finigi la komandon post la specifita tempolimo" -#: src/parse_args.c:860 +#: src/parse_args.c:883 msgid "in list mode, display privileges for user" msgstr "en lista reĝimo elmontri privilegiojn por uzanto" -#: src/parse_args.c:863 +#: src/parse_args.c:886 msgid "run command (or edit file) as specified user name or ID" msgstr "plenumigi komandon (aŭ redakti dosieron) kiel specifita uzanto" -#: src/parse_args.c:865 +#: src/parse_args.c:888 msgid "display version information and exit" msgstr "elmontri eldonan informon kaj eliri" -#: src/parse_args.c:868 +#: src/parse_args.c:891 msgid "update user's timestamp without running a command" msgstr "ĝisdatigi la tempo-indikilon de la uzanto, sed ne plenumigi komandon" -#: src/parse_args.c:871 +#: src/parse_args.c:894 msgid "stop processing command line arguments" msgstr "ĉesigi procedi komandliniajn parametrojn" @@ -831,37 +844,42 @@ msgstr "ne eblas elekti exec-kuntekston al %s" msgid "unable to set key creation context to %s" msgstr "ne eblas elekti kuntekston de kreo de ŝlosilo al %s" -#: src/sesh.c:72 -msgid "requires at least one argument" -msgstr "postulas almenaŭ unu parametron" +#: src/sesh.c:114 src/sesh.c:134 +msgid "Only one of the -c or -i options may be specified" +msgstr "Vi rajtas specifi nur unu el -c aŭ -i" -#: src/sesh.c:104 +#: src/sesh.c:129 #, c-format msgid "invalid file descriptor number: %s" msgstr "malvalida dosierpriskribila numero: %s" -#: src/sesh.c:118 +#: src/sesh.c:167 src/sesh.c:171 src/sesh.c:175 +#, c-format +msgid "The -%c option may not be used in edit mode." +msgstr "La parametron -%c oni ne rajtas uzi en redakto-reĝimo." + +#: src/sesh.c:184 src/sesh.c:189 #, c-format -msgid "unable to run %s as a login shell" -msgstr "ne eblas lanĉi %s kiel ensalut-ŝelo" +msgid "The -%c option may only be used in edit mode." +msgstr "La parametron -%c oni ne rajtas uzi nur en redakto-reĝimon." -#: src/sesh.c:200 src/sesh.c:300 src/sudo_edit.c:204 +#: src/sesh.c:294 src/sesh.c:394 src/sudo_edit.c:204 #, c-format msgid "%s: editing symbolic links is not permitted" msgstr "%s: redakto de simbolaj ligoj ne estas permesata" -#: src/sesh.c:203 src/sesh.c:303 src/sudo_edit.c:207 +#: src/sesh.c:297 src/sesh.c:397 src/sudo_edit.c:207 #, c-format msgid "%s: editing files in a writable directory is not permitted" msgstr "%s: redakto de dosieroj en skribebla dosierujo ne estas permesata" -#: src/sesh.c:287 src/sesh.c:308 src/sesh.c:317 src/sesh.c:325 +#: src/sesh.c:381 src/sesh.c:402 src/sesh.c:411 src/sesh.c:419 #: src/sudo_edit.c:331 #, c-format msgid "contents of edit session left in %s" msgstr "enhavo de redakta seanco restas en %s" -#: src/sesh.c:416 src/sudo_edit.c:94 +#: src/sesh.c:476 src/sudo_edit.c:94 msgid "unable to get group list" msgstr "ne eblas atingi grupan liston" @@ -945,118 +963,122 @@ msgstr "vi ne ekzistas en la datumbazo %s" msgid "unable to determine tty" msgstr "ne eblas determini tty-on" -#: src/sudo.c:925 +#: src/sudo.c:918 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "La flago \"neniuj novaj privilegioj\" estas agordita. Tio malhelpas al sudo plenumigi kiel la ĉefuzanto." -#: src/sudo.c:927 +#: src/sudo.c:920 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "Se sudo plenumiĝas en ujo, vi eble devas alĝustigi la ujan agordo por malŝalti la flagon." -#: src/sudo.c:961 +#: src/sudo.c:954 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s devas esti posedata de uid %d kaj la setuid-bito devas esti markita" -#: src/sudo.c:964 +#: src/sudo.c:957 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "efektiva uid ne estas %d; ĉu %s estas en dosiersistemo kun la elekto 'nosuid' aŭ reta dosiersistemo sen ĉefuzanto-privilegioj?" -#: src/sudo.c:970 +#: src/sudo.c:963 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "efektiva uid ne estas %d; ĉu sudo estas instalita kiel setuid-radiko?" -#: src/sudo.c:986 src/tgetpass.c:331 +#: src/sudo.c:979 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "ne eblas elekti suplementajn grupajn identigilojn" -#: src/sudo.c:993 +#: src/sudo.c:986 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "ne eblas elekti efikan gid-on al plenumigkiela gid %u" -#: src/sudo.c:999 +#: src/sudo.c:992 #, c-format msgid "unable to set gid to runas gid %u" msgstr "ne eblas elekti gid-on kiel plenumigkielan gid-on %u" -#: src/sudo.c:1042 +#: src/sudo.c:1022 +msgid "argv not set by the security policy" +msgstr "argv ne agordita per la sekureco-regularo" + +#: src/sudo.c:1026 +msgid "envp not set by the security policy" +msgstr "envp ne agordita per la sekureco-regularo" + +#: src/sudo.c:1048 #, c-format msgid "unexpected child termination condition: %d" msgstr "neatendita ido finiĝis laŭ la kondiĉo: %d" -#: src/sudo.c:1149 +#: src/sudo.c:1161 msgid "unable to initialize policy plugin" msgstr "ne eblas komenci konduktan kromprogramon" -#: src/sudo.c:1211 +#: src/sudo.c:1223 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "konduta kromprogramo %s ne inkluzivas la metodon \"check_policy\"" -#: src/sudo.c:1257 +#: src/sudo.c:1269 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "konduta kromprogramo %s ne komprenas listigon de privilegioj" -#: src/sudo.c:1301 +#: src/sudo.c:1313 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "konduta kromprogramo %s ne komprenas la parametron -v" -#: src/sudo.c:1339 +#: src/sudo.c:1351 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "konduta kromprogramo %s ne komprenas la parametrojn -k kaj -K" -#: src/sudo.c:1468 +#: src/sudo.c:1480 #, c-format msgid "error initializing I/O plugin %s" msgstr "eraro dum lanĉo de eneliga kromprogramo %s" -#: src/sudo.c:1471 +#: src/sudo.c:1483 msgid "error initializing I/O plugin" msgstr "eraro dum lanĉo de eneliga kromprogramo" -#: src/sudo.c:1620 +#: src/sudo.c:1632 #, c-format msgid "error initializing audit plugin %s" msgstr "eraro dum lanĉo de ekzamena kromprogramo %s" -#: src/sudo.c:1699 +#: src/sudo.c:1711 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%smaleblas protokoli eraro-eventon%s%s" -#: src/sudo.c:1735 +#: src/sudo.c:1747 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: maleblas protokoli akcepto-eventon%s%s" -#: src/sudo.c:1740 src/sudo.c:1778 +#: src/sudo.c:1752 src/sudo.c:1790 msgid "audit plugin error" msgstr "Kontrolo-kromprograma eraro" -#: src/sudo.c:1773 +#: src/sudo.c:1785 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: neeblas protokoli malakcepto-eventon%s%s" -#: src/sudo.c:1833 +#: src/sudo.c:1845 #, c-format msgid "error initializing approval plugin %s" msgstr "eraro dum lanĉo de aproba kromprogramo %s" -#: src/sudo.c:1903 +#: src/sudo.c:1915 msgid "command rejected by approver" msgstr "komando rifuzita de aprobanto" -#: src/sudo.c:1913 -msgid "approval plugin error" -msgstr "eraro de aproba kromprogramo" - #: src/sudo_edit.c:113 msgid "no writable temporary directory found" msgstr "neniu skribebla provizora dosierujo estis trovata" @@ -1066,7 +1088,7 @@ msgstr "neniu skribebla provizora dosierujo estis trovata" msgid "%s left unmodified" msgstr "%s restas ne modifita" -#: src/sudo_edit.c:304 src/sudo_edit.c:571 +#: src/sudo_edit.c:304 src/sudo_edit.c:569 #, c-format msgid "%s unchanged" msgstr "%s ne ŝanĝita" @@ -1079,37 +1101,37 @@ msgstr "sesh: interna eraro: malpara nombro da vojoj" msgid "sesh: unable to create temporary files" msgstr "sesh: ne eblas krei provizorajn dosierojn" -#: src/sudo_edit.c:485 src/sudo_edit.c:609 +#: src/sudo_edit.c:485 src/sudo_edit.c:604 msgid "sesh: killed by a signal" msgstr "sesh: mortigita de signalo" -#: src/sudo_edit.c:487 src/sudo_edit.c:612 +#: src/sudo_edit.c:487 src/sudo_edit.c:607 #, c-format msgid "sesh: unknown error %d" msgstr "sesh: nekonata eraro %d" -#: src/sudo_edit.c:602 +#: src/sudo_edit.c:597 msgid "unable to copy temporary files back to their original location" msgstr "ne eblas retrokopii provizorajn dosierojn al ilia originala loko" -#: src/sudo_edit.c:606 +#: src/sudo_edit.c:601 msgid "unable to copy some of the temporary files back to their original location" msgstr "ne eblas retrokopii kelkajn el la provizoraj dosieroj al ilia originala loko" -#: src/sudo_edit.c:649 +#: src/sudo_edit.c:645 #, c-format msgid "unable to change uid to root (%u)" msgstr "ne eblas ŝanĝi uid-on al ĉefuzanto (%u)" -#: src/sudo_edit.c:670 +#: src/sudo_edit.c:666 msgid "plugin error: missing file list for sudoedit" msgstr "kromprograma eraro: malhavas dosieran liston por sudoedit" -#: src/sudo_edit.c:713 src/sudo_edit.c:727 +#: src/sudo_edit.c:709 src/sudo_edit.c:723 msgid "unable to read the clock" msgstr "ne eblas legi la horloĝon" -#: src/sudo_intercept_common.c:341 +#: src/sudo_intercept_common.c:365 msgid "intercept port not set" msgstr "interkapta pordo ne agordita" diff --git a/po/fr.mo b/po/fr.mo index 1179a391cd..a824b13ed7 100644 Binary files a/po/fr.mo and b/po/fr.mo differ diff --git a/po/fr.po b/po/fr.po index ee484c11ef..5d09bfa56b 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,15 +1,15 @@ # Messages français pour sudo. -# Copyright (C) 2022 Free Software Foundation, Inc. +# Copyright (C) 2023 Free Software Foundation, Inc. # This file is put in the public domain. # Todd C. Miller , 2011-2013 -# Frédéric Marchal , 2022 +# Frédéric Marchal , 2023 # msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12b2\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" -"PO-Revision-Date: 2022-10-12 13:31+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 12:12+0100\n" "Last-Translator: Frédéric Marchal \n" "Language-Team: French \n" "Language: fr\n" @@ -33,74 +33,74 @@ msgid "unable to restore registry" msgstr "impossible de rétablir le registre" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "impossible d'allouer la mémoire" @@ -115,9 +115,9 @@ msgstr "impossible d'évaluer par stat() %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s existe mais il n'est pas un répertoire (0%o)" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "impossible d'ouvrir %s" @@ -132,7 +132,7 @@ msgstr "impossible d'exécuter mkdir %.*s" msgid "unable to open %.*s" msgstr "impossible d'ouvrir %.*s" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "l'expression régulière est trop grande" @@ -153,42 +153,42 @@ msgstr "valeur trop grande" msgid "value too small" msgstr "valeur trop petite" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "valeur de chemin « %s » incorrecte dans %s, ligne %u" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "valeur « %2$s » incorrecte pour %1$s dans %3$s, ligne %4$u" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "source de groupe « %s » non supportée dans %s, ligne %u" -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "groupes max « %s » incorrects dans %s, ligne %u" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s n'est pas un fichier régulier" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s est la propriété du uid %u alors que ça devrait être %u" -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s peut être écrit par tout le monde" -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s peut être écrit par le groupe" @@ -282,8 +282,8 @@ msgstr "impossible de changer le répertoire vers %s" msgid "starting from %s" msgstr "au départ de %s" -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -303,60 +303,60 @@ msgstr "impossible de supprimer PRIV_PROC_EXEC de PRIV_LIMIT" #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "impossible d'ajouter l'événement à la queue" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "commande pas définie par la politique de sécurité" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "commande rejetée par la politique" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "erreur du greffon d'approbation" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "erreur du greffon de politique" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "PolicyCheckRequest invalide" -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "demande client trop grand : %zu" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "impossible de décompresser %s avec une taille de %zu" -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "valeur %d inattendue pour type_case dans %s de %s" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "message serveur trop grand : %zu" @@ -379,93 +379,93 @@ msgstr "l'enregistrement des erreurs est suspendu" msgid "error changing window size" msgstr "erreur lors du changement de la taille de la fenêtre" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "erreur de lecture sur la paire de sockets" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "réponse inattendue sur le backchannel : %d" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "impossible de choisir le tty de contrôle" -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "impossible de créer le tube" -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "impossible de recevoir un message du parent" -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "erreur de fork" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "impossible de rétablir l'étiquette du tty" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "impossible d'exécuter %s" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "le greffon de règles a échoué lors de l'initialisation de la session" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "impossible de créer des sockets" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "erreur dans la boucle des événements" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 -#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 #: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "erreur interne, débordement %s" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "impossible de définir les registres pour le processus %d" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "le processus %d s'est terminé de manière inattendue" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "impossible de définir le filtre seccomp" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "interpréteur d'argument, « %s » attendu, « %s » obtenu" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "désaccord dans le nom du chemin, « %s » attendu, « %s » obtenu" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "désaccord dans %s[%d], « %s » attendu, « %s » obtenu" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "le processus %d a retourné le statut inattendu 0x%x" @@ -484,67 +484,56 @@ msgstr "impossible d'obtenir les registres pour le processus %d" msgid "unable to allocate pty" msgstr "impossible d'allouer le pty" -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "impossible de rétablir le gestionnaire pour le signal %d" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "impossible d'envoyer le message au processus de monitoring" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "erreur dans %s, ligne %d lors du chargement du greffon « %s »" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s doit être la propriété du uid %d" - -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "seul le propriétaire doit pouvoir écrire dans %s" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "ignore le greffon en double « %s » dans %s, ligne %d" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "impossible de charger %s : %s" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "impossible de trouver le symbole « %s » dans %s" -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "greffon à la version majeure %d incompatible (%d attendu) trouvé dans %s" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "ignore le greffon de règles « %s » dans %s, ligne %d" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "un seul greffon de règles peut être spécifié" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "type de greffon %d inconnu dans %s" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "le greffon de règles %s ne contient pas de méthode check_policy" @@ -949,133 +938,133 @@ msgstr "erreur fatale, impossible de charger les greffons" msgid "plugin did not return a command to execute" msgstr "le greffon n'a pas retourné une commande à exécuter" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "mode sudo 0x%x inattendu" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "vous n'existez pas dans la base de données %s" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "impossible de déterminer le tty" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "Le fanion « no new privileges » (« pas de nouveau privilèges ») est défini. Il empêche sudo de s'exécuter en tant que root." -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "Si sudo est exécuté dans un conteneur, vous devrez ajuster la configuration du conteneur pour désactiver ce fanion." -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s doit être la propriété du uid %d et avoir le bit setuid mis" -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "le uid effectif n'est pas %d. Est-ce que %s est sur un système de fichiers avec l'option « nosuid » ou un système de fichiers NFS sans privilèges root ?" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "le uid effectif n'est pas %d. Est-ce que sudo est installé setuid root ?" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "impossible d'attribuer les ID de groupe supplémentaires" -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "impossible de changer le gid effectif à runas gid %u" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "impossible de changer le gid à runas gid %u" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "argv pas défini par la politique de sécurité" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "envp pas défini par la politique de sécurité" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "condition de fin de l'enfant inconnue: %d" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "impossible d'initialiser le greffon de règles" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "le greffon de règles %s n'a pas de méthode « check_policy »" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "le greffon de règles %s ne supporte pas les privilèges de listage" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "le greffon de règles %s ne supporte pas l'option -v" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "le greffon de règles %s ne supporte pas les options -k/-K" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "erreur à l'initialisation du greffon E/S %s" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "erreur à l'initialisation du greffon E/S" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "erreur à l'initialisation du greffon d'audit %s" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s: impossible d'enregistrer dans le journal l'événement d'erreur%s%s" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: impossible d'enregistrer dans le journal l'événement d'acceptation%s%s" -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "erreur du greffon d'audit" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: impossible d'enregistrer dans le journal l'événement de rejet%s%s" -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "erreur à l'initialisation du greffon d'approbation %s" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "commande rejetée par l'approbateur" @@ -1118,16 +1107,20 @@ msgstr "impossible de copier les fichiers temporaires à leurs emplacements d'or msgid "unable to copy some of the temporary files back to their original location" msgstr "impossible de copier quelques fichiers temporaires à leurs emplacements d'origine" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "impossible de changer le uid en root (%u)" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "erreur de greffon : liste de fichiers invalide pour sudoedit" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "erreur de greffon : liste de fichiers manquantes pour sudoedit" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "impossible de lire l'horloge" @@ -1182,6 +1175,12 @@ msgstr "impossible d'exécuter dup2 sur stdin" msgid "unable to restore stdin" msgstr "impossible de rétablir stdin" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s doit être la propriété du uid %d" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "seul le propriétaire doit pouvoir écrire dans %s" + #~ msgid "insufficient space for execve arguments" #~ msgstr "espace insuffisant pour les arguments de execve" diff --git a/po/fur.mo b/po/fur.mo index b3c222fab4..80dfd81219 100644 Binary files a/po/fur.mo and b/po/fur.mo differ diff --git a/po/fur.po b/po/fur.po index 8ceb3261dd..eacd795811 100644 --- a/po/fur.po +++ b/po/fur.po @@ -1,335 +1,589 @@ # Friulian translations for sudo package # This file is put in the public domain. -# Fabio Tomat , 2017 +# Fabio Tomat , 2023 # msgid "" msgstr "" -"Project-Id-Version: sudo-1.8.20b1\n" +"Project-Id-Version: sudo-1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2017-03-09 11:58-0700\n" -"PO-Revision-Date: 2017-06-24 14:55+0200\n" -"Last-Translator: Fabio Tomat \n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-02-01 16:47+0000\n" +"Last-Translator: Fabio T. \n" "Language-Team: Friulian \n" "Language: fur\n" -"X-Bugs: Report translation errors to the Language-Team address.\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.12\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"X-Editor: HaiPO 1.4 beta\n" +"X-Generator: Poedit 1.8.12\n" -#: lib/util/aix.c:85 lib/util/aix.c:172 +#: lib/util/aix.c:89 lib/util/aix.c:169 msgid "unable to open userdb" msgstr "impussibil vierzi userdb" -#: lib/util/aix.c:227 +#: lib/util/aix.c:224 #, c-format msgid "unable to switch to registry \"%s\" for %s" msgstr "impussibil passâ al regjistri \"%s\" par %s" -#: lib/util/aix.c:252 +#: lib/util/aix.c:249 msgid "unable to restore registry" msgstr "impussibil ripristinâ il regjistri" -#: lib/util/aix.c:275 lib/util/gidlist.c:64 lib/util/gidlist.c:74 -#: lib/util/sudo_conf.c:184 lib/util/sudo_conf.c:270 lib/util/sudo_conf.c:347 -#: lib/util/sudo_conf.c:545 src/conversation.c:75 src/exec_common.c:107 -#: src/exec_common.c:123 src/exec_common.c:132 src/exec_monitor.c:214 -#: src/exec_nopty.c:326 src/exec_pty.c:623 src/exec_pty.c:631 -#: src/exec_pty.c:868 src/load_plugins.c:52 src/load_plugins.c:65 -#: src/load_plugins.c:215 src/load_plugins.c:238 src/load_plugins.c:303 -#: src/load_plugins.c:318 src/parse_args.c:183 src/parse_args.c:205 -#: src/parse_args.c:376 src/parse_args.c:472 src/parse_args.c:494 -#: src/preserve_fds.c:47 src/preserve_fds.c:130 src/selinux.c:83 -#: src/selinux.c:292 src/selinux.c:415 src/selinux.c:424 src/sesh.c:115 -#: src/sudo.c:398 src/sudo.c:423 src/sudo.c:488 src/sudo.c:610 src/sudo.c:670 -#: src/sudo.c:680 src/sudo.c:700 src/sudo.c:719 src/sudo.c:728 src/sudo.c:737 -#: src/sudo.c:754 src/sudo.c:795 src/sudo.c:805 src/sudo.c:825 src/sudo.c:1246 -#: src/sudo.c:1267 src/sudo.c:1441 src/sudo.c:1535 src/sudo_edit.c:151 -#: src/sudo_edit.c:775 src/sudo_edit.c:872 src/sudo_edit.c:985 -#: src/sudo_edit.c:1005 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 +#: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 +#: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 +#: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 +#: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:275 lib/util/gidlist.c:64 lib/util/sudo_conf.c:185 -#: lib/util/sudo_conf.c:270 lib/util/sudo_conf.c:347 lib/util/sudo_conf.c:545 -#: src/conversation.c:76 src/exec_common.c:107 src/exec_common.c:124 -#: src/exec_common.c:133 src/exec_pty.c:623 src/exec_pty.c:631 -#: src/exec_pty.c:868 src/load_plugins.c:215 src/load_plugins.c:238 -#: src/load_plugins.c:303 src/load_plugins.c:318 src/parse_args.c:183 -#: src/parse_args.c:205 src/parse_args.c:376 src/parse_args.c:472 -#: src/parse_args.c:494 src/preserve_fds.c:47 src/preserve_fds.c:130 -#: src/selinux.c:83 src/selinux.c:292 src/selinux.c:415 src/selinux.c:424 -#: src/sesh.c:115 src/sudo.c:398 src/sudo.c:423 src/sudo.c:488 src/sudo.c:610 -#: src/sudo.c:825 src/sudo.c:1246 src/sudo.c:1267 src/sudo.c:1441 -#: src/sudo.c:1535 src/sudo_edit.c:151 src/sudo_edit.c:775 src/sudo_edit.c:872 -#: src/sudo_edit.c:985 src/sudo_edit.c:1005 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 +#: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 +#: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 +#: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 +#: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 +#: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "impussibil assegnâ memorie" -#: lib/util/strsignal.c:48 +#: lib/util/mkdir_parents.c:63 +#, c-format +msgid "unable to stat %.*s" +msgstr "impussibil eseguî stat %.*s" + +#: lib/util/mkdir_parents.c:69 +#, c-format +msgid "%.*s exists but is not a directory (0%o)" +msgstr "%.*s al esist ma no je une cartele (0%o)" + +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 +#, c-format +msgid "unable to open %s" +msgstr "impussibil vierzi %s" + +#: lib/util/mkdir_parents.c:120 lib/util/mkdir_parents.c:160 +#, c-format +msgid "unable to mkdir %.*s" +msgstr "impussibil eseguî mkdir %.*s" + +#: lib/util/mkdir_parents.c:130 lib/util/mkdir_parents.c:139 +#, c-format +msgid "unable to open %.*s" +msgstr "impussibil vierzi %.*s" + +#: lib/util/regex.c:163 +msgid "regular expression too large" +msgstr "espression regolâr masse grande" + +#: lib/util/strsignal.c:50 msgid "Unknown signal" msgstr "Segnâl no cognossût" -#: lib/util/strtoid.c:77 lib/util/strtoid.c:124 lib/util/strtoid.c:152 -#: lib/util/strtomode.c:49 lib/util/strtonum.c:58 lib/util/strtonum.c:176 +#: lib/util/strtoid.c:84 lib/util/strtomode.c:52 lib/util/strtonum.c:148 +#: lib/util/strtonum.c:187 src/sesh.c:240 src/sesh.c:253 msgid "invalid value" msgstr "valôr no valit" -#: lib/util/strtoid.c:84 lib/util/strtoid.c:131 lib/util/strtoid.c:159 -#: lib/util/strtomode.c:55 lib/util/strtonum.c:61 lib/util/strtonum.c:188 +#: lib/util/strtomode.c:58 lib/util/strtonum.c:160 msgid "value too large" msgstr "valôr masse grant" -#: lib/util/strtoid.c:86 lib/util/strtoid.c:137 lib/util/strtomode.c:55 -#: lib/util/strtonum.c:61 lib/util/strtonum.c:182 +#: lib/util/strtomode.c:58 lib/util/strtonum.c:154 msgid "value too small" msgstr "valôr masse piçul" -#: lib/util/sudo_conf.c:203 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "il valôr percors \"%s\" no valit in %s, rie %u" -#: lib/util/sudo_conf.c:369 lib/util/sudo_conf.c:422 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "valôr no valit par %s \"%s\" in %s, rie %u" -#: lib/util/sudo_conf.c:390 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "sorzint di grup \"%s\" no supuartade in %s, rie %u" -#: lib/util/sudo_conf.c:406 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "grups massims \"%s\" no valits in %s, rie %u" -#: lib/util/sudo_conf.c:561 -#, c-format -msgid "unable to stat %s" -msgstr "impussibil eseguî stat su %s" - -#: lib/util/sudo_conf.c:564 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s nol è un file regolâr" -#: lib/util/sudo_conf.c:567 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s al è dal uid %u, al varès di jessi di %u" -#: lib/util/sudo_conf.c:571 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "ducj a puedin scrivi su %s" -#: lib/util/sudo_conf.c:574 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "il grup al pues scrivi su %s" -#: lib/util/sudo_conf.c:584 src/selinux.c:201 src/selinux.c:213 src/sudo.c:366 +#: src/apparmor.c:85 +msgid "failed to determine AppArmor confinement" +msgstr "impussibil determinâ il confinament di AppArmor" + +#: src/apparmor.c:93 #, c-format -msgid "unable to open %s" -msgstr "impussibil vierzi %s" +msgid "unable to change AppArmor profile to %s" +msgstr "impussibil cambiâ il profîl AppArmor a %s" + +#: src/copy_file.c:94 +#, c-format +msgid "%s: truncate %s to zero bytes? (y/n) [n] " +msgstr "%s: cjonçâ %s a zero bytes? (y/n) [n] " + +#: src/copy_file.c:98 +#, c-format +msgid "not overwriting %s" +msgstr "no si larà a sorescrivi %s" + +#: src/copy_file.c:120 +#, c-format +msgid "unable to read from %s" +msgstr "impussibil lei di %s" + +#: src/copy_file.c:137 src/sudo_edit.c:320 +#, c-format +msgid "unable to write to %s" +msgstr "impussibil scrivi su %s" + +#: src/copy_file.c:151 +#, c-format +msgid "unable to stat %s" +msgstr "impussibil eseguî stat su %s" + +#: src/copy_file.c:155 src/sesh.c:312 src/sudo_edit.c:197 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: nol è un file regolâr." + +#: src/copy_file.c:159 +#, c-format +msgid "%s: bad file mode: 0%o" +msgstr "%s: modalitât file sbaliade: 0%o" + +#: src/edit_open.c:331 +msgid "unable to restore current working directory" +msgstr "impussibil ripristinâ la cartele di lavôr atuâl" + +#: src/exec.c:111 +msgid "unable to set privileges" +msgstr "impussibil configurâ i privileçs" + +#: src/exec.c:117 src/exec.c:122 +msgid "unable to set limit privileges" +msgstr "impussibil configurâ i privileçs di limit" + +#: src/exec.c:145 +#, c-format +msgid "unknown login class %s" +msgstr "classe di acès %s no cognossude" + +#: src/exec.c:157 +msgid "unable to set user context" +msgstr "impussibil stabilî il contest utent" + +#: src/exec.c:173 +msgid "unable to set process priority" +msgstr "impussibil stabilî la prioritât dal procès" + +#: src/exec.c:190 +#, c-format +msgid "unable to change root to %s" +msgstr "impussibil cambiâ root a %s" + +#: src/exec.c:203 src/exec.c:209 src/exec.c:216 +#, c-format +msgid "unable to change to runas uid (%u, %u)" +msgstr "impussibil passâ a un diviers uid (%u, %u)" -#: src/exec.c:189 src/exec_monitor.c:504 src/exec_monitor.c:506 -#: src/exec_monitor.c:511 src/exec_monitor.c:513 src/exec_monitor.c:527 -#: src/exec_monitor.c:538 src/exec_monitor.c:540 src/exec_monitor.c:542 -#: src/exec_monitor.c:544 src/exec_monitor.c:546 src/exec_monitor.c:548 -#: src/exec_monitor.c:550 src/exec_nopty.c:191 src/exec_nopty.c:193 -#: src/exec_nopty.c:195 src/exec_nopty.c:197 src/exec_nopty.c:199 -#: src/exec_nopty.c:201 src/exec_nopty.c:203 src/exec_nopty.c:205 -#: src/exec_nopty.c:208 src/exec_nopty.c:222 src/exec_nopty.c:224 -#: src/exec_nopty.c:226 src/exec_nopty.c:384 src/exec_pty.c:427 -#: src/exec_pty.c:661 src/exec_pty.c:1196 src/exec_pty.c:1198 -#: src/exec_pty.c:1200 src/exec_pty.c:1202 src/exec_pty.c:1204 -#: src/exec_pty.c:1206 src/exec_pty.c:1208 src/exec_pty.c:1211 -#: src/exec_pty.c:1219 src/exec_pty.c:1221 src/exec_pty.c:1223 -#: src/exec_pty.c:1231 src/exec_pty.c:1233 src/signal.c:148 src/signal.c:162 +#: src/exec.c:238 src/sesh.c:199 +#, c-format +msgid "unable to change directory to %s" +msgstr "impussibil passâ ae cartele a %s" + +#: src/exec.c:243 +#, c-format +msgid "starting from %s" +msgstr "daûr a scomençâ di %s" + +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 +#: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" msgstr "impussibil stabilî il gjestôr pal segnâl %d" -#: src/exec_common.c:166 +#: src/exec.c:422 +msgid "intercept mode is not supported with SELinux RBAC on this system" +msgstr "la modalitât di intercetazion no je supuartade cun SELinux RBAC su chest sisteme" + +#: src/exec.c:427 +msgid "unable to log sub-commands with SELinux RBAC on this system" +msgstr "impussibil regjistrâ i sot-comants cun SELinux RBAC su chest sisteme" + +#: src/exec_common.c:56 msgid "unable to remove PRIV_PROC_EXEC from PRIV_LIMIT" msgstr "impussibil gjavâ PRIV_PROC_EXEC dal PRIV_LIMIT" -#: src/exec_monitor.c:277 src/exec_nopty.c:455 src/exec_pty.c:1028 -msgid "error reading from signal pipe" -msgstr "erôr tal lei dal condot (pipe) dal segnâl" +#: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 +#: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 +msgid "unable to add event to queue" +msgstr "impussibil zontâ l'event ae code" + +#: src/exec_intercept.c:317 src/sudo.c:1028 +msgid "command not set by the security policy" +msgstr "comant no configurât de politiche di sigurece" + +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 +msgid "command rejected by policy" +msgstr "comant refudât de politiche" + +#: src/exec_intercept.c:505 src/sudo.c:1935 +msgid "approval plugin error" +msgstr "erôr dal plugin di aprovazion" + +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 +msgid "policy plugin error" +msgstr "erôr dal plugin de politiche" + +#: src/exec_intercept.c:559 +msgid "invalid PolicyCheckRequest" +msgstr "PolicyCheckRequest no valit" -#: src/exec_monitor.c:363 +#: src/exec_intercept.c:702 +#, c-format +msgid "client request too large: %zu" +msgstr "richieste dal client masse grande: %zu" + +#: src/exec_intercept.c:744 +#, c-format +msgid "unable to unpack %s size %zu" +msgstr "impussibil decomprimi %s cun dimension di %zu" + +#: src/exec_intercept.c:792 +#, c-format +msgid "unexpected type_case value %d in %s from %s" +msgstr "valôr di type_case %d inspietât in %s di %s" + +#: src/exec_intercept.c:818 +#, c-format +msgid "server message too large: %zu" +msgstr "messaç dal servidôr masse grant: %zu" + +#: src/exec_iolog.c:323 src/exec_iolog.c:363 src/exec_iolog.c:403 +#: src/exec_iolog.c:454 src/exec_iolog.c:505 +msgid "I/O plugin error" +msgstr "erôr dal plugin di I/O" + +#: src/exec_iolog.c:327 src/exec_iolog.c:367 src/exec_iolog.c:407 +#: src/exec_iolog.c:458 src/exec_iolog.c:509 +msgid "command rejected by I/O plugin" +msgstr "comant refudât dal plugin di I/O" + +#: src/exec_iolog.c:556 +msgid "error logging suspend" +msgstr "regjistrazion erôrs sospindude" + +#: src/exec_iolog.c:591 +msgid "error changing window size" +msgstr "erôr tal cambiâ la dimension dal barcon" + +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "erôr tal lei dal socketpair" -#: src/exec_monitor.c:372 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "gjenar di rispueste inspietade sul backchannel: %d" -#: src/exec_monitor.c:450 src/exec_monitor.c:458 src/exec_monitor.c:466 -#: src/exec_nopty.c:130 src/exec_nopty.c:138 src/exec_pty.c:516 -#: src/exec_pty.c:521 src/exec_pty.c:591 src/exec_pty.c:598 src/exec_pty.c:873 -#: src/exec_pty.c:1129 src/exec_pty.c:1137 src/exec_pty.c:1322 -#: src/exec_pty.c:1332 src/exec_pty.c:1377 src/exec_pty.c:1384 -#: src/exec_pty.c:1409 -msgid "unable to add event to queue" -msgstr "impussibil zontâ l'event ae code" +#: src/exec_monitor.c:587 +msgid "unable to set controlling tty" +msgstr "impussibil stabilî il tty di control" -#: src/exec_monitor.c:496 src/exec_monitor.c:570 src/exec_nopty.c:161 -#: src/exec_pty.c:705 src/exec_pty.c:714 src/exec_pty.c:722 src/signal.c:129 -#: src/tgetpass.c:246 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "impussibil creâ il condot (pipe)" -#: src/exec_monitor.c:562 -msgid "unable to set controlling tty" -msgstr "impussibil stabilî il tty di control" +#: src/exec_monitor.c:605 +msgid "unable to receive message from parent" +msgstr "impussibil ricevi il messaç dal gjenitôr" -#: src/exec_monitor.c:573 src/exec_nopty.c:240 src/exec_pty.c:756 -#: src/tgetpass.c:250 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 +#: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "impussibil inglovâ (fâ il fork)" -#: src/exec_monitor.c:654 src/exec_nopty.c:292 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "impussibil ripristinâ la etichete tty" -#: src/exec_nopty.c:233 src/exec_pty.c:1240 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 +#, c-format +msgid "unable to execute %s" +msgstr "impussibil eseguî %s" + +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "il plugin di politche nol è rivât a inizializâ la session" -#: src/exec_nopty.c:281 src/exec_pty.c:1278 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 +msgid "unable to create sockets" +msgstr "impussibil creâ sockets" + +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "erôr tal cicli dal event" -#: src/exec_nopty.c:392 src/exec_pty.c:459 src/signal.c:87 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 +#: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format -msgid "unable to restore handler for signal %d" -msgstr "impussibil ripristinâ il gjestôr pal segnâl %d" +msgid "internal error, %s overflow" +msgstr "erôr interni, %s overflow (stranfât)" -#: src/exec_pty.c:133 -msgid "unable to allocate pty" -msgstr "impussibil assegnâ pty" +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 +#, c-format +msgid "unable to set registers for process %d" +msgstr "impussibil configurâ i regjistris pal procès %d" -#: src/exec_pty.c:1179 -msgid "unable to create sockets" -msgstr "impussibil creâ sockets" +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 +#, c-format +msgid "process %d exited unexpectedly" +msgstr "il procès %d al è jessût in maniere inspietade" + +#: src/exec_ptrace.c:1208 +msgid "unable to set seccomp filter" +msgstr "impussibil configurâ il filtri seccomp" -#: src/load_plugins.c:50 src/load_plugins.c:63 src/load_plugins.c:85 -#: src/load_plugins.c:115 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:170 src/load_plugins.c:178 src/load_plugins.c:185 -#: src/load_plugins.c:191 +#: src/exec_ptrace.c:1405 #, c-format -msgid "error in %s, line %d while loading plugin \"%s\"" -msgstr "erôr in %s, rie %d intant che si cjariave il plugin \"%s\"" +msgid "interpreter argument , expected \"%s\", got \"%s\"" +msgstr "argoment dal interprete, si spietave \"%s\", si à vût \"%s\"" + +#: src/exec_ptrace.c:1504 +#, c-format +msgid "pathname mismatch, expected \"%s\", got \"%s\"" +msgstr "mancjade corispondence cul non dal percors, si spietave \"%s\", si à vût \"%s\"" + +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 +#, c-format +msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" +msgstr "mancjade corispondence %s[%d], si spietave \"%s\", si à vût \"%s\"" + +#: src/exec_ptrace.c:1620 +#, c-format +msgid "process %d unexpected status 0x%x" +msgstr "il procès %d al à tornât il stât inspietât 0x%x" + +#: src/exec_ptrace.c:1711 +#, c-format +msgid "unable to get event message for process %d" +msgstr "impussibil otignî il messaç dal event pal procès %d" + +#: src/exec_ptrace.c:1718 +#, c-format +msgid "unable to get registers for process %d" +msgstr "impussibil otignî i regjistris pal procès %d" -#: src/load_plugins.c:87 +#: src/exec_pty.c:103 +msgid "unable to allocate pty" +msgstr "impussibil assegnâ pty" + +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format -msgid "%s%s: %s" -msgstr "%s%s: %s" +msgid "unable to restore handler for signal %d" +msgstr "impussibil ripristinâ il gjestôr pal segnâl %d" -#: src/load_plugins.c:125 +#: src/exec_pty.c:1222 +msgid "unable to send message to monitor process" +msgstr "impussibil inviâ il messaç par monitorâ il procès" + +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format -msgid "%s must be owned by uid %d" -msgstr "%s al scugne jessi di proprietât dal uid %d" +msgid "error in %s, line %d while loading plugin \"%s\"" +msgstr "erôr in %s, rie %d intant che si cjariave il plugin \"%s\"" -#: src/load_plugins.c:131 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format -msgid "%s must be only be writable by owner" -msgstr "%s al scugne jessi scrivibil dome dal proprietari" +msgid "ignoring duplicate plugin \"%s\" in %s, line %d" +msgstr "si ignore il plugin duplicât \"%s\" in %s, rie %d" -#: src/load_plugins.c:172 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "impussibil cjariâ %s: %s" -#: src/load_plugins.c:180 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "impussibil cjatâ il simbul \"%s\" in %s" -#: src/load_plugins.c:187 -#, c-format -msgid "unknown policy type %d found in %s" -msgstr "gjenar di politiche %d no cognossude, cjatade in %s" - -#: src/load_plugins.c:193 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "numar principâl di version dal plugin %d no compatibil (si spietave %d) cjatât in %s" -#: src/load_plugins.c:202 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "si ignore il plugin di politiche \"%s\" in %s, rie %d" -#: src/load_plugins.c:204 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "dome un singul plugin di politiche al podarès jessi specificât" -#: src/load_plugins.c:207 -#, c-format -msgid "ignoring duplicate policy plugin \"%s\" in %s, line %d" -msgstr "si ignore il plugin di politiche duplicât \"%s\" in %s, rie %d" - -#: src/load_plugins.c:228 +#: src/load_plugins.c:289 #, c-format -msgid "ignoring duplicate I/O plugin \"%s\" in %s, line %d" -msgstr "si ignore il plugin I/O duplicât \"%s\" in %s, rie %d" +msgid "unknown plugin type %d found in %s" +msgstr "gjenar di plugin %d no cognossût, cjatât in %s" -#: src/load_plugins.c:331 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "il plugin di politiche %s nol inclût un metodi check_policy" -#: src/net_ifs.c:173 src/net_ifs.c:190 src/net_ifs.c:335 src/sudo.c:483 +#: src/parse_args.c:214 #, c-format -msgid "internal error, %s overflow" -msgstr "erôr interni, %s overflow (stranfât)" +msgid "invalid environment variable name: %s" +msgstr "non de variabile di ambient no valit: %s" -#: src/parse_args.c:242 +#: src/parse_args.c:317 msgid "the argument to -C must be a number greater than or equal to 3" msgstr "l'argoment di -C al scugne jessi un numar plui grant o compagn a 3" -#: src/parse_args.c:412 -msgid "you may not specify both the `-i' and `-s' options" -msgstr "no si podarès specificâ dutis dôs lis opzions `-i' e `-s'" +#: src/parse_args.c:554 +msgid "you may not specify both the -i and -s options" +msgstr "no tu puedis specificâ dutis dôs lis opzions -i e -s" -#: src/parse_args.c:416 -msgid "you may not specify both the `-i' and `-E' options" -msgstr "no si podarès specificâ dutis dôs lis opzions `-i' e `-E'" +#: src/parse_args.c:559 +msgid "you may not specify both the -i and -E options" +msgstr "no tu puedis specificâ dutis dôs lis opzions -i e -E" -#: src/parse_args.c:426 -msgid "the `-E' option is not valid in edit mode" -msgstr "la opzion `-E' no je valide in modalitât di modifiche" +#: src/parse_args.c:569 +msgid "the -E option is not valid in edit mode" +msgstr "la opzion -E no je valide te modalitât di modifiche" -#: src/parse_args.c:428 +#: src/parse_args.c:572 msgid "you may not specify environment variables in edit mode" msgstr "no si podarès specificâ lis variabilis di ambient inte modalitât di modifiche" -#: src/parse_args.c:436 -msgid "the `-U' option may only be used with the `-l' option" -msgstr "la opzion `-U' e podarès jessi doprade dome cun la opzion `-l'" +#: src/parse_args.c:582 +msgid "the -U option may only be used with the -l option" +msgstr "al è pussibil doprâ la opzion -U dome cu la opzion -l" -#: src/parse_args.c:440 -msgid "the `-A' and `-S' options may not be used together" -msgstr "lis opzions `-A' e `-S' no podaressin jessi dopradis adun" +#: src/parse_args.c:586 +msgid "the -A and -S options may not be used together" +msgstr "nol è pussibil doprâ adun lis opzions -A e -S" -#: src/parse_args.c:516 +#: src/parse_args.c:684 msgid "sudoedit is not supported on this platform" msgstr "sudoedit nol è supuartât su cheste plateforme" -#: src/parse_args.c:589 +#: src/parse_args.c:767 msgid "Only one of the -e, -h, -i, -K, -l, -s, -v or -V options may be specified" msgstr "Dome une des opzions -e, -h, -i, -K, -l, -s, -v o -V e podarès jessi specificade" -#: src/parse_args.c:603 +#: src/parse_args.c:780 +msgid "Only one of the -K, -k or -N options may be specified" +msgstr "Al è pussibil specificâ dome une des opzions -K, -k, -N" + +#: src/parse_args.c:796 #, c-format msgid "" "%s - edit files as another user\n" @@ -338,7 +592,7 @@ msgstr "" "%s - modifiche i file come altri utent\n" "\n" -#: src/parse_args.c:605 +#: src/parse_args.c:798 #, c-format msgid "" "%s - execute a command as another user\n" @@ -347,8 +601,7 @@ msgstr "" "%s - eseguìs un comant come altri utent\n" "\n" -#: src/parse_args.c:610 -#, c-format +#: src/parse_args.c:804 msgid "" "\n" "Options:\n" @@ -356,518 +609,604 @@ msgstr "" "\n" "Opzions:\n" -#: src/parse_args.c:612 +#: src/parse_args.c:806 msgid "use a helper program for password prompting" msgstr "Dopre un program di jutori par domandâ la password" -#: src/parse_args.c:615 +#: src/parse_args.c:809 msgid "use specified BSD authentication type" msgstr "dopre il gjenar di autenticazion BSD specificât" -#: src/parse_args.c:618 +#: src/parse_args.c:813 msgid "run command in the background" msgstr "eseguìs il comant in background" -#: src/parse_args.c:620 +#: src/parse_args.c:816 +msgid "ring bell when prompting" +msgstr "sune la campanele cuant che e ven domandade une rispueste" + +#: src/parse_args.c:818 msgid "close all file descriptors >= num" msgstr "siere ducj i descritôrs di file >= num" -#: src/parse_args.c:623 +#: src/parse_args.c:821 msgid "run command with the specified BSD login class" msgstr "eseguìs il comant cun la classe di acès BSD specificade" -#: src/parse_args.c:626 +#: src/parse_args.c:824 +msgid "change the working directory before running command" +msgstr "cambie la cartele di lavôr prime di eseguî il comant" + +#: src/parse_args.c:827 msgid "preserve user environment when running command" msgstr "preserve l'ambient utent cuant che si eseguìs un comant" -#: src/parse_args.c:628 +#: src/parse_args.c:829 +msgid "preserve specific environment variables" +msgstr "preserve lis specifichis variabilis di ambient" + +#: src/parse_args.c:831 msgid "edit files instead of running a command" msgstr "modifiche i file invezit di eseguî un comant" -#: src/parse_args.c:630 +#: src/parse_args.c:834 msgid "run command as the specified group name or ID" msgstr "eseguìs il comant come il ID o il non dal grup specificât" -#: src/parse_args.c:632 +#: src/parse_args.c:837 msgid "set HOME variable to target user's home dir" msgstr "stabilìs la variabile HOME ae cartele home dal utent di destinazion" -#: src/parse_args.c:634 +#: src/parse_args.c:840 msgid "display help message and exit" msgstr "mostre il messaç di jutori e jes" -#: src/parse_args.c:636 +#: src/parse_args.c:842 msgid "run command on host (if supported by plugin)" msgstr "eseguìs il comant sul host (se supuartât dal plugin)" -#: src/parse_args.c:638 +#: src/parse_args.c:845 msgid "run login shell as the target user; a command may also be specified" msgstr "eseguìs une shell di acès come utent di destinazion; si podarès ancje specificâ un comant" -#: src/parse_args.c:640 +#: src/parse_args.c:847 msgid "remove timestamp file completely" -msgstr "" +msgstr "gjave dal dut il file de marche temporâl" -#: src/parse_args.c:642 +#: src/parse_args.c:850 msgid "invalidate timestamp file" -msgstr "" +msgstr "invalide il file de marche temporâl" -#: src/parse_args.c:644 +#: src/parse_args.c:853 msgid "list user's privileges or check a specific command; use twice for longer format" msgstr "liste i privileçs dal utent o verifiche un comant specific; doprâ dôs voltis pal formât plui lunc" -#: src/parse_args.c:646 +#: src/parse_args.c:856 msgid "non-interactive mode, no prompts are used" msgstr "modalitât no interative, nissune richieste e ven presentade" -#: src/parse_args.c:648 +#: src/parse_args.c:859 msgid "preserve group vector instead of setting to target's" msgstr "preserve il vetôr dal grup invezit di metilu a chel de destinazion" -#: src/parse_args.c:650 +#: src/parse_args.c:862 msgid "use the specified password prompt" msgstr "dopre la richieste de password specificade" -#: src/parse_args.c:653 +#: src/parse_args.c:864 +msgid "change the root directory before running command" +msgstr "cambie la cartele lidrîs prime di eseguî il comant" + +#: src/parse_args.c:867 msgid "create SELinux security context with specified role" msgstr "cree il contest di sigurece SELinux cul rûl specificât" -#: src/parse_args.c:656 +#: src/parse_args.c:870 msgid "read password from standard input" msgstr "lei la passwrod dal standard input" -#: src/parse_args.c:658 +#: src/parse_args.c:873 msgid "run shell as the target user; a command may also be specified" msgstr "eseguìs la shell come l'utent di destinazion; si podarès ancje specificâ un comant" -#: src/parse_args.c:661 +#: src/parse_args.c:877 msgid "create SELinux security context with specified type" msgstr "cree il contest di sigurece SELinux cul gjenar specificât" -#: src/parse_args.c:664 +#: src/parse_args.c:880 msgid "terminate command after the specified time limit" msgstr "termine il comant dopo il limit di timp specificât" -#: src/parse_args.c:666 +#: src/parse_args.c:883 msgid "in list mode, display privileges for user" msgstr "in modalitât liste, mostre i privileçs dal utent" -#: src/parse_args.c:668 +#: src/parse_args.c:886 msgid "run command (or edit file) as specified user name or ID" msgstr "eseguìs il comant (o modifiche il file) come non utent o ID specificât" -#: src/parse_args.c:670 +#: src/parse_args.c:888 msgid "display version information and exit" msgstr "mostre informazions di version e jes" -#: src/parse_args.c:672 +#: src/parse_args.c:891 msgid "update user's timestamp without running a command" -msgstr "" +msgstr "inzorne la marche temporâl dal utent cence eseguî un comant" -#: src/parse_args.c:674 +#: src/parse_args.c:894 msgid "stop processing command line arguments" msgstr "ferme la elaborazion dai argoments a rie di comant" -#: src/selinux.c:77 +#: src/selinux.c:83 msgid "unable to open audit system" msgstr "impussibil vierzi il sisteme di audit" -#: src/selinux.c:87 +#: src/selinux.c:93 msgid "unable to send audit message" msgstr "impussibil inviâ il messaç di audit" -#: src/selinux.c:115 +#: src/selinux.c:129 #, c-format msgid "unable to fgetfilecon %s" msgstr "impussibil eseguî fgetfilecon %s" -#: src/selinux.c:120 +#: src/selinux.c:134 #, c-format msgid "%s changed labels" msgstr "%s al à modificâts lis etichetis" -#: src/selinux.c:125 +#: src/selinux.c:142 #, c-format msgid "unable to restore context for %s" msgstr "impussibil ripristinâ il contest par %s" -#: src/selinux.c:165 +#: src/selinux.c:190 #, c-format msgid "unable to open %s, not relabeling tty" msgstr "impussibil vierzi %s, no si torne a etichetâ tty" -#: src/selinux.c:173 +#: src/selinux.c:194 src/selinux.c:239 src/selinux.c:269 +#, c-format +msgid "%s is not a character device, not relabeling tty" +msgstr "%s nol è un dispositîf a caratars, no si torne a etichetâ tty" + +#: src/selinux.c:203 msgid "unable to get current tty context, not relabeling tty" msgstr "impussibil otignî il contest tty atuâl, no si torne a etichetâ tty" -#: src/selinux.c:180 +#: src/selinux.c:210 msgid "unknown security class \"chr_file\", not relabeling tty" msgstr "classe di sigurece \"chr_file\" no cognossude, no si torne a etichetâ tty" -#: src/selinux.c:185 +#: src/selinux.c:215 msgid "unable to get new tty context, not relabeling tty" msgstr "impussibil otignî il gnûf contest tty, no si torne a etichetâ tty" -#: src/selinux.c:192 +#: src/selinux.c:224 msgid "unable to set new tty context" msgstr "impussibil stabilî un gnûf contest tty" -#: src/selinux.c:256 +#: src/selinux.c:323 #, c-format msgid "you must specify a role for type %s" msgstr "si scugne specificâ un rûl pal gjenar %s" -#: src/selinux.c:262 +#: src/selinux.c:329 #, c-format msgid "unable to get default type for role %s" msgstr "impussibil otignî il gjenar predefinît pal rûl %s" -#: src/selinux.c:280 +#: src/selinux.c:341 +msgid "failed to get new context" +msgstr "impussibil otignî un gnûf contest" + +#: src/selinux.c:350 #, c-format msgid "failed to set new role %s" msgstr "no si è rivâts a stabilî il gnûf rûl %s" -#: src/selinux.c:284 +#: src/selinux.c:354 #, c-format msgid "failed to set new type %s" msgstr "no si è rivâts a stabilî il gnûf gjenar %s" -#: src/selinux.c:296 +#: src/selinux.c:366 #, c-format msgid "%s is not a valid context" msgstr "%s nol è un contest valit" -#: src/selinux.c:331 -msgid "failed to get old_context" -msgstr "no si è rivâts a otignî old_context" +#: src/selinux.c:394 +msgid "failed to get old context" +msgstr "impussibil otignî il contest vecjo" -#: src/selinux.c:337 +#: src/selinux.c:400 msgid "unable to determine enforcing mode." -msgstr "" +msgstr "impussibil determinâ la modalitât di costrizion." -#: src/selinux.c:354 -#, c-format -msgid "unable to set tty context to %s" -msgstr "impussibil meti il contest di tty a %s" - -#: src/selinux.c:393 +#: src/selinux.c:425 #, c-format msgid "unable to set exec context to %s" msgstr "impussibil meti il contest di exec a %s" -#: src/selinux.c:400 +#: src/selinux.c:432 #, c-format msgid "unable to set key creation context to %s" msgstr "impussibil meti il contest de creazion de clâf a %s" -#: src/sesh.c:77 -msgid "requires at least one argument" -msgstr "al domande almancul un argoment" +#: src/sesh.c:114 src/sesh.c:134 +msgid "Only one of the -c or -i options may be specified" +msgstr "Al è pussibil specificâ dome une des opzions -c o -i" -#: src/sesh.c:106 +#: src/sesh.c:129 #, c-format msgid "invalid file descriptor number: %s" msgstr "numar descritôr file no valit: %s" -#: src/sesh.c:120 +#: src/sesh.c:167 src/sesh.c:171 src/sesh.c:175 #, c-format -msgid "unable to run %s as a login shell" -msgstr "impussibil eseguî %s come une shell di acès" +msgid "The -%c option may not be used in edit mode." +msgstr "Nol è pussibil doprâ la opzion -%c te modalitât di modifiche" -#: src/sesh.c:125 src/sudo.c:1305 +#: src/sesh.c:184 src/sesh.c:189 #, c-format -msgid "unable to execute %s" -msgstr "impussibil eseguî %s" +msgid "The -%c option may only be used in edit mode." +msgstr "Al è pussibil doprâ la opzion -%c dome te modalitât di modifiche." + +#: src/sesh.c:294 src/sesh.c:394 src/sudo_edit.c:204 +#, c-format +msgid "%s: editing symbolic links is not permitted" +msgstr "%s: la modifiche dai colegaments simbolics no je permetude" + +#: src/sesh.c:297 src/sesh.c:397 src/sudo_edit.c:207 +#, c-format +msgid "%s: editing files in a writable directory is not permitted" +msgstr "%s: la modifiche dai file intune cartele cun acès in scriture no je permetude" + +#: src/sesh.c:381 src/sesh.c:402 src/sesh.c:411 src/sesh.c:419 +#: src/sudo_edit.c:331 +#, c-format +msgid "contents of edit session left in %s" +msgstr "contignûts de session di modifiche lassâts in %s" -#: src/signal.c:69 +#: src/sesh.c:476 src/sudo_edit.c:94 +msgid "unable to get group list" +msgstr "impussibil otignî la liste dai grups" + +#: src/signal.c:79 #, c-format msgid "unable to save handler for signal %d" msgstr "impussibil salvâ il gjestôr pal segnâl %d" -#: src/solaris.c:76 +#: src/solaris.c:72 msgid "resource control limit has been reached" msgstr "si è rivâts al limit di control de risorse" -#: src/solaris.c:79 +#: src/solaris.c:75 #, c-format msgid "user \"%s\" is not a member of project \"%s\"" msgstr "l'utent \"%s\" nol è un membri dal progjet \"%s\"" -#: src/solaris.c:83 +#: src/solaris.c:79 msgid "the invoking task is final" -msgstr "" +msgstr "la ativitât di invocazion e je definitive" -#: src/solaris.c:86 +#: src/solaris.c:82 #, c-format msgid "could not join project \"%s\"" msgstr "impussibil unîsi al progjet \"%s\"" -#: src/solaris.c:91 +#: src/solaris.c:89 #, c-format msgid "no resource pool accepting default bindings exists for project \"%s\"" msgstr "nissun font di risorsis pal progjet \"%s\" che al aceti i vincui predefinîts" -#: src/solaris.c:95 +#: src/solaris.c:93 #, c-format msgid "specified resource pool does not exist for project \"%s\"" msgstr "il font di risorsis specificât nol esist pal progjet \"%s\"" -#: src/solaris.c:99 +#: src/solaris.c:97 #, c-format msgid "could not bind to default resource pool for project \"%s\"" msgstr "impussibil vincolâ al font di risorsis predefinît pal progjet \"%s\"" -#: src/solaris.c:105 +#: src/solaris.c:104 #, c-format msgid "setproject failed for project \"%s\"" msgstr "setproject al à falît pal progjet \"%s\"" -#: src/solaris.c:107 +#: src/solaris.c:106 #, c-format msgid "warning, resource control assignment failed for project \"%s\"" msgstr "avertiment, faliment de assegnazion dal control de risorse pal progjet \"%s\"" -#: src/sudo.c:212 +#: src/sudo.c:216 #, c-format msgid "Sudo version %s\n" msgstr "Version di sudo: %s\n" -#: src/sudo.c:214 +#: src/sudo.c:218 #, c-format msgid "Configure options: %s\n" msgstr "Opzions di configurazion: %s\n" -#: src/sudo.c:222 +#: src/sudo.c:226 msgid "fatal error, unable to load plugins" msgstr "erôr fatâl, impussibil cjariâ i plugin" -#: src/sudo.c:230 -msgid "unable to initialize policy plugin" -msgstr "impussibil inizializâ il plugin de politiche" - -#: src/sudo.c:274 +#: src/sudo.c:272 msgid "plugin did not return a command to execute" msgstr "il plugin nol à tornât un comant di eseguî" -#: src/sudo.c:290 -#, c-format -msgid "error initializing I/O plugin %s" -msgstr "erôr tal inizializâ il plugin I/O %s" - -#: src/sudo.c:316 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "modalitât 0x%x di sudo inspietade" -#: src/sudo.c:468 -msgid "unable to get group vector" -msgstr "impussibil otignî il vetôr di grup" - -#: src/sudo.c:530 +#: src/sudo.c:555 #, c-format -msgid "unknown uid %u: who are you?" -msgstr "uid %u no cognossût: cui sêstu?" +msgid "you do not exist in the %s database" +msgstr "no tu esistis te base di dâts %s" -#: src/sudo.c:586 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "impussibil determinâ tty" -#: src/sudo.c:874 +#: src/sudo.c:928 +msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." +msgstr "La opzion (flag) \"no new privileges\" (nissun gnûf privileç) e je definide. Chest al impedìs a sudo di zirâ come root." + +#: src/sudo.c:930 +msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." +msgstr "Se sudo al ven eseguît intun contignidôr, tu varessis di justâ la configurazion dal contignidôr par disabilitâ la flag (opzion)." + +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s al scugne jessi di proprietât dal uid %d e vê stabilît il bit setuid" -#: src/sudo.c:877 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "il uid efetîf nol è %d, %s isal suntun filesystem cun stabilide la opzion 'nosuid' o un filesystem NFS cence privileçs di root?" -#: src/sudo.c:883 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "il uid efetîf nol è %d, sudo isal instalât cun setuid root?" -#: src/sudo.c:964 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "impussibil stabilî il ID di grup suplementâr" -#: src/sudo.c:971 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "impussibil stabilî il gid efetîf par eseguî come gid %u" -#: src/sudo.c:977 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "impussibil stabilî il gid par eseguî come gid %u" -#: src/sudo.c:1048 -#, c-format -msgid "unknown login class %s" -msgstr "classe di acès %s no cognossude" - -#: src/sudo.c:1061 -msgid "unable to set user context" -msgstr "impussibil stabilî il contest utent" +#: src/sudo.c:1032 +msgid "argv not set by the security policy" +msgstr "argv nol è stabilît de politiche di sigurece" -#: src/sudo.c:1077 -msgid "unable to set process priority" -msgstr "impussibil stabilî la prioritât dal procès" +#: src/sudo.c:1036 +msgid "envp not set by the security policy" +msgstr "envp nol è stabilît de politiche di sigurece" -#: src/sudo.c:1085 -#, c-format -msgid "unable to change root to %s" -msgstr "impussibil cambiâ root a %s" - -#: src/sudo.c:1098 src/sudo.c:1104 src/sudo.c:1111 -#, c-format -msgid "unable to change to runas uid (%u, %u)" -msgstr "impussibil passâ a un diviers uid (%u, %u)" - -#: src/sudo.c:1129 -#, c-format -msgid "unable to change directory to %s" -msgstr "impussibil passâ ae cartele a %s" - -#: src/sudo.c:1187 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "condizion di jessude dal fi inspietade: %d" -#: src/sudo.c:1333 +#: src/sudo.c:1171 +msgid "unable to initialize policy plugin" +msgstr "impussibil inizializâ il plugin de politiche" + +#: src/sudo.c:1233 #, c-format -msgid "policy plugin %s is missing the `check_policy' method" -msgstr "il plugin di politiche %s al mancje dal metodi `check_policy'" +msgid "policy plugin %s is missing the \"check_policy\" method" +msgstr "il plugin de politiche %s al mancje dal metodi \"check_policy\"" -#: src/sudo.c:1351 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "il plugin di politiche %s nol supuarte il listâ dai privileçs" -#: src/sudo.c:1368 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "il plugin di politiche %s nol supuarte la opzion -v" -#: src/sudo.c:1383 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "il plugin di politiche %s nol supuarte lis opzions -k/-K" -#: src/sudo_edit.c:181 src/sudo_edit.c:270 -msgid "unable to restore current working directory" -msgstr "impussibil ripristinâ la cartele di lavôr atuâl" +#: src/sudo.c:1490 +#, c-format +msgid "error initializing I/O plugin %s" +msgstr "erôr tal inizializâ il plugin I/O %s" + +#: src/sudo.c:1493 +msgid "error initializing I/O plugin" +msgstr "erôr tal inizializâ il plugin I/O" -#: src/sudo_edit.c:577 src/sudo_edit.c:689 +#: src/sudo.c:1642 #, c-format -msgid "%s: not a regular file" -msgstr "%s: nol è un file regolâr." +msgid "error initializing audit plugin %s" +msgstr "erôr tal inizializâ il plugin di audit %s" -#: src/sudo_edit.c:584 +#: src/sudo.c:1721 #, c-format -msgid "%s: editing symbolic links is not permitted" -msgstr "%s: la modifiche dai colegaments simbolics no je permetude" +msgid "%s: unable to log error event%s%s" +msgstr "%s: impussibil regjistrâ l'event di erôr%s%s" -#: src/sudo_edit.c:587 +#: src/sudo.c:1757 #, c-format -msgid "%s: editing files in a writable directory is not permitted" -msgstr "%s: la modifiche dai file intune cartele cun acès in scriture no je permetude" +msgid "%s: unable to log accept event%s%s" +msgstr "%s: impussibil regjistrâ l'event di acetazion%s%s" -#: src/sudo_edit.c:620 src/sudo_edit.c:728 +#: src/sudo.c:1762 src/sudo.c:1800 +msgid "audit plugin error" +msgstr "erôr dal plugin di audit" + +#: src/sudo.c:1795 +#, c-format +msgid "%s: unable to log reject event%s%s" +msgstr "%s: impussibil regjistrâ l'event di refudament%s%s" + +#: src/sudo.c:1855 #, c-format -msgid "%s: short write" -msgstr "%s: scriture curte" +msgid "error initializing approval plugin %s" +msgstr "erôr tal inizializâ il plugin di aprovazion %s" + +#: src/sudo.c:1925 +msgid "command rejected by approver" +msgstr "comant refudât da cui che al aprove" -#: src/sudo_edit.c:690 +#: src/sudo_edit.c:113 +msgid "no writable temporary directory found" +msgstr "nissune cartele temporanie scrivibile cjatade" + +#: src/sudo_edit.c:291 #, c-format msgid "%s left unmodified" msgstr "%s lassât no modificât" -#: src/sudo_edit.c:703 src/sudo_edit.c:889 +#: src/sudo_edit.c:304 src/sudo_edit.c:569 #, c-format msgid "%s unchanged" msgstr "%s no modificât" -#: src/sudo_edit.c:717 src/sudo_edit.c:739 -#, c-format -msgid "unable to write to %s" -msgstr "impussibil scrivi su %s" - -#: src/sudo_edit.c:718 src/sudo_edit.c:737 src/sudo_edit.c:740 -#: src/sudo_edit.c:914 src/sudo_edit.c:918 -#, c-format -msgid "contents of edit session left in %s" -msgstr "contignûts de session di modifiche lassâts in %s" - -#: src/sudo_edit.c:736 -msgid "unable to read temporary file" -msgstr "impussibil lei il file temporani" - -#: src/sudo_edit.c:819 +#: src/sudo_edit.c:481 msgid "sesh: internal error: odd number of paths" msgstr "sesh: erôr interni: strani numar di percors" -#: src/sudo_edit.c:821 +#: src/sudo_edit.c:483 msgid "sesh: unable to create temporary files" msgstr "sesh: impussibil creâ file temporanis" -#: src/sudo_edit.c:823 src/sudo_edit.c:921 +#: src/sudo_edit.c:485 src/sudo_edit.c:604 +msgid "sesh: killed by a signal" +msgstr "sesh: copât di un segnâl" + +#: src/sudo_edit.c:487 src/sudo_edit.c:607 #, c-format msgid "sesh: unknown error %d" msgstr "sesh: erôr %d no cognossût" -#: src/sudo_edit.c:913 +#: src/sudo_edit.c:597 msgid "unable to copy temporary files back to their original location" msgstr "impussibil tornâ a copiâ i file temporanis te lôr posizion origjinarie" -#: src/sudo_edit.c:917 +#: src/sudo_edit.c:601 msgid "unable to copy some of the temporary files back to their original location" msgstr "impussibil tornâ a copiâ cualchidun dai file temporanis te lôr posizion origjinarie" -#: src/sudo_edit.c:961 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "impussibil cambiâ il uid a root (%u)" -#: src/sudo_edit.c:978 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "erôr di plugin: liste di files par sudoedit no valide" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "erôr di plugin: e mancje la liste file par sudoedit" -#: src/sudo_edit.c:1019 src/sudo_edit.c:1032 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "impussibil lei l'orloi" -#: src/tgetpass.c:107 -msgid "no tty present and no askpass program specified" -msgstr "nissun tty presint e nissun program specificât pe richieste password" +#: src/sudo_intercept_common.c:365 +msgid "intercept port not set" +msgstr "puarte di intercetazion no stabilide" -#: src/tgetpass.c:116 +#: src/tgetpass.c:95 +msgid "timed out reading password" +msgstr "timp scjadût tal lei la password" + +#: src/tgetpass.c:98 +msgid "no password was provided" +msgstr "no je stade furnide nissune password" + +#: src/tgetpass.c:101 +msgid "unable to read password" +msgstr "impussibil lei la password" + +#: src/tgetpass.c:141 +msgid "a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper" +msgstr "al è necessari un terminâl par lei la password; o tu dopris la opzion -S par lei dal standard input opûr configure un aiût askpass" + +#: src/tgetpass.c:152 msgid "no askpass program specified, try setting SUDO_ASKPASS" msgstr "nissun program pe richieste password specificât, cîr di stabilî SUDO_ASKPASS" -#: src/tgetpass.c:261 +#: src/tgetpass.c:326 #, c-format msgid "unable to set gid to %u" msgstr "impussibil stabilî il gid a %u" -#: src/tgetpass.c:265 +#: src/tgetpass.c:336 #, c-format msgid "unable to set uid to %u" msgstr "impussibil stabilî il uid a %u" -#: src/tgetpass.c:270 +#: src/tgetpass.c:341 #, c-format msgid "unable to run %s" msgstr "impussibil eseguî %s" -#: src/utmp.c:268 +#: src/utmp.c:288 msgid "unable to save stdin" msgstr "impussibil salvâ stdin" -#: src/utmp.c:270 +#: src/utmp.c:290 msgid "unable to dup2 stdin" msgstr "impussibil esguî dup2 su stdin" -#: src/utmp.c:273 +#: src/utmp.c:293 msgid "unable to restore stdin" msgstr "impussibil ripristinâ stdin" + +#~ msgid "error reading from signal pipe" +#~ msgstr "erôr tal lei dal condot (pipe) dal segnâl" + +#~ msgid "%s%s: %s" +#~ msgstr "%s%s: %s" + +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s al scugne jessi di proprietât dal uid %d" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s al scugne jessi scrivibil dome dal proprietari" + +#~ msgid "ignoring duplicate policy plugin \"%s\" in %s, line %d" +#~ msgstr "si ignore il plugin di politiche duplicât \"%s\" in %s, rie %d" + +#~ msgid "unable to set tty context to %s" +#~ msgstr "impussibil meti il contest di tty a %s" + +#~ msgid "requires at least one argument" +#~ msgstr "al domande almancul un argoment" + +#~ msgid "unable to run %s as a login shell" +#~ msgstr "impussibil eseguî %s come une shell di acès" + +#~ msgid "unknown uid %u: who are you?" +#~ msgstr "uid %u no cognossût: cui sêstu?" + +#~ msgid "%s: short write" +#~ msgstr "%s: scriture curte" + +#~ msgid "unable to read temporary file" +#~ msgstr "impussibil lei il file temporani" + +#~ msgid "no tty present and no askpass program specified" +#~ msgstr "nissun tty presint e nissun program specificât pe richieste password" diff --git a/po/hr.mo b/po/hr.mo index a8dcaad395..0e90301923 100644 Binary files a/po/hr.mo and b/po/hr.mo differ diff --git a/po/hr.po b/po/hr.po index a36db58aad..8747edb47e 100644 --- a/po/hr.po +++ b/po/hr.po @@ -1,13 +1,13 @@ # Translation of sudo to Croatian. # This file is put in the public domain. # Tomislav Krznar , 2012, 2013. -# Božidar Putanec , 2016, 2017, 2018, 2019, 2020, 2021, 2022. +# Božidar Putanec , 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023. msgid "" msgstr "" -"Project-Id-Version: sudo-1.9.11b1\n" +"Project-Id-Version: sudo-1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-05-27 08:39-0600\n" -"PO-Revision-Date: 2022-05-30 11:14-0700\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 17:15-0800\n" "Last-Translator: Božidar Putanec \n" "Language-Team: Croatian \n" "Language: hr\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\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" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.2.2\n" "X-Poedit-Basepath: sources/sudo-1.8.26b1\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SearchPath-0: .\n" @@ -35,76 +35,75 @@ msgid "unable to restore registry" msgstr "nije moguće obnoviti registar" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:218 -#: lib/util/sudo_conf.c:304 lib/util/sudo_conf.c:381 lib/util/sudo_conf.c:665 -#: src/conversation.c:80 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:224 src/exec_nopty.c:233 -#: src/exec_nopty.c:240 src/exec_nopty.c:247 src/exec_nopty.c:254 -#: src/exec_nopty.c:261 src/exec_nopty.c:268 src/exec_nopty.c:275 -#: src/exec_nopty.c:282 src/exec_nopty.c:289 src/exec_nopty.c:296 -#: src/exec_nopty.c:303 src/exec_nopty.c:311 src/exec_nopty.c:549 -#: src/exec_preload.c:143 src/exec_preload.c:204 src/exec_ptrace.c:632 -#: src/exec_ptrace.c:730 src/exec_ptrace.c:895 src/exec_pty.c:845 -#: src/exec_pty.c:854 src/exec_pty.c:911 src/exec_pty.c:1075 -#: src/exec_pty.c:1265 src/exec_pty.c:1274 src/exec_pty.c:1281 -#: src/exec_pty.c:1288 src/exec_pty.c:1295 src/exec_pty.c:1302 -#: src/exec_pty.c:1309 src/exec_pty.c:1316 src/exec_pty.c:1323 -#: src/exec_pty.c:1330 src/exec_pty.c:1337 src/exec_pty.c:1345 -#: src/exec_pty.c:1811 src/load_plugins.c:156 src/load_plugins.c:181 -#: src/load_plugins.c:217 src/load_plugins.c:449 src/load_plugins.c:455 -#: src/parse_args.c:169 src/parse_args.c:190 src/parse_args.c:264 -#: src/parse_args.c:613 src/parse_args.c:635 src/parse_args.c:660 -#: src/preserve_fds.c:46 src/preserve_fds.c:131 src/selinux.c:89 -#: src/selinux.c:362 src/selinux.c:474 src/selinux.c:485 src/sesh.c:113 -#: src/sesh.c:146 src/sesh.c:152 src/sesh.c:159 src/sesh.c:165 src/sesh.c:410 -#: src/sudo.c:639 src/sudo.c:712 src/sudo.c:722 src/sudo.c:748 src/sudo.c:771 -#: src/sudo.c:780 src/sudo.c:789 src/sudo.c:806 src/sudo.c:848 src/sudo.c:858 -#: src/sudo.c:891 src/sudo.c:1100 src/sudo.c:1121 src/sudo.c:1414 -#: src/sudo.c:1583 src/sudo.c:1810 src/sudo.c:2144 src/sudo_edit.c:89 -#: src/sudo_edit.c:149 src/sudo_edit.c:429 src/sudo_edit.c:438 -#: src/sudo_edit.c:539 src/sudo_edit.c:546 src/sudo_edit.c:677 -#: src/sudo_edit.c:697 src/sudo_intercept_common.c:113 -#: src/sudo_intercept_common.c:317 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 +#: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 +#: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 +#: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 +#: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:219 lib/util/sudo_conf.c:304 lib/util/sudo_conf.c:381 -#: lib/util/sudo_conf.c:665 src/conversation.c:81 src/exec_intercept.c:68 -#: src/exec_intercept.c:336 src/exec_intercept.c:359 src/exec_intercept.c:367 -#: src/exec_intercept.c:392 src/exec_intercept.c:398 src/exec_intercept.c:407 -#: src/exec_intercept.c:413 src/exec_intercept.c:478 src/exec_intercept.c:588 -#: src/exec_intercept.c:707 src/exec_monitor.c:458 src/exec_monitor.c:464 -#: src/exec_monitor.c:472 src/exec_monitor.c:480 src/exec_monitor.c:487 -#: src/exec_monitor.c:494 src/exec_monitor.c:501 src/exec_monitor.c:508 -#: src/exec_monitor.c:515 src/exec_monitor.c:522 src/exec_monitor.c:529 -#: src/exec_nopty.c:224 src/exec_nopty.c:233 src/exec_nopty.c:240 -#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 -#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 -#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 -#: src/exec_nopty.c:311 src/exec_preload.c:143 src/exec_preload.c:204 -#: src/exec_ptrace.c:632 src/exec_pty.c:845 src/exec_pty.c:854 -#: src/exec_pty.c:911 src/exec_pty.c:1265 src/exec_pty.c:1274 -#: src/exec_pty.c:1281 src/exec_pty.c:1288 src/exec_pty.c:1295 -#: src/exec_pty.c:1302 src/exec_pty.c:1309 src/exec_pty.c:1316 -#: src/exec_pty.c:1323 src/exec_pty.c:1330 src/exec_pty.c:1337 -#: src/exec_pty.c:1345 src/exec_pty.c:1811 src/load_plugins.c:156 -#: src/load_plugins.c:181 src/load_plugins.c:217 src/load_plugins.c:449 -#: src/load_plugins.c:455 src/parse_args.c:169 src/parse_args.c:191 -#: src/parse_args.c:264 src/parse_args.c:613 src/parse_args.c:635 -#: src/parse_args.c:660 src/preserve_fds.c:46 src/preserve_fds.c:131 -#: src/selinux.c:89 src/selinux.c:362 src/selinux.c:474 src/selinux.c:485 -#: src/sesh.c:113 src/sesh.c:411 src/sudo.c:230 src/sudo.c:639 src/sudo.c:891 -#: src/sudo.c:1100 src/sudo.c:1121 src/sudo.c:1414 src/sudo.c:1583 -#: src/sudo.c:1810 src/sudo.c:2144 src/sudo_edit.c:89 src/sudo_edit.c:149 -#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:539 -#: src/sudo_edit.c:546 src/sudo_edit.c:677 src/sudo_edit.c:697 -#: src/sudo_intercept_common.c:113 src/sudo_intercept_common.c:317 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 +#: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 +#: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 +#: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 +#: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 +#: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "nije moguće dodijeliti memoriju" @@ -118,24 +117,24 @@ msgstr "nije moguće stat (dobiti status datoteke) %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s postoji ali nije direktorij (0%o)" -#: lib/util/mkdir_parents.c:102 lib/util/sudo_conf.c:704 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:559 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "nije moguće otvoriti %s" -#: lib/util/mkdir_parents.c:119 lib/util/mkdir_parents.c:127 -#: lib/util/mkdir_parents.c:136 -#, c-format -msgid "unable to open %.*s" -msgstr "nije moguće otvoriti %.*s" - -#: lib/util/mkdir_parents.c:157 +#: lib/util/mkdir_parents.c:120 lib/util/mkdir_parents.c:160 #, c-format msgid "unable to mkdir %.*s" msgstr "nije moguće mkdir %.*s" -#: lib/util/regex.c:103 +#: lib/util/mkdir_parents.c:130 lib/util/mkdir_parents.c:139 +#, c-format +msgid "unable to open %.*s" +msgstr "nije moguće otvoriti %.*s" + +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "regularni izraz je prevelik" @@ -143,8 +142,8 @@ msgstr "regularni izraz je prevelik" msgid "Unknown signal" msgstr "Nepoznati signal" -#: lib/util/strtoid.c:87 lib/util/strtomode.c:52 lib/util/strtonum.c:148 -#: lib/util/strtonum.c:187 src/sesh.c:146 src/sesh.c:159 +#: lib/util/strtoid.c:84 lib/util/strtomode.c:52 lib/util/strtonum.c:148 +#: lib/util/strtonum.c:187 src/sesh.c:240 src/sesh.c:253 msgid "invalid value" msgstr "nevaljana vrijednost" @@ -156,86 +155,86 @@ msgstr "veličina je prevelika" msgid "value too small" msgstr "veličina je premala" -#: lib/util/sudo_conf.c:237 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "nevaljana Path vrijednost „%s“ u %s, redak %u" -#: lib/util/sudo_conf.c:403 lib/util/sudo_conf.c:419 lib/util/sudo_conf.c:472 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "nevaljana vrijednost za %s „%s“ u %s, redak %u" -#: lib/util/sudo_conf.c:440 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "nepodržani izvor grupe „%s“ u %s, redak %u" -#: lib/util/sudo_conf.c:456 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "nevaljani maksimalni broj grupa „%s“ u %s, redak %u" -#: lib/util/sudo_conf.c:681 src/copy_file.c:150 -#, c-format -msgid "unable to stat %s" -msgstr "nije moguće dobiti status od %s" - -#: lib/util/sudo_conf.c:684 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s nije obična datoteka" -#: lib/util/sudo_conf.c:687 src/copy_file.c:163 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "vlasnik %s je UID %u, a treba biti %u" -#: lib/util/sudo_conf.c:691 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s može svatko mijenjati/pisati" -#: lib/util/sudo_conf.c:694 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s može svaki član grupe mijenjati/pisati" -#: src/apparmor.c:79 +#: src/apparmor.c:85 msgid "failed to determine AppArmor confinement" msgstr "nije uspjelo utvrditi AppArmor ograničenje" -#: src/apparmor.c:87 +#: src/apparmor.c:93 #, c-format msgid "unable to change AppArmor profile to %s" msgstr "nije moguće promijeniti AppArmor profil na %s" -#: src/copy_file.c:93 +#: src/copy_file.c:94 #, c-format msgid "%s: truncate %s to zero bytes? (y/n) [n] " msgstr "%s: skratiti %s na nula bajtova? (y/n) [n] " -#: src/copy_file.c:97 +#: src/copy_file.c:98 #, c-format msgid "not overwriting %s" msgstr "ne piše preko %s" -#: src/copy_file.c:119 +#: src/copy_file.c:120 #, c-format msgid "unable to read from %s" msgstr "nije moguće pročitati %s" -#: src/copy_file.c:136 src/sudo_edit.c:320 +#: src/copy_file.c:137 src/sudo_edit.c:320 #, c-format msgid "unable to write to %s" msgstr "nije moguće pisati u %s" -#: src/copy_file.c:154 src/sesh.c:218 src/sudo_edit.c:197 +#: src/copy_file.c:151 +#, c-format +msgid "unable to stat %s" +msgstr "nije moguće dobiti status od %s" + +#: src/copy_file.c:155 src/sesh.c:312 src/sudo_edit.c:197 #, c-format msgid "%s: not a regular file" msgstr "%s: nije obična datoteka" -#: src/copy_file.c:158 +#: src/copy_file.c:159 #, c-format msgid "%s: bad file mode: 0%o" msgstr "%s: loš datotečni način: 0%o" @@ -244,61 +243,60 @@ msgstr "%s: loš datotečni način: 0%o" msgid "unable to restore current working directory" msgstr "nije moguće obnoviti trenutni radni direktorij" -#: src/exec.c:103 +#: src/exec.c:111 msgid "unable to set privileges" msgstr "nije moguće postaviti privilegije" -#: src/exec.c:109 src/exec.c:114 +#: src/exec.c:117 src/exec.c:122 msgid "unable to set limit privileges" msgstr "nije moguće postaviti ograničenja na privilegije" -#: src/exec.c:137 +#: src/exec.c:145 #, c-format msgid "unknown login class %s" msgstr "nepoznata prijavnička klasa %s" -#: src/exec.c:149 +#: src/exec.c:157 msgid "unable to set user context" msgstr "nije moguće uspostaviti korisnički kontekst" -#: src/exec.c:165 +#: src/exec.c:173 msgid "unable to set process priority" msgstr "nije moguće uspostaviti prioritet procesa" -#: src/exec.c:182 +#: src/exec.c:190 #, c-format msgid "unable to change root to %s" msgstr "nije moguće promijeniti root na %s" -#: src/exec.c:195 src/exec.c:201 src/exec.c:208 +#: src/exec.c:203 src/exec.c:209 src/exec.c:216 #, c-format msgid "unable to change to runas uid (%u, %u)" msgstr "nije moguće promijeniti na runas UID (%u, %u)" -#: src/exec.c:226 +#: src/exec.c:238 src/sesh.c:199 #, c-format msgid "unable to change directory to %s" msgstr "nije moguće promijeniti direktorij na %s" -#: src/exec.c:230 +#: src/exec.c:243 #, c-format msgid "starting from %s" msgstr "počevši od %s" # Handler, an asynchronous callback (computer programming) subroutine in computing -#: src/exec.c:312 src/exec_monitor.c:575 src/exec_monitor.c:577 -#: src/exec_monitor.c:648 src/exec_nopty.c:439 src/exec_pty.c:586 -#: src/exec_pty.c:1447 src/exec_pty.c:1449 src/signal.c:144 src/signal.c:151 -#: src/signal.c:165 src/suspend_nopty.c:89 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 +#: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" msgstr "nije moguće postaviti rukovatelja za signal %d" -#: src/exec.c:391 +#: src/exec.c:422 msgid "intercept mode is not supported with SELinux RBAC on this system" msgstr "presretanje nije podržano s SELinux RBAC na ovom sustavu" -#: src/exec.c:396 +#: src/exec.c:427 msgid "unable to log sub-commands with SELinux RBAC on this system" msgstr "nije moguće bilježiti podkomande s SELinux RBAC na ovom sustavu" @@ -306,286 +304,290 @@ msgstr "nije moguće bilježiti podkomande s SELinux RBAC na ovom sustavu" msgid "unable to remove PRIV_PROC_EXEC from PRIV_LIMIT" msgstr "nije moguće ukloniti PRIV_PROC_EXEC iz PRIV_LIMIT" -#: src/exec_intercept.c:95 src/exec_intercept.c:674 src/exec_intercept.c:864 -#: src/exec_intercept.c:876 src/exec_monitor.c:466 src/exec_monitor.c:474 -#: src/exec_monitor.c:482 src/exec_monitor.c:489 src/exec_monitor.c:496 -#: src/exec_monitor.c:503 src/exec_monitor.c:510 src/exec_monitor.c:517 -#: src/exec_monitor.c:524 src/exec_monitor.c:531 src/exec_nopty.c:226 -#: src/exec_nopty.c:235 src/exec_nopty.c:242 src/exec_nopty.c:249 -#: src/exec_nopty.c:256 src/exec_nopty.c:263 src/exec_nopty.c:270 -#: src/exec_nopty.c:277 src/exec_nopty.c:284 src/exec_nopty.c:291 -#: src/exec_nopty.c:298 src/exec_nopty.c:305 src/exec_nopty.c:313 -#: src/exec_pty.c:711 src/exec_pty.c:716 src/exec_pty.c:813 src/exec_pty.c:820 -#: src/exec_pty.c:917 src/exec_pty.c:1267 src/exec_pty.c:1276 -#: src/exec_pty.c:1283 src/exec_pty.c:1290 src/exec_pty.c:1297 -#: src/exec_pty.c:1304 src/exec_pty.c:1311 src/exec_pty.c:1318 -#: src/exec_pty.c:1325 src/exec_pty.c:1332 src/exec_pty.c:1339 -#: src/exec_pty.c:1764 src/exec_pty.c:1774 src/exec_pty.c:1819 -#: src/exec_pty.c:1826 src/exec_pty.c:1853 +#: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 +#: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "nije moguće dodati događaj u red čekanja" -#: src/exec_intercept.c:344 src/sudo.c:1226 src/sudo.c:1271 src/sudo.c:1315 +#: src/exec_intercept.c:317 src/sudo.c:1028 +msgid "command not set by the security policy" +msgstr "naredba nije postavljena po sigurnosnim pravilima" + +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "pravilnik (policy) je odbio izvršiti naredbu" -#: src/exec_intercept.c:437 src/sudo.c:1231 src/sudo.c:1276 src/sudo.c:1320 -#: src/sudo.c:1394 +#: src/exec_intercept.c:505 src/sudo.c:1935 +msgid "approval plugin error" +msgstr "greška plugina za odobravanje" + +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "greška plugina s pravilima (policy plugin)" -#: src/exec_intercept.c:462 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "nevaljani PolicyCheckRequest" -#: src/exec_intercept.c:584 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "zahtjev klijenta je prevelik: %zu" -#: src/exec_intercept.c:622 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "nije moguće raspakirati %s veličinu %zu" -#: src/exec_intercept.c:665 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "neočekivana vrijednost type_case %d in %s od %s" -#: src/exec_intercept.c:695 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "poruka servera je prevelika: %zu" -#: src/exec_monitor.c:360 +#: src/exec_iolog.c:323 src/exec_iolog.c:363 src/exec_iolog.c:403 +#: src/exec_iolog.c:454 src/exec_iolog.c:505 +msgid "I/O plugin error" +msgstr "greška U/I plugina (I/O plugin)" + +#: src/exec_iolog.c:327 src/exec_iolog.c:367 src/exec_iolog.c:407 +#: src/exec_iolog.c:458 src/exec_iolog.c:509 +msgid "command rejected by I/O plugin" +msgstr "U/I plugin je odbio izvršiti naredbu" + +#: src/exec_iolog.c:556 +msgid "error logging suspend" +msgstr "obustava evidentiranja greški" + +#: src/exec_iolog.c:591 +msgid "error changing window size" +msgstr "pogreška pri mijenjanju veličine prozora" + +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "greška pri čitanju iz para utičnica" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" -msgstr "neočekivana vrsta odgovora na povratnom kanalu: %d" +msgstr "neočekivani tip odgovora na povratnom kanalu: %d" -#: src/exec_monitor.c:593 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "nije moguće uspostaviti upravljački TTY" -#: src/exec_monitor.c:601 src/exec_nopty.c:382 src/exec_pty.c:1526 -#: src/exec_pty.c:1547 src/exec_pty.c:1567 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "nije moguće napraviti cijev" -#: src/exec_monitor.c:611 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "nije moguće primiti poruku od pretka (roditelja)" -#: src/exec_monitor.c:627 src/exec_nopty.c:422 src/exec_pty.c:1605 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" -msgstr "nije moguće kreirati potomka (dijete)" +msgstr "nije moguće stvoriti novi proces (greška u fork())" -#: src/exec_monitor.c:631 src/exec_monitor.c:749 src/exec_nopty.c:518 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "nije moguće obnoviti TTY etiketu" -#: src/exec_monitor.c:664 src/sesh.c:123 src/sudo.c:1177 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "nije moguće izvršiti %s" # initialization > inicirati > dati/davati inicijativu, pobudu; pokrenuti/pokretati, započeti/započinjati -#: src/exec_nopty.c:376 src/exec_pty.c:1456 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "plugin s pravilima nije uspio pokrenuti inicijalizaciju sesije" -#: src/exec_nopty.c:391 src/exec_pty.c:1425 src/exec_pty.c:1434 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "nije moguće napraviti utičnice" -#: src/exec_nopty.c:506 src/exec_pty.c:1703 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "greška u petlji događaja" -#: src/exec_ptrace.c:647 -msgid "insufficient space for execve arguments" -msgstr "nema dovoljno mjesta za execve argumente" - -#: src/exec_ptrace.c:658 src/exec_ptrace.c:668 src/exec_ptrace.c:678 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 +#: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format -msgid "unable to read execve %s for process %d" -msgstr "nije moguće pročitati execve %s za proces %d" +msgid "internal error, %s overflow" +msgstr "**interna greška**, %s prelijevanje" -#: src/exec_ptrace.c:714 src/exec_ptrace.c:739 src/exec_ptrace.c:1194 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "nije moguće postaviti registre za proces %d" -#: src/exec_ptrace.c:734 src/exec_ptrace.c:899 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "%d proces završio je neočekivano" -#: src/exec_ptrace.c:843 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "nije moguće postaviti seccomp filtar" -#: src/exec_ptrace.c:934 +#: src/exec_ptrace.c:1405 +#, c-format +msgid "interpreter argument , expected \"%s\", got \"%s\"" +msgstr "argument interpretera, očekivano „%s“, a dobiveno je „%s“" + +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "nepodudaranje imena staza, očekivano „%s“, a dobiveno je „%s“" -#: src/exec_ptrace.c:942 src/exec_ptrace.c:948 src/exec_ptrace.c:954 -#: src/exec_ptrace.c:962 src/exec_ptrace.c:968 src/exec_ptrace.c:974 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "nepodudaranje %s[%d], očekivano „%s“, a dobiveno je „%s“" -#: src/exec_ptrace.c:1013 +#: src/exec_ptrace.c:1620 +#, c-format +msgid "process %d unexpected status 0x%x" +msgstr "proces %d neočekivani status 0x%x" + +#: src/exec_ptrace.c:1711 #, c-format msgid "unable to get event message for process %d" msgstr "nije moguće dobiti poruku od događaja za proces %d" -#: src/exec_ptrace.c:1019 +#: src/exec_ptrace.c:1718 #, c-format msgid "unable to get registers for process %d" msgstr "nije moguće dobiti registre za proces %d" -#: src/exec_pty.c:163 +#: src/exec_pty.c:103 msgid "unable to allocate pty" msgstr "nije moguće dodijeliti PTY" -#: src/exec_pty.c:227 src/exec_pty.c:267 src/exec_pty.c:307 src/exec_pty.c:358 -#: src/exec_pty.c:409 -msgid "I/O plugin error" -msgstr "greška U/I plugina (I/O plugin)" - -#: src/exec_pty.c:231 src/exec_pty.c:271 src/exec_pty.c:311 src/exec_pty.c:362 -#: src/exec_pty.c:413 -msgid "command rejected by I/O plugin" -msgstr "U/I plugin je odbio izvršiti naredbu" - -#: src/exec_pty.c:460 -msgid "error logging suspend" -msgstr "obustava evidentiranja greški" - -#: src/exec_pty.c:494 -msgid "error changing window size" -msgstr "pogreška pri mijenjanju veličine prozora" - -#: src/exec_pty.c:624 src/signal.c:101 src/suspend_nopty.c:95 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "nije moguće obnoviti rukovatelja za signal %d" -#: src/exec_pty.c:1651 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "nije moguće poslati poruku za praćenje procesa" -#: src/load_plugins.c:108 src/load_plugins.c:122 src/load_plugins.c:128 -#: src/load_plugins.c:277 src/load_plugins.c:287 src/load_plugins.c:297 -#: src/load_plugins.c:344 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "greška u %s, redak %d pri učitavanju plugina „%s“" -#: src/load_plugins.c:124 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "vlasnik %s mora biti UID %d" - -#: src/load_plugins.c:130 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "%s za pisanje mora biti dostupan samo vlasniku" - -#: src/load_plugins.c:241 src/load_plugins.c:312 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "zanemareni duplikat plugina „%s“ u %s, redak %d" -#: src/load_plugins.c:279 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "nije moguće učitati %s: %s" -#: src/load_plugins.c:289 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "nije moguće pronaći simbol „%s“ u %s" -#: src/load_plugins.c:299 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "nekompatibilni plugin inačica %d (očekivana %d) pronađen u %s" -#: src/load_plugins.c:317 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "zanemareni plugin s pravilima „%s“ u %s, redak %d" -#: src/load_plugins.c:320 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "smije se navesti samo jedan plugin s pravilima" -#: src/load_plugins.c:346 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" -msgstr "nepoznata vrsta %d plugina pronađena u %s" +msgstr "nepoznati tip %d plugina pronađena u %s" -#: src/load_plugins.c:529 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "plugin s pravilima %s ne sadrži metodu check_policy" -#: src/net_ifs.c:210 src/net_ifs.c:376 src/net_ifs.c:437 src/net_ifs.c:624 -#: src/net_ifs.c:855 src/sudo.c:486 src/sudo_edit.c:398 src/sudo_edit.c:406 -#, c-format -msgid "internal error, %s overflow" -msgstr "**interna greška**, %s prelijevanje" - -#: src/parse_args.c:211 +#: src/parse_args.c:214 #, c-format msgid "invalid environment variable name: %s" msgstr "nevaljano ime varijable okoline: %s" -#: src/parse_args.c:314 +#: src/parse_args.c:317 msgid "the argument to -C must be a number greater than or equal to 3" msgstr "argument za -C mora biti broj veći ili jednak 3" -#: src/parse_args.c:545 +#: src/parse_args.c:554 msgid "you may not specify both the -i and -s options" msgstr "ne smijete navesti istovremeno opcije -i i -s" -#: src/parse_args.c:550 +#: src/parse_args.c:559 msgid "you may not specify both the -i and -E options" msgstr "ne smijete navesti istovremeno opcije -i i -E" -#: src/parse_args.c:560 +#: src/parse_args.c:569 msgid "the -E option is not valid in edit mode" msgstr "opcija -E nije valjana kad se redigira (in edit mode)" -#: src/parse_args.c:563 +#: src/parse_args.c:572 msgid "you may not specify environment variables in edit mode" msgstr "ne smijete specificirati varijable okoline kad se redigira (in edit mode)" -#: src/parse_args.c:573 +#: src/parse_args.c:582 msgid "the -U option may only be used with the -l option" -msgstr "opciju -U smijete koristiti samo uz -l opciju" +msgstr "Opciju -U smijete koristiti samo uz -l opciju." -#: src/parse_args.c:577 +#: src/parse_args.c:586 msgid "the -A and -S options may not be used together" msgstr "opcije -A i -S ne smiju se koristiti zajedno" -#: src/parse_args.c:674 +#: src/parse_args.c:684 msgid "sudoedit is not supported on this platform" msgstr "sudoedit nije podržan na ovoj platformi" -#: src/parse_args.c:757 +#: src/parse_args.c:767 msgid "Only one of the -e, -h, -i, -K, -l, -s, -v or -V options may be specified" msgstr "Smije se navesti samo jedna od opcija -e, -h, -i, -K, -l, -s, -v i -V" -#: src/parse_args.c:773 +#: src/parse_args.c:780 +msgid "Only one of the -K, -k or -N options may be specified" +msgstr "Smije se navesti samo jedna od opcija -K, -k ili -N" + +#: src/parse_args.c:796 #, c-format msgid "" "%s - edit files as another user\n" @@ -594,7 +596,7 @@ msgstr "" "%s - redigira datoteku kao neki drugi korisnik\n" "\n" -#: src/parse_args.c:775 +#: src/parse_args.c:798 #, c-format msgid "" "%s - execute a command as another user\n" @@ -603,7 +605,7 @@ msgstr "" "%s - izvrši naredbu kao neki drugi korisnik\n" "\n" -#: src/parse_args.c:781 +#: src/parse_args.c:804 msgid "" "\n" "Options:\n" @@ -611,131 +613,131 @@ msgstr "" "\n" "Opcije:\n" -#: src/parse_args.c:783 +#: src/parse_args.c:806 msgid "use a helper program for password prompting" msgstr "zahtjev za lozinku koristi pomoćni program" -#: src/parse_args.c:786 +#: src/parse_args.c:809 msgid "use specified BSD authentication type" -msgstr "rabi navedenu BSD autentifikaciju" +msgstr "rabi navedeni tip BSD autentifikacija" -#: src/parse_args.c:790 +#: src/parse_args.c:813 msgid "run command in the background" msgstr "pokrene naredbu u pozadini" -#: src/parse_args.c:793 +#: src/parse_args.c:816 msgid "ring bell when prompting" msgstr "pozvoni kad treba ulaz ili kad nešto pita" -#: src/parse_args.c:795 +#: src/parse_args.c:818 msgid "close all file descriptors >= num" msgstr "zatvara sve deskriptore datoteka >= num" -#: src/parse_args.c:798 +#: src/parse_args.c:821 msgid "run command with the specified BSD login class" msgstr "pokrene naredbu s navedenom BSD klasom prijave" -#: src/parse_args.c:801 +#: src/parse_args.c:824 msgid "change the working directory before running command" msgstr "promijenite radni direktorij prije pokretanja naredbe" -#: src/parse_args.c:804 +#: src/parse_args.c:827 msgid "preserve user environment when running command" msgstr "sačuva okolinu korisnika pri izvršenju naredbe" -#: src/parse_args.c:806 +#: src/parse_args.c:829 msgid "preserve specific environment variables" msgstr "sačuva specifične varijable okoline" -#: src/parse_args.c:808 +#: src/parse_args.c:831 msgid "edit files instead of running a command" msgstr "redigira datoteke umjesto pokretanja naredbe" -#: src/parse_args.c:811 +#: src/parse_args.c:834 msgid "run command as the specified group name or ID" msgstr "izvrši naredbu kao navedeno group ime ili ID" -#: src/parse_args.c:814 +#: src/parse_args.c:837 msgid "set HOME variable to target user's home dir" msgstr "var HOME postavi na osobni direktorij korisnika" -#: src/parse_args.c:817 +#: src/parse_args.c:840 msgid "display help message and exit" msgstr "pokaže ovu pomoć i iziđe" -#: src/parse_args.c:819 +#: src/parse_args.c:842 msgid "run command on host (if supported by plugin)" msgstr "pokrene naredbu na host računalu (ako to plugin podržava)" -#: src/parse_args.c:822 +#: src/parse_args.c:845 msgid "run login shell as the target user; a command may also be specified" msgstr "pokrene prijavnu ljusku kao ciljani korisnik; može se navesti i naredba" -#: src/parse_args.c:824 +#: src/parse_args.c:847 msgid "remove timestamp file completely" msgstr "sasvim ukloni datoteku s vremenskim oznakama" -#: src/parse_args.c:827 +#: src/parse_args.c:850 msgid "invalidate timestamp file" msgstr "poništi datoteku s vremenskim oznakama" -#: src/parse_args.c:830 +#: src/parse_args.c:853 msgid "list user's privileges or check a specific command; use twice for longer format" msgstr "privilegije korisnika ili test specifične naredbe; rabite -ll za duži popis" -#: src/parse_args.c:833 +#: src/parse_args.c:856 msgid "non-interactive mode, no prompts are used" msgstr "ne-interaktivni mȏd; bez prompta" -#: src/parse_args.c:836 +#: src/parse_args.c:859 msgid "preserve group vector instead of setting to target's" msgstr "sačuva grupni vektor umjesto postavljanja na ciljanu grupu" -#: src/parse_args.c:839 +#: src/parse_args.c:862 msgid "use the specified password prompt" msgstr "koristi navedeni prompt za unos lozinke" -#: src/parse_args.c:841 +#: src/parse_args.c:864 msgid "change the root directory before running command" msgstr "promijenite root direktorij prije pokretanja naredbe" -#: src/parse_args.c:844 +#: src/parse_args.c:867 msgid "create SELinux security context with specified role" msgstr "stvori SELinux sigurnosni kontekst s navedenom role ulogom" -#: src/parse_args.c:847 +#: src/parse_args.c:870 msgid "read password from standard input" msgstr "čita lozinku iz standardnog ulaza" -#: src/parse_args.c:850 +#: src/parse_args.c:873 msgid "run shell as the target user; a command may also be specified" msgstr "pokrene ljusku kao ciljani korisnik; može se navesti i naredba" -#: src/parse_args.c:854 +#: src/parse_args.c:877 msgid "create SELinux security context with specified type" -msgstr "stvori SELinux sigurnosni kontekst s navedenom type ulogom" +msgstr "stvori SELinux sigurnosni kontekst specificiranog tipa" -#: src/parse_args.c:857 +#: src/parse_args.c:880 msgid "terminate command after the specified time limit" msgstr "naredba završi nakon navedenog vremenskog ograničenja" -#: src/parse_args.c:860 +#: src/parse_args.c:883 msgid "in list mode, display privileges for user" msgstr "izlista popis privilegija user korisnika" -#: src/parse_args.c:863 +#: src/parse_args.c:886 msgid "run command (or edit file) as specified user name or ID" msgstr "pokreni naredbu (ili redigira datoteku) kao navedeni user korisnik" -#: src/parse_args.c:865 +#: src/parse_args.c:888 msgid "display version information and exit" msgstr "informira o inačici ovog programa i iziđe" -#: src/parse_args.c:868 +#: src/parse_args.c:891 msgid "update user's timestamp without running a command" msgstr "obnovi vremensku oznaku korisnika bez pokretanja naredbe" -#: src/parse_args.c:871 +#: src/parse_args.c:894 msgid "stop processing command line arguments" msgstr "prestane s obradom argumenata na naredbenom retku" @@ -791,12 +793,12 @@ msgstr "nije moguće uspostaviti novi TTY kontekst" #: src/selinux.c:323 #, c-format msgid "you must specify a role for type %s" -msgstr "morate navesti ulogu za vrstu %s" +msgstr "morate navesti ulogu za tip %s" #: src/selinux.c:329 #, c-format msgid "unable to get default type for role %s" -msgstr "nije moguće dobiti zadanu vrstu za ulogu %s" +msgstr "nije moguće dobiti zadani tip za ulogu %s" #: src/selinux.c:341 msgid "failed to get new context" @@ -810,7 +812,7 @@ msgstr "nije uspjelo postaviti novu ulogu %s" #: src/selinux.c:354 #, c-format msgid "failed to set new type %s" -msgstr "nije uspjelo postaviti novu vrstu %s" +msgstr "nije uspjelo postaviti novi tip %s" #: src/selinux.c:366 #, c-format @@ -835,39 +837,44 @@ msgstr "nije moguće postaviti exec kontekst na %s" msgid "unable to set key creation context to %s" msgstr "nije moguće postaviti kontekst stvaranja ključa na %s" -#: src/sesh.c:72 -msgid "requires at least one argument" -msgstr "zahtijeva barem jedan argument" +#: src/sesh.c:114 src/sesh.c:134 +msgid "Only one of the -c or -i options may be specified" +msgstr "Smije se navesti samo jedna od opcija -c ili -i" -#: src/sesh.c:104 +#: src/sesh.c:129 #, c-format msgid "invalid file descriptor number: %s" msgstr "nevaljani broj deskriptora datoteke: %s" -#: src/sesh.c:118 +#: src/sesh.c:167 src/sesh.c:171 src/sesh.c:175 +#, c-format +msgid "The -%c option may not be used in edit mode." +msgstr "opcija -%c ne smije se koristiti kad se redigira (in edit mode)" + +#: src/sesh.c:184 src/sesh.c:189 #, c-format -msgid "unable to run %s as a login shell" -msgstr "nije moguće pokrenuti %s kao prijavnu ljusku" +msgid "The -%c option may only be used in edit mode." +msgstr "Opciju -%c smijete koristiti samo za redigiranje (in edit mode)." -#: src/sesh.c:200 src/sesh.c:300 src/sudo_edit.c:204 +#: src/sesh.c:294 src/sesh.c:394 src/sudo_edit.c:204 #, c-format msgid "%s: editing symbolic links is not permitted" msgstr "%s: simboličke veze nije dopušteno redigirati" # writable> zapisiv, upisiv, u kojem je dopušteno pisati # http://hjp.znanje.hr/ > upisiv > koji se može upisati, koji ispunjava uvjete upisa -#: src/sesh.c:203 src/sesh.c:303 src/sudo_edit.c:207 +#: src/sesh.c:297 src/sesh.c:397 src/sudo_edit.c:207 #, c-format msgid "%s: editing files in a writable directory is not permitted" msgstr "%s: datoteke nije dopušteno redigirati u direktoriju koji dopušta pisanje" -#: src/sesh.c:287 src/sesh.c:308 src/sesh.c:317 src/sesh.c:325 +#: src/sesh.c:381 src/sesh.c:402 src/sesh.c:411 src/sesh.c:419 #: src/sudo_edit.c:331 #, c-format msgid "contents of edit session left in %s" msgstr "sadržaj sesije redigiranja je ostavljen u %s" -#: src/sesh.c:416 src/sudo_edit.c:94 +#: src/sesh.c:476 src/sudo_edit.c:94 msgid "unable to get group list" msgstr "nije moguće dobiti popis grupa" @@ -937,132 +944,136 @@ msgstr "kobna greška, nije moguće učitati plugine" msgid "plugin did not return a command to execute" msgstr "plugin nije uzvratio naredbu za izvršiti" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "neočekivani sudo mȏd 0x%x" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "vas nema u %s bazi podataka" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "nije moguće odrediti TTY" -#: src/sudo.c:925 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "Flag „no new privileges“ je podignut, i to sprječava da sudo da postane root." -#: src/sudo.c:927 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "Ako se sudo pokrene u kanistru (container), možda ćete morati podesiti konfiguraciju kanistra kako biste onemogućili flag." -#: src/sudo.c:961 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "vlasnik %s mora biti UID %d i mora imati postavljeni setuid bit" -#: src/sudo.c:964 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "efektivni UID nije %d; je li %s na datotečnom sustavu s postavljenom opcijom „nosuid“ ili NFS datotečnom sustavu bez root privilegija?" -#: src/sudo.c:970 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "efektivni UID nije %d; je li sudo instaliran sa setuid root?" -#: src/sudo.c:986 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "nije moguće postaviti ID dodatnih grupa" -#: src/sudo.c:993 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "nije moguće postaviti efektivni GID na runas GID %u" -#: src/sudo.c:999 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "nije moguće postaviti GID na runas GID %u" -#: src/sudo.c:1042 +#: src/sudo.c:1032 +msgid "argv not set by the security policy" +msgstr "argv nije postavljen po sigurnosnim pravilima" + +#: src/sudo.c:1036 +msgid "envp not set by the security policy" +msgstr "envp nije postavljen po sigurnosnim pravilima" + +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "neočekivano stanje završetka potomka (dijete-procesa) : %d" -#: src/sudo.c:1149 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "nije moguće inicijalizirati plugin s pravilima" -#: src/sudo.c:1211 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "pluginu s pravilima %s nedostaje metoda „check_policy“" -#: src/sudo.c:1257 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "plugin s pravilima %s ne podržava ispis ovlasti" -#: src/sudo.c:1301 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "plugin s pravilima %s ne podržava opciju -v" -#: src/sudo.c:1339 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "plugin s pravilima %s ne podržava -k/-K opcije" -#: src/sudo.c:1468 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "greška pri inicijalizaciji U/I plugina %s" -#: src/sudo.c:1471 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "greška pri inicijalizaciji U/I plugina" -#: src/sudo.c:1620 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "greška pri inicijalizaciji plugina za reviziju %s" -#: src/sudo.c:1699 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s: nije uspjelo zabilježiti pogrešku događaja%s%s" -#: src/sudo.c:1735 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: nije uspjelo zabilježiti događaj prihvaćanja%s%s" -#: src/sudo.c:1740 src/sudo.c:1778 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "pogreška u pluginu za reviziju" -#: src/sudo.c:1773 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: nije uspjelo zabilježiti događaj odbijanja%s%s" -#: src/sudo.c:1833 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "greška pri inicijalizaciji plugina za odobrenje %s" -#: src/sudo.c:1903 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "odobravatelj je odbio izvršiti naredbu" -#: src/sudo.c:1913 -msgid "approval plugin error" -msgstr "greška plugina za odobravanje" - #: src/sudo_edit.c:113 msgid "no writable temporary directory found" msgstr "nije pronađen privremeni direktorij u koji je moguće pisati" @@ -1072,7 +1083,7 @@ msgstr "nije pronađen privremeni direktorij u koji je moguće pisati" msgid "%s left unmodified" msgstr "%s nije izmijenjeno" -#: src/sudo_edit.c:304 src/sudo_edit.c:571 +#: src/sudo_edit.c:304 src/sudo_edit.c:569 #, c-format msgid "%s unchanged" msgstr "%s nije promijenjeno" @@ -1085,37 +1096,41 @@ msgstr "sesh: interna greška: neparni broj staza" msgid "sesh: unable to create temporary files" msgstr "sesh: nije moguće čitati privremenu datoteku" -#: src/sudo_edit.c:485 src/sudo_edit.c:609 +#: src/sudo_edit.c:485 src/sudo_edit.c:604 msgid "sesh: killed by a signal" msgstr "sesh: ubijen signalom" -#: src/sudo_edit.c:487 src/sudo_edit.c:612 +#: src/sudo_edit.c:487 src/sudo_edit.c:607 #, c-format msgid "sesh: unknown error %d" msgstr "sesh: nepoznata greška: %d" -#: src/sudo_edit.c:602 +#: src/sudo_edit.c:597 msgid "unable to copy temporary files back to their original location" msgstr "nije moguće kopirati privremene datoteke u njihovu originalnu lokaciju" -#: src/sudo_edit.c:606 +#: src/sudo_edit.c:601 msgid "unable to copy some of the temporary files back to their original location" msgstr "nije moguće kopirati neke od privremenih datoteka u njihovu originalnu lokaciju" -#: src/sudo_edit.c:649 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "nije moguće promijeniti UID na root (%u)" -#: src/sudo_edit.c:670 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "greška plugina: nevaljani popis datoteka za sudoedit" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "greška plugina: nedostaje popis datoteka za sudoedit" -#: src/sudo_edit.c:713 src/sudo_edit.c:727 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "nije moguće pročitati vrijeme (clock)" -#: src/sudo_intercept_common.c:341 +#: src/sudo_intercept_common.c:365 msgid "intercept port not set" msgstr "port za presretanje nije postavljen" @@ -1166,6 +1181,24 @@ msgstr "dup2 nije moguće primijeniti na stdin" msgid "unable to restore stdin" msgstr "nije moguće obnoviti stdin" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "vlasnik %s mora biti UID %d" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s za pisanje mora biti dostupan samo vlasniku" + +#~ msgid "insufficient space for execve arguments" +#~ msgstr "nema dovoljno mjesta za execve argumente" + +#~ msgid "unable to read execve %s for process %d" +#~ msgstr "nije moguće pročitati execve %s za proces %d" + +#~ msgid "requires at least one argument" +#~ msgstr "zahtijeva barem jedan argument" + +#~ msgid "unable to run %s as a login shell" +#~ msgstr "nije moguće pokrenuti %s kao prijavnu ljusku" + #~ msgid "unable to dup intercept fd" #~ msgstr "nije uspjelo duplicirati deskriptor presrele datoteke" diff --git a/po/ja.mo b/po/ja.mo index b33813f29e..f7ccd5f7a8 100644 Binary files a/po/ja.mo and b/po/ja.mo differ diff --git a/po/ja.po b/po/ja.po index f5f4e86f63..4c92ad21c7 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1,14 +1,14 @@ # Japanese messages for sudo # This file is put in the public domain. # Yasuaki Taniguchi , 2011. -# Takeshi Hamasaki , 2012, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022. +# Takeshi Hamasaki , 2012, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023. # msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12b2\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" -"PO-Revision-Date: 2022-10-15 08:13+0900\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-02-05 11:33+0900\n" "Last-Translator: Takeshi Hamasaki \n" "Language-Team: Japanese \n" "Language: ja\n" @@ -35,74 +35,74 @@ msgid "unable to restore registry" msgstr "レジストリーを復元できません" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "メモリ割り当てを行えませんでした" @@ -117,9 +117,9 @@ msgstr "%.*s の状態取得 (stat) ができません" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s は存在しますが、ディレクトリではありません (0%o)" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "%s を開けません" @@ -134,7 +134,7 @@ msgstr "%.*s を mkdir できません" msgid "unable to open %.*s" msgstr "%.*s を開けません" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "正規表現が長すぎます。" @@ -155,42 +155,42 @@ msgstr "値が大き過ぎます" msgid "value too small" msgstr "値が小さ過ぎます" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "無効な Path の値 \"%s\" が %s の %u 行目 にあります" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "無効な %s の値 \"%s\" が %s の %u 行目 にあります" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "サポートしていないグループソース \"%s\" が %s の %u 行目で指定されています" -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "無効な最大グループの値 \"%s\" が %s の %u 行目 にあります" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s は通常ファイルではありません" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s はユーザーID %u によって所有されています。これは %u であるべきです" -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s は誰でも書き込み可能です" -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s はグループのメンバーによる書き込みが可能です" @@ -284,8 +284,8 @@ msgstr "ディレクトリーを %s に変更できません" msgid "starting from %s" msgstr "%s から始めます" -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -305,60 +305,60 @@ msgstr "PRIV_LIMIT から PRIV_PROC_EXEC を取り除くことができません #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "キューにイベントを追加できません" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "セキュリティーポリシーによりコマンドが設定されていません" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "ポリシーによりコマンドが拒否されました" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "承認プラグイン エラー" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "ポリシープラグインエラー" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "無効な PolicyCheckRequest" -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "クライアントリクエストが大き過ぎます: %zu" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "%s を伸長できません (長さ %zu )" -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "予期しない type_case の値 %d が %s の中にあります、 %s から出てきたものです。" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "サーバーメッセージが大き過ぎます: %zu" @@ -381,93 +381,93 @@ msgstr "エラーの記録が一時中断しています" msgid "error changing window size" msgstr "ウィンドウサイズの変更でエラー" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "ソケットペアからの読み込み中にエラーが発生しました" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "バックチャンネルに関する予期しないリプレイタイプです: %d" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "tty の制御設定ができません" -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "パイプを作成できません" -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "親からのメッセージを受け取ることができません" -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "fork できません" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "tty ラベルを復旧できません" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "%s を実行できません" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "ポリシープラグインがセッションの初期化に失敗しました" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "ソケットを作成できません" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "イベントループでエラーが発生しました" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 -#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 #: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "内部エラー、 %s がオーバーフローしました" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "プロセス %d のレジスターを設定できません" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "プロセス %d が予期せぬ終了をしました" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "seccomp フィルターを設定できません" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "インタープリターの引数は、 \"%s\" のはずですが、\"%s\" です" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "パス名が一致しません、 \"%s\" のはずですが、\"%s\" です" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "%s[%d] が一致しません、 \"%s\" のはずですが、\"%s\" です" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "プロセス %d が予期せぬ終了ステータス 0x %x を返しました" @@ -486,67 +486,56 @@ msgstr "プロセス %d のレジスターを取得できません" msgid "unable to allocate pty" msgstr "pty を割り当てられません" -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "シグナル %d のハンドラを復元できません" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "監視プロセスへメッセージを送ることができません" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "%s, %d 行目 プラグイン \"%s\" をロード中にエラーが発生しました" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s の所有者は uid %d でなければいけません" - -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "%s は所有者のみ書き込み可能で無ければいけません" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "重複しているプラグイン \"%s\" を無視します。%s の %d 行目" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "%s をロードできません: %s" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "シンボル \"%s\" が %s に見つかりません" -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "互換性の無いポリシーメジャーバージョン %d (予期されるのは %d)が %s で見つかりました" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "ポリシープラグイン \"%s\" を無視します。%s の %d 行目" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "1つのポリシープラグインのみ指定できます" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "不明なプラグインタイプ %d が %s で見つかりました" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "ポリシープラグイン %s には check_policy メソッドが含まれていません" @@ -951,133 +940,133 @@ msgstr "致命的エラー、プラグインをロードできません" msgid "plugin did not return a command to execute" msgstr "プラグインが実行するべきコマンドを返しませんでした" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "予期しない sudo のモード 0x%x です" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "あなたは %s データベースに存在しません" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "tty を特定できません" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "権限変更不可フラグがセットされていて、sudo を root として実行できません。" -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "sudo をコンテナーで実行しているなら、コンテナーの構成でフラグを無効にする必要があるかもしれません。" -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s は所有者が uid %d である必要があり、かつ setuid が設定されている必要があります" -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "実効 uid が %d ではありません、%s は 'nosuid' が設定されたファイルシステムにあるか、root 権限のないNFSファイルシステムにあるのでは?" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "実効 uid が %d ではありません、sudo は setuid root を設定してインストールされていますか?" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "追加のグループIDを設定できません" -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "実行時のグループID (gid) %u を実効グループIDに設定できません" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "実行時のグループID (gid) %u をグループIDに設定できません" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "セキュリティーポリシーにより argv が設定されていません" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "セキュリティーポリシーにより envp が設定されていません" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "予期しない子プロセスの終了コードです: %d" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "ポリシープラグインを初期化できません" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "ポリシープラグイン %s には check_policy メソッドが含まれていません" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "ポリシープラグイン %s は権限の一覧表示をサポートしていません" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "ポリシープラグイン %s は -v オプションをサポートしません" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "ポリシープラグイン %s は -k/-K オプションをサポートしません" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "I/O プラグイン %s を初期化中にエラーが発生しました" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "I/O プラグインを初期化中にエラーが発生しました" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "認証プラグイン %s を初期化中にエラーが発生しました" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s: ログにエラーイベントを書き込むことができません%s%s" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: ログに accept イベントを書き込むことができません%s%s" -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "認証プラグインエラー" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: ログに reject イベントを書き込むことができません%s%s" -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "承認プラグイン %s を初期化中にエラーが発生しました" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "承認者によりコマンドが拒否されました" @@ -1120,16 +1109,20 @@ msgstr "一時ファイルを元の場所に戻すことができません" msgid "unable to copy some of the temporary files back to their original location" msgstr "一時ファイルのいくつかを元の場所に戻すことができません" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "ユーザーID (uid) を root (%u) に変更できません" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "プラグインエラー: sudoedit 用のファイル一覧が無効です" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "プラグインエラー: sudoedit 用のファイル一覧がありません" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "時刻を読み込むことができません" @@ -1184,6 +1177,12 @@ msgstr "標準入力へ dup2 を実行できません" msgid "unable to restore stdin" msgstr "標準入力を復元できません" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s の所有者は uid %d でなければいけません" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s は所有者のみ書き込み可能で無ければいけません" + #~ msgid "insufficient space for execve arguments" #~ msgstr "execve の引数のためのスペースが足りません" diff --git a/po/ko.mo b/po/ko.mo index ea4f51795d..f88fe8b8db 100644 Binary files a/po/ko.mo and b/po/ko.mo differ diff --git a/po/ko.po b/po/ko.po index a77eddd3db..a820fe2632 100644 --- a/po/ko.po +++ b/po/ko.po @@ -1,14 +1,14 @@ # Korean translation for sudo # This file is distributed under the same license as the sudo package. # Todd C. Miller , 2011-2015 -# Seong-ho Cho , 2016-2022. +# Seong-ho Cho , 2016-2023. # msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12b2\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" -"PO-Revision-Date: 2022-10-12 14:16+0900\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-27 00:35+0900\n" "Last-Translator: Seong-ho Cho \n" "Language-Team: Korean \n" "Language: ko\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 2.3.1\n" #: lib/util/aix.c:89 lib/util/aix.c:169 msgid "unable to open userdb" @@ -33,74 +33,74 @@ msgid "unable to restore registry" msgstr "레지스트리를 복원할 수 없습니다" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "메모리를 할당할 수 없습니다" @@ -115,9 +115,9 @@ msgstr "%.*s의 상태를 가져올 수 없습니다" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s(이)가 있지만 디렉터리는 아닙니다 (0%o)" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "%s을(를) 열 수 없습니다" @@ -132,7 +132,7 @@ msgstr "%.*s 디렉터리를 새로 만들 수 없습니다" msgid "unable to open %.*s" msgstr "%.*s을(를) 열 수 없습니다" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "정규 표현식이 너무 깁니다" @@ -153,42 +153,42 @@ msgstr "값이 너무 큽니다" msgid "value too small" msgstr "값이 너무 작습니다" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "%2$s의 %3$u번째 줄에 부적절한 경로 값 \"%1$s\"" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "%3$s의 %4$u번째 줄에 %1$s의 부적절한 값 \"%2$s\"" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "%2$s의 %3$u번째 줄에 지원하지 않는 그룹 원본 \"%1$s\"" -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "%2$s의 %3$u번째 줄에 부적절한 최대 그룹 값 \"%1$s\"" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s은(는) 일반 파일이 아닙니다" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s은(는) %u uid에서 소유하고 있지만 %u uid가 소유해야 합니다" -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s에 모두가 기록할 수 있습니다" -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s에 그룹 구성원이 기록할 수 있습니다" @@ -282,8 +282,8 @@ msgstr "%s 디렉터리로 바꿀 수 없습니다" msgid "starting from %s" msgstr "%s에서 시작 중" -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -303,60 +303,60 @@ msgstr "PRIV_LIMIT에서 PRIV_PROC_EXEC를 제거할 수 없습니다" #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "큐에 이벤트를 추가할 수 없습니다" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "보안 정책에 따라 명령을 설정하지 않았습니다" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "정책을 통해 명령을 거부 했습니다" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "승인 플러그인 오류" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "정책 플러그인 오류" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "부적절한 PolicyCheckRequest" -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "클라이언트 요청이 너무 깁니다: %zu" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "%2$zu 크기의 %1$s을(를) 언팩할 수 없습니다" -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "%3$s의 %2$s에서 예기치 못한 type_case 값 %1$d번" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "서버 메시지 길이가 너무 깁니다: %zu" @@ -379,94 +379,94 @@ msgstr "오류 로깅 대기" msgid "error changing window size" msgstr "윈도우 크기 변경 오류" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "소켓쌍 읽기 오류" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "백 채널에 잘못된 응답 형식: %d" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "처리 tty를 설정할 수 없습니다" -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "파이프를 만들 수 없습니다" # parent가 정확히 무슨 의미인지 알 수 없음 -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "상위로부터 메시지를 받을 수 없습니다" -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "포킹할 수 없습니다" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "tty 레이블을 복원할 수 없습니다" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "%s을(를) 실행할 수 없습니다" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "정책 플러그인에서 세션 초기화에 실패했습니다" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "소켓을 만들 수 없습니다" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "이벤트 루프에 오류" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 -#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 #: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "내부 오류, %s 오버플로우" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "프로세스 %d번의 레지스터를 설정할 수 없습니다" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "프로세스 %d번이 갑자기 끝났습니다" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "seccomp 필터를 설정할 수 없습니다" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "해석기 인자에서 \"%s\"이(가) 필요하지만 \"%s\"을(를) 지정했습니다" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "경로 이름이 일치하지 않습니다. \"%s\"을(를) 예상했지만, \"%s\"이(가) 나왔습니다" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "%s[%d]이(가) 일치하지 않습니다. \"%s\"을(를) 예상했지만, \"%s\"이(가) 나왔습니다" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "프로세스 %d번이 갑자기 0x%x 상태를 나타냈습니다" @@ -485,67 +485,56 @@ msgstr "프로세스 %d번의 레지스터를 가져올 수 없습니다" msgid "unable to allocate pty" msgstr "pty를 할당할 수 없습니다" -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "%d 시그널의 핸들러를 복원할 수 없습니다" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "감사 프로세스에 메시지를 보낼 수 없습니다" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "%s의 %d번째 줄에서 \"%s\" 플러그인을 불러오는 중 오류" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s은(는) uid %d에서 소유해야 합니다" - -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "%s은(는) 소유자만 기록할 수 있어야 합니다" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "%2$s의 %3$d번째 줄에서 \"%1$s\" 중복 플러그인 무시" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "%s을(를) 불러올 수 없습니다: %s" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "%2$s에서 \"%1$s\" 심볼을 찾을 수 없습니다" -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "%3$s에 주 버전이(%2$d을(를) 기대했지만) %1$d인 비호환 플러그인이 있습니다" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "%2$s의 %3$d번째 줄에서 \"%1$s\" 정책 플러그인 무시" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "단일 정책 플러그인을 지정하십시오" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "%2$s에 알 수 없는 정책 유형 %1$d이(가) 있습니다" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "%s 정책 플러그인에 check_policy 메서드가 없습니다" @@ -950,133 +939,133 @@ msgstr "치명적인 오류. 플러그인을 불러올 수 없습니다" msgid "plugin did not return a command to execute" msgstr "플러그인에서 실행할 명령을 반환하지 않았습니다" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "예상치 못한 sudo 모드 0x%x" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "%s 데이터베이스에 없는 사용자입니다" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "tty를 지정할 수 없습니다" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "sudo를 루트 권한으로 실행하지 못하게 하는 \"no new privileges\" 플래그를 설정했습니다." -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "컨테이너에서 sudo를 실행할 때, 플래그를 끄는 컨테이너 설정이 필요할 수 있습니다." -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s은(는) %d uid를 소유해야 하며 setuid 비트를 설정해야 합니다" -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "%d은(는) 유효한 uid가 아닙니다. %s은(는) 'nosuid' 옵션을 설정한 파일 시스템이거나 루트 권한이 없는 NFS 파일 시스템입니까?" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "%d은(는) 유효한 uid가 아닙니다. sudo에 setuid root를 설치했습니까?" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "추가 그룹 ID를 설정할 수 없습니다" -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "유효한 gid를 %u 실행 gid로 설정할 수 없습니다" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "gid를 실행 gid %u(으)로 설정할 수 없습니다" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "보안 정책에 따라 argv를 설정하지 않았습니다" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "보안 정책에 따라 envp를 설정하지 않았습니다" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "예상치 못한 하위 프로세스 중단 상태: %d" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "정책 플러그인을 초기화할 수 없습니다" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "%s 정책 플러그인에 \"check_policy\" 메서드가 빠졌습니다" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "%s 정책 플러그인에서 권한 조회를 지원하지 않습니다" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "%s 정책 플러그인에서 -v 옵션을 지원하지 않습니다" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "%s 정책 플러그인에서 -k/-K 옵션을 지원하지 않습니다" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "%s 입출력 플러그인 초기화 오류" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "입출력 플러그인 초기화 오류" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "%s 감사 플러그인 초기화 오류" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s: %s%s 오류 이벤트를 기록할 수 없습니다" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: %s%s 허용 이벤트를 기록할 수 없습니다" -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "감사 플러그인 오류" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: %s%s 거부 이벤트를 기록할 수 없습니다" -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "%s 승인 플러그인 초기화 오류" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "승인자가 명령을 거부했습니다" @@ -1119,16 +1108,20 @@ msgstr "원위치에 임시 파일을 복사할 수 없습니다" msgid "unable to copy some of the temporary files back to their original location" msgstr "원 위치에 임시 파일 일부를 복사할 수 없습니다" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "uid를 루트로 바꿀 수 없습니다(%u)" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "플러그인 오류: sudoedit의 파일 목록이 잘못됨" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" -msgstr "플러그인 오류: sudoedit에 파일 목록이 빠짐" +msgstr "플러그인 오류: sudoedit의 파일 목록이 빠짐" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "클록을 읽을 수 없습니다" @@ -1183,6 +1176,12 @@ msgstr "표준 입력을 dup2 처리할 수 없습니다" msgid "unable to restore stdin" msgstr "표준 입력을 복원할 수 없습니다" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s은(는) uid %d에서 소유해야 합니다" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s은(는) 소유자만 기록할 수 있어야 합니다" + #~ msgid "insufficient space for execve arguments" #~ msgstr "execve 인자 공간이 부족합니다" diff --git a/po/pl.mo b/po/pl.mo index 2b6bc0ba50..45fb16331e 100644 Binary files a/po/pl.mo and b/po/pl.mo differ diff --git a/po/pl.po b/po/pl.po index 5c15dec190..d98aed9c05 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,13 +1,13 @@ # Polish translation for sudo. # This file is put in the public domain. -# Jakub Bogusz , 2011-2022. +# Jakub Bogusz , 2011-2023. # msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12b2\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" -"PO-Revision-Date: 2022-10-11 21:30+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 19:15+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" "Language: pl\n" @@ -30,74 +30,74 @@ msgid "unable to restore registry" msgstr "nie udało się odtworzyć rejestru" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "nie udało się przydzielić pamięci" @@ -112,9 +112,9 @@ msgstr "nie udało się wykonać stat na %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s istnieje, ale nie jest katalogiem (0%o)" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "nie udało się otworzyć %s" @@ -129,7 +129,7 @@ msgstr "nie udało się utworzyć katalogu %.*s" msgid "unable to open %.*s" msgstr "nie udało się otworzyć %.*s" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "wyrażenie regularne zbyt długie" @@ -150,42 +150,42 @@ msgstr "wartość zbyt duża" msgid "value too small" msgstr "wartość zbyt mała" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "błędna wartość Path \"%s\" w %s, w linii %u" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "błędna wartość opcji %s \"%s\" w %s, w linii %u" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "nieobsługiwane źródło grup \"%s\" w %s, w linii %u" -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "błędna maksymalna liczba grup \"%s\" w %s, w linii %u" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s nie jest zwykłym plikiem" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "właścicielem %s jest uid %u, powinien być %u" -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s jest zapisywalny dla świata" -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s jest zapisywalny dla grupy" @@ -279,8 +279,8 @@ msgstr "nie udało się zmienić katalogu na %s" msgid "starting from %s" msgstr "zaczynając od %s" -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -300,60 +300,60 @@ msgstr "nie udało się usunąć PRIV_PROC_EXEC z PRIV_LIMIT" #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "nie udało się dodać zdarzenia do kolejki" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "polecenie nie ustawione przez politykę bezpieczeństwa" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "polecenie odrzucone przez politykę" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "błąd wtyczki zgody" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "błąd wtyczki polityki" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "błędne żądanie PolicyCheckRequest" -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "żądanie klienta zbyt duże: %zu" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "nie udało się rozpakować %s, rozmiar %zu" -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "nieoczekiwana wartość type_case %d w %s od %s" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "komunikat serwera zbyt duży: %zu" @@ -376,93 +376,93 @@ msgstr "błąd logowania odroczenia" msgid "error changing window size" msgstr "błąd zmiany rozmiaru okna" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "błąd odczytu z pary gniazd" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "nieoczekiwany typ odpowiedzi z kanału zwrotnego: %d" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "nie udało się ustawić sterującego tty" -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "nie udało się utworzyć potoku" -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "nie udało się odebrać komunikatu od rodzica" -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "nie udało się wykonać fork" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "nie udało się przywrócić etykiety tty" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "nie udało się wykonać %s" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "nie udało się zainicjować sesji przez wtyczkę polityki" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "nie udało się utworzyć gniazd" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "błąd w pętli zdarzeń" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 -#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 #: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "błąd wewnętrzny, przepełnienie %s" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "nie udało się ustawić rejestrów dla procesu %d" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "proces %d nieoczekiwanie zakończył się" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "nie udało się ustawić filtra seccomp" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "argument interpretera - oczekiwano \"%s\", napotkano \"%s\"" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "niezgodność ścieżki, oczekiwano \"%s\", napotkano \"%s\"" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "niezgodność %s[%d], oczekiwano \"%s\", napotkano \"%s\"" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "proces %d nieoczekiwany status 0x%x" @@ -481,67 +481,56 @@ msgstr "nie udało się pobrać rejestrów dla procesu %d" msgid "unable to allocate pty" msgstr "nie udało się przydzielić pty" -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "nie udało się przywrócić procedury obsługi dla sygnału %d" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "nie udało się wysłać komunikatu do procesu monitorującego" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "błąd w %s, w linii %d podczas wczytywania wtyczki \"%s\"" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "właścicielem %s musi być uid %d" - -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "prawo zapisu do %s może mieć tylko właściciel" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "zignotowano powtórzoną wtyczkę \"%s\" w %s, w linii %d" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "nie udało się załadować %s: %s" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "nie udało się odnaleźć symbolu \"%s\" w %s" -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "niezgodna główna wersja polityki %d (zamiast oczekiwanej %d) napotkana w %s" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "zignorowano wtyczkę polityki \"%s\" w %s, w linii %d" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "może być podana tylko jedna wtyczka polityki" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "nieznany typ wtyczki %d napotkany w %s" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "wtyczka polityki %s nie zawiera metody check_policy" @@ -946,133 +935,133 @@ msgstr "błąd krytyczny, nie udało się załadować wtyczek" msgid "plugin did not return a command to execute" msgstr "wtyczka nie zwróciła polecenia do wykonania" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "nieoczekiwany tryb sudo 0x%x" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "nie istniejesz w bazie danych %s" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "nie udało się określić tty" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "Ustawiona jest flaga \"bez nowych uprawnień\", która nie pozwala na uruchamianie sudo jako root." -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "Jeśli sudo jest uruchomione w kontenerze, może być potrzebne dostosowanie konfiguracji kontenera w celu wyłączenia flagi." -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s musi mieć uid %d jako właściciela oraz ustawiony bit setuid" -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "efektywny uid nie wynosi %d, czy %s jest na systemie plików z opcją 'nosuid' albo systemie plików NFS bez uprawnień roota?" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "efektywny uid nie wynosi %d, czy sudo jest zainstalowane z setuid root?" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "nie udało się ustawić ID dodatkowych grup" -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "nie udało się ustawić efektywnego gid-a w celu działania jako gid %u" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "nie udało się ustawić gid-a w celu działania jako gid %u" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "argv nie ustawione przez politykę bezpieczeństwa" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "envp nie ustawione przez politykę bezpieczeństwa" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "nieoczekiwane zakończenie procesu potomnego: %d" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "nie udało się zainicjować wtyczki polityki" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "wtyczka polityki %s nie zawiera metody \"check_policy\"" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "wtyczka polityki %s nie obsługuje wypisywania uprawnień" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "wtyczka polityki %s nie obsługuje opcji -v" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "wtyczka polityki %s nie obsługuje opcji -k/-K" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "błąd inicjalizacji wtyczki we/wy %s" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "błąd inicjowania wtyczki we/wy" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "błąd inicjowania wtyczki audytu %s" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s: nie udało się zalogować zdarzenia błędu%s%s" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: nie udało się zalogować zdarzenia akceptacji%s%s" -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "błąd wtyczki audytu" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: nie udało się zalogować zdarzenia odrzucenia%s%s" -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "błąd inicjowania wtyczki zgody %s" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "polecenie odrzucone przez wtyczkę zgody" @@ -1115,16 +1104,20 @@ msgstr "nie udało się skopiować plików tymczasowych z powrotem w ich orygina msgid "unable to copy some of the temporary files back to their original location" msgstr "nie udało się skopiować części plików tymczasowych z powrotem w ich oryginalne miejsce" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "nie udało się zmienić uid-a na roota (%u)" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "błąd wtyczki: błędna lista plików dla sudoedit" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "błąd wtyczki: brak listy plików dla sudoedit" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "nie udało się odczytać zegara" diff --git a/po/ro.mo b/po/ro.mo index a5ebf2f118..acf19bab1c 100644 Binary files a/po/ro.mo and b/po/ro.mo differ diff --git a/po/ro.po b/po/ro.po index 87544208ec..aea7badfca 100644 --- a/po/ro.po +++ b/po/ro.po @@ -2,8 +2,9 @@ # This file is put in the public domain. # Todd C. Miller , 2011-2018 # This file is distributed under the same license as the sudo package. +# # Florentina Mușat , 2020. -# Remus-Gabriel Chelu , 2021, 2022. +# Remus-Gabriel Chelu , 2021, 2022, 2023. # # Cronologia traducerii fișierului „sudo”: # Traducera inițială, făcută de FM, pentru versiunea sudoers 1.9.2rc1. @@ -11,12 +12,15 @@ # Actualizare a traducerii pentru versiunea 1.9.10b1, făcută de R-GC. # Actualizare a traducerii pentru versiunea 1.9.11b1, făcută de R-GC. # Actualizare a traducerii pentru versiunea 1.9.12b2, făcută de R-GC. +# Actualizare a traducerii pentru versiunea 1.9.13b2, făcută de R-GC. +# Actualizare a traducerii pentru versiunea Y, făcută de X, Z(anul). +# msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12b2\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" -"PO-Revision-Date: 2022-10-12 11:37+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 13:47+0100\n" "Last-Translator: Remus-Gabriel Chelu \n" "Language-Team: Romanian \n" "Language: ro\n" @@ -25,7 +29,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.2.2\n" #: lib/util/aix.c:89 lib/util/aix.c:169 msgid "unable to open userdb" @@ -41,74 +45,74 @@ msgid "unable to restore registry" msgstr "nu se poate restaura registrul" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "nu se poate aloca memoria" @@ -123,9 +127,9 @@ msgstr "nu se poate stabili starea lui %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s există, dar nu este un director (0%o)" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "nu se poate deschide %s" @@ -140,7 +144,7 @@ msgstr "nu se poate executa mkdir %.*s" msgid "unable to open %.*s" msgstr "nu se poate deschide %.*s" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "expresia regulată este prea lungă" @@ -161,32 +165,32 @@ msgstr "valoare prea mare" msgid "value too small" msgstr "valoare prea mică" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "valoare de cale(path) nevalidă „%s” în %s, linia %u" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "valoare nevalidă pentru %s „%s” în %s, linia %u" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "sursă de grup nesuportată „%s” în %s, linia %u" -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "grupuri maxime nevalide „%s” în %s, linia %u" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s nu este un fișier regulat" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s este deținut de uid-ul %u, ar trebui să fie %u" @@ -196,7 +200,7 @@ msgstr "%s este deținut de uid-ul %u, ar trebui să fie %u" # la „inscriptibil” # - 1. pentru a fi =n consonanță cu celelalte mesaje # - 2. referința este pentru fișier, și nu pentru conținutul său -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s este inscriptibil global" @@ -204,7 +208,7 @@ msgstr "%s este inscriptibil global" # Modificare: # de la: „este inscriptibil pe grup” # la:„este inscriptibil de către grup” -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s este inscriptibil de către grup" @@ -318,8 +322,8 @@ msgstr "începând de la %s" # Modificare: # de la: „nu se poate stabili mânerul pentru semnalul” # la: „nu se poate stabili manipulantul pentru semnalul” -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -339,41 +343,41 @@ msgstr "nu se poate elimina PRIV_PROC_EXEC de la PRIV_LIMIT" #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "nu se poate adăuga evenimentul la coadă" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "comanda nu este stabilită de politica de securitate" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "comandă respinsă de politică" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "eroare la modulul de aprobare" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "eroare de modul de politică" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "PolicyCheckRequest nevalid" @@ -386,12 +390,12 @@ msgstr "PolicyCheckRequest nevalid" # Eu, unul n-am posibilitatea de-a verifica în practică, toate mesajele... # Acesta pare să fie un mesaj pentru LDAP..., iar # eu nu utilizez LDAP -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "cererea clientului este prea mare: %zu" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "nu se poate despacheta %s cu dimensiunea %zu" @@ -400,12 +404,12 @@ msgstr "nu se poate despacheta %s cu dimensiunea %zu" # „type_case cu o valoare neașteptată %d în %s de la %s” # poate suna/era mai bine: # „valoare (a) type_case neașteptată %d, în %s de la %s” -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "type_case cu o valoare neașteptată %d în %s de la %s" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "mesaj de la server prea mare: %zu" @@ -432,7 +436,7 @@ msgstr "eroare la suspendarea jurnalizării" msgid "error changing window size" msgstr "eroare la schimbarea dimensiunii ferestrei" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "eroare la citirea de la socketpair" @@ -443,96 +447,96 @@ msgstr "eroare la citirea de la socketpair" # canal secundar # canal posterior # canal din spate -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "tip de răspuns neașteptat pe backchannel: %d" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "nu se poate stabili tty de control" # Schimbat de la: „linia de asamblare” # la: „tubul conector” -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "nu se poate crea „tubul conector”(pipe)" # Modificat de la: „de la superior” # la: „de la procesul părinte” -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "nu se poate primi mesajul de la procesul părinte" # Modificat de la: # „nu se poate da fork” # la: „nu se poate bifurca” -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "nu se poate bifurca" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "nu se poate restaura eticheta tty" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "nu se poate executa %s" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "modulul de politică a eșuat la inițializarea sesiunii" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "nu se pot crea socluri" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "eroare în bucla de eveniment" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 -#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 #: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "eroare internă, supraplin %s" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "nu se pot configura registrele pentru procesul %d" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "procesul %d a ieșit în mod neașteptat" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "nu se poate configura filtrul seccomp" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "argument interpret, era așteptat „%s”, s-a primit „%s”" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "nepotrivire în numele de cale, era așteptat „%s”, s-a primit „%s”" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "nepotrivire în %s[%d], era așteptat „%s”, s-a primit „%s”" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "stare neașteptată a procesului %d: 0x%x" @@ -554,50 +558,32 @@ msgstr "nu se poate aloca pty" # Modificare: # de la: „nu se poate stabili mânerul pentru semnalul” # la: „nu se poate stabili manipulantul pentru semnalul” -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "nu se poate restaura manipulantul pentru semnalul %d" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "nu se poate trimite mesajul la procesul de monitorizare" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "eroare în %s, linia %d în timpul încărcării modulului „%s”" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s trebuie să fie deținut de uid-ul %d" - -# Modificat de la: „deținător” -# la: „proprietar” -# Explicația: -# proprietarul poate, și deobicei este deasemeni deținător (de ceva) -# în schimb, deținătorul decît deține ceva, deobicei este vremelnic(sau pe un timp determinat) -# Exp: -# arendașul, deține un teren(deobicei agricol, deci e un deținător de teren) drept pentru care se poate folosi de acel teren pe timpul și în condițiile financiare stabilite de proprietarul acelui teren(care este singurul care are drepturi depline asupra acelui teren. -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "%s trebuie să fie inscriptibil doar de proprietar" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "se ignoră modulul duplicat „%s” în %s, linia %d" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "nu se poate încărca %s: %s" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "nu se poate găsi simbolul „%s” în %s" @@ -609,26 +595,26 @@ msgstr "nu se poate găsi simbolul „%s” în %s" # e posibil ca poziția corectă a primei variabile, „%d”; # să fie: # „versiune majoră a modulului %d incompatibilă” -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "versiune majoră a modulului incompatibilă %d (se aștepta %d) găsită în %s" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "se ignoră modulul de politică „%s” în %s, linia %d" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "doar un singur modul de politică poate fi specificat" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "tip de modul necunoscut %d găsit în %s" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "modulul de politică %s nu include o metodă check_policy" @@ -1058,135 +1044,135 @@ msgstr "eroare fatală, nu se pot încărca modulele" msgid "plugin did not return a command to execute" msgstr "modulul nu a întors o comandă de executat" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "mod sudo neașteptat 0x%x" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "nu existați în baza de date %s" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "nu se poate determina tty" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "Este setat indicatorul „fără privilegii noi”, ceea ce împiedică rularea «sudo» ca root." -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "Dacă «sudo» rulează într-un container, poate fi necesar să ajustați configurația containerului pentru a dezactiva indicatorul." -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s trebuie să fie deținut de uid-ul %d și să aibă bitul setuid stabilit" # Notă: eficient -> efectiv -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "uid-ul efectiv nu este %d, este %s pe un sistem de fișiere cu opțiunea „nosuid” stabilită sau un sistem de fișiere NFS fără privilegii de root?" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "uid-ul efectiv nu este %d, este sudo instalat root setuid?" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "nu se pot stabili ID-urile de grup suplimentare" # Notă: eficiente -> efective -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "nu se pot stabili gid-uri efective către gid-uri run_as %u" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "nu se poate stabili gid-ul către gid-ul run_as %u" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "argv nu este stabilit de politica de securitate" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "envp nu este stabilit de politica de securitate" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "condiție de terminare a procesului copil neașteptată: %d" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "nu se poate inițializa modulul de politică" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "modulului de politică %s îi lipsește metoda „check_policy”" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "modulul de politică %s nu suportă listarea privilegiilor" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "modulul de politică %s nu suportă opțiunea -v" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "modulul de politică %s nu suportă opțiunile -k/-K" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "eroare la inițializarea modulului In/Ieș(I/O) %s" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "eroare la inițializarea modulului In/Ieș(I/O)" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "eroare la inițializarea modulului auditare %s" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s: nu se poate înregistra evenimentul de eroare%s%s" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: nu se poate înregistra evenimentul de acceptare%s%s" -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "eroare a modulului de auditare" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: nu se poate înregistra evenimentul de respingere%s%s" -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "eroare la inițializarea modulului de aprobare %s" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "comandă respinsă de aprobator" @@ -1229,16 +1215,20 @@ msgstr "nu se pot copia fișierele temporare înapoi la locația lor originală" msgid "unable to copy some of the temporary files back to their original location" msgstr "nu se pot copia o parte din fișierele temporare înapoi la locația lor originală" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "nu se poate schimba uid-ul la root (%u)" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "eroare de modul: lista de fișiere pentru sudoedit nu este validă" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "eroare de modul: lipsește lista de fișiere pentru sudoedit" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "nu se poate citi ceasul" @@ -1293,6 +1283,19 @@ msgstr "nu se poate dup2 stdin" msgid "unable to restore stdin" msgstr "nu se poate restaura stdin" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s trebuie să fie deținut de uid-ul %d" + +# Modificat de la: „deținător” +# la: „proprietar” +# Explicația: +# proprietarul poate, și deobicei este deasemeni deținător (de ceva) +# în schimb, deținătorul decît deține ceva, deobicei este vremelnic(sau pe un timp determinat) +# Exp: +# arendașul, deține un teren(deobicei agricol, deci e un deținător de teren) drept pentru care se poate folosi de acel teren pe timpul și în condițiile financiare stabilite de proprietarul acelui teren(care este singurul care are drepturi depline asupra acelui teren. +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s trebuie să fie inscriptibil doar de proprietar" + #~ msgid "insufficient space for execve arguments" #~ msgstr "spațiu insuficient pentru argumentele de execve" diff --git a/po/sq.mo b/po/sq.mo new file mode 100644 index 0000000000..7fa2e4cec7 Binary files /dev/null and b/po/sq.mo differ diff --git a/po/sq.po b/po/sq.po new file mode 100644 index 0000000000..c83176e135 --- /dev/null +++ b/po/sq.po @@ -0,0 +1,1179 @@ +# Portable object template file for sudo +# This file is put in the public domain. +# +# Todd C. Miller , 2011-2018. +# Agron Selimaj , 2022. +msgid "" +msgstr "" +"Project-Id-Version: sudo 1.9.12b2\n" +"Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" +"POT-Creation-Date: 2022-10-09 09:48-0600\n" +"PO-Revision-Date: 2022-11-01 22:26-0400\n" +"Last-Translator: Agron Selimaj \n" +"Language-Team: Albanian \n" +"Language: sq\n" +"X-Bugs: Report translation errors to the Language-Team address.\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Lokalize 22.08.1\n" + +#: lib/util/aix.c:89 lib/util/aix.c:169 +msgid "unable to open userdb" +msgstr "hapja e userdb e pamundur" + +#: lib/util/aix.c:224 +#, c-format +msgid "unable to switch to registry \"%s\" for %s" +msgstr "aktivizimi i regjistrit \"%s\" për %s i pamundur" + +#: lib/util/aix.c:249 +msgid "unable to restore registry" +msgstr "rivendosja e regjistrit e pamundur" + +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 +#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 +#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 +#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 +#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 +#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 +#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 +#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 +#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 +#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 +#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 +#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 +#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 +#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 +#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 +#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 +#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 +#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 +#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 +#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 +#: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 +#: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 +#: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 +#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 +#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 +#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 +#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 +#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_intercept_common.c:340 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 +#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 +#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 +#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 +#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 +#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 +#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 +#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 +#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 +#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 +#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 +#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 +#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 +#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 +#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 +#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 +#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 +#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 +#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 +#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 +#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 +#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 +#: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 +#: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 +#: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 +#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 +#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 +#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 +#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_intercept_common.c:340 +msgid "unable to allocate memory" +msgstr "rezervimi i kujtesës i pamundur" + +#: lib/util/mkdir_parents.c:63 +#, c-format +msgid "unable to stat %.*s" +msgstr "e pamundur të stat-ohet %.*s" + +#: lib/util/mkdir_parents.c:69 +#, c-format +msgid "%.*s exists but is not a directory (0%o)" +msgstr "%.*s egzistojnë por nuk është skedarë (0%o)" + +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 +#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#, c-format +msgid "unable to open %s" +msgstr "hapja e %s e pamundur" + +#: lib/util/mkdir_parents.c:120 lib/util/mkdir_parents.c:160 +#, c-format +msgid "unable to mkdir %.*s" +msgstr "krijimi i skedarit %.*s me mkdir i pamundur" + +#: lib/util/mkdir_parents.c:130 lib/util/mkdir_parents.c:139 +#, c-format +msgid "unable to open %.*s" +msgstr "hapja e %.*s e pamundur" + +#: lib/util/regex.c:103 +msgid "regular expression too large" +msgstr "shprehja e rregult (regex) shumë e madhe" + +#: lib/util/strsignal.c:50 +msgid "Unknown signal" +msgstr "Sinjal i panjohur" + +#: lib/util/strtoid.c:84 lib/util/strtomode.c:52 lib/util/strtonum.c:148 +#: lib/util/strtonum.c:187 src/sesh.c:240 src/sesh.c:253 +msgid "invalid value" +msgstr "vlerë invalide" + +#: lib/util/strtomode.c:58 lib/util/strtonum.c:160 +msgid "value too large" +msgstr "vlera shumë e madhe" + +#: lib/util/strtomode.c:58 lib/util/strtonum.c:154 +msgid "value too small" +msgstr "vlera shumë e vogël" + +#: lib/util/sudo_conf.c:238 +#, c-format +msgid "invalid Path value \"%s\" in %s, line %u" +msgstr "vlera e shtegut \"%s\" në %s, në rreshtin %u është invalide" + +#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#, c-format +msgid "invalid value for %s \"%s\" in %s, line %u" +msgstr "vlera për %s \"%s\" në %s, në rreshtin %u është invalide" + +#: lib/util/sudo_conf.c:441 +#, c-format +msgid "unsupported group source \"%s\" in %s, line %u" +msgstr "" + +#: lib/util/sudo_conf.c:457 +#, c-format +msgid "invalid max groups \"%s\" in %s, line %u" +msgstr "" + +#: lib/util/sudo_conf.c:692 +#, c-format +msgid "%s is not a regular file" +msgstr "" + +#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#, c-format +msgid "%s is owned by uid %u, should be %u" +msgstr "" + +#: lib/util/sudo_conf.c:699 +#, c-format +msgid "%s is world writable" +msgstr "" + +#: lib/util/sudo_conf.c:702 +#, c-format +msgid "%s is group writable" +msgstr "" + +#: src/apparmor.c:85 +msgid "failed to determine AppArmor confinement" +msgstr "" + +#: src/apparmor.c:93 +#, c-format +msgid "unable to change AppArmor profile to %s" +msgstr "" + +#: src/copy_file.c:94 +#, c-format +msgid "%s: truncate %s to zero bytes? (y/n) [n] " +msgstr "" + +#: src/copy_file.c:98 +#, c-format +msgid "not overwriting %s" +msgstr "" + +#: src/copy_file.c:120 +#, c-format +msgid "unable to read from %s" +msgstr "" + +#: src/copy_file.c:137 src/sudo_edit.c:320 +#, c-format +msgid "unable to write to %s" +msgstr "" + +#: src/copy_file.c:151 +#, c-format +msgid "unable to stat %s" +msgstr "e pamundur të stat-ohet %s" + +#: src/copy_file.c:155 src/sesh.c:312 src/sudo_edit.c:197 +#, c-format +msgid "%s: not a regular file" +msgstr "" + +#: src/copy_file.c:159 +#, c-format +msgid "%s: bad file mode: 0%o" +msgstr "" + +#: src/edit_open.c:331 +msgid "unable to restore current working directory" +msgstr "" + +#: src/exec.c:111 +msgid "unable to set privileges" +msgstr "" + +#: src/exec.c:117 src/exec.c:122 +msgid "unable to set limit privileges" +msgstr "" + +#: src/exec.c:145 +#, c-format +msgid "unknown login class %s" +msgstr "" + +#: src/exec.c:157 +msgid "unable to set user context" +msgstr "" + +#: src/exec.c:173 +msgid "unable to set process priority" +msgstr "" + +#: src/exec.c:190 +#, c-format +msgid "unable to change root to %s" +msgstr "" + +#: src/exec.c:203 src/exec.c:209 src/exec.c:216 +#, c-format +msgid "unable to change to runas uid (%u, %u)" +msgstr "" + +#: src/exec.c:238 src/sesh.c:199 +#, c-format +msgid "unable to change directory to %s" +msgstr "" + +#: src/exec.c:243 +#, c-format +msgid "starting from %s" +msgstr "duke filluar nga %s" + +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 +#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 +#, c-format +msgid "unable to set handler for signal %d" +msgstr "" + +#: src/exec.c:422 +msgid "intercept mode is not supported with SELinux RBAC on this system" +msgstr "" + +#: src/exec.c:427 +msgid "unable to log sub-commands with SELinux RBAC on this system" +msgstr "" + +#: src/exec_common.c:56 +msgid "unable to remove PRIV_PROC_EXEC from PRIV_LIMIT" +msgstr "" + +#: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 +#: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 +#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 +#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 +#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 +#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 +#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 +#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 +msgid "unable to add event to queue" +msgstr "" + +#: src/exec_intercept.c:317 src/sudo.c:1018 +msgid "command not set by the security policy" +msgstr "" + +#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 +#: src/sudo.c:1283 src/sudo.c:1327 +msgid "command rejected by policy" +msgstr "" + +#: src/exec_intercept.c:491 src/sudo.c:1925 +msgid "approval plugin error" +msgstr "" + +#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 +#: src/sudo.c:1406 +msgid "policy plugin error" +msgstr "" + +#: src/exec_intercept.c:543 +msgid "invalid PolicyCheckRequest" +msgstr "" + +#: src/exec_intercept.c:678 +#, c-format +msgid "client request too large: %zu" +msgstr "" + +#: src/exec_intercept.c:720 +#, c-format +msgid "unable to unpack %s size %zu" +msgstr "" + +#: src/exec_intercept.c:768 +#, c-format +msgid "unexpected type_case value %d in %s from %s" +msgstr "" + +#: src/exec_intercept.c:794 +#, c-format +msgid "server message too large: %zu" +msgstr "" + +#: src/exec_iolog.c:323 src/exec_iolog.c:363 src/exec_iolog.c:403 +#: src/exec_iolog.c:454 src/exec_iolog.c:505 +msgid "I/O plugin error" +msgstr "" + +#: src/exec_iolog.c:327 src/exec_iolog.c:367 src/exec_iolog.c:407 +#: src/exec_iolog.c:458 src/exec_iolog.c:509 +msgid "command rejected by I/O plugin" +msgstr "" + +#: src/exec_iolog.c:556 +msgid "error logging suspend" +msgstr "" + +#: src/exec_iolog.c:591 +msgid "error changing window size" +msgstr "" + +#: src/exec_monitor.c:360 +msgid "error reading from socketpair" +msgstr "" + +#: src/exec_monitor.c:377 +#, c-format +msgid "unexpected reply type on backchannel: %d" +msgstr "" + +#: src/exec_monitor.c:585 +msgid "unable to set controlling tty" +msgstr "" + +#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 +#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 +#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +msgid "unable to create pipe" +msgstr "" + +#: src/exec_monitor.c:603 +msgid "unable to receive message from parent" +msgstr "" + +#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/sudo_edit.c:361 src/tgetpass.c:309 +msgid "unable to fork" +msgstr "e pamundur të kopjohet procesi" + +#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +msgid "unable to restore tty label" +msgstr "" + +#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#, c-format +msgid "unable to execute %s" +msgstr "" + +#: src/exec_nopty.c:542 src/exec_pty.c:1026 +msgid "policy plugin failed session initialization" +msgstr "" + +#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +msgid "unable to create sockets" +msgstr "" + +#: src/exec_nopty.c:684 src/exec_pty.c:1265 +msgid "error in event loop" +msgstr "" + +#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/sudo_edit.c:398 src/sudo_edit.c:406 +#, c-format +msgid "internal error, %s overflow" +msgstr "" + +#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#, c-format +msgid "unable to set registers for process %d" +msgstr "" + +#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#, c-format +msgid "process %d exited unexpectedly" +msgstr "" + +#: src/exec_ptrace.c:1207 +msgid "unable to set seccomp filter" +msgstr "" + +#: src/exec_ptrace.c:1404 +#, c-format +msgid "interpreter argument , expected \"%s\", got \"%s\"" +msgstr "" + +#: src/exec_ptrace.c:1503 +#, c-format +msgid "pathname mismatch, expected \"%s\", got \"%s\"" +msgstr "" + +#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 +#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#, c-format +msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" +msgstr "" + +#: src/exec_ptrace.c:1619 +#, c-format +msgid "process %d unexpected status 0x%x" +msgstr "" + +#: src/exec_ptrace.c:1711 +#, c-format +msgid "unable to get event message for process %d" +msgstr "" + +#: src/exec_ptrace.c:1718 +#, c-format +msgid "unable to get registers for process %d" +msgstr "" + +#: src/exec_pty.c:103 +msgid "unable to allocate pty" +msgstr "" + +#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#, c-format +msgid "unable to restore handler for signal %d" +msgstr "" + +#: src/exec_pty.c:1213 +msgid "unable to send message to monitor process" +msgstr "" + +#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 +#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 +#: src/load_plugins.c:346 +#, c-format +msgid "error in %s, line %d while loading plugin \"%s\"" +msgstr "" + +#: src/load_plugins.c:125 +#, c-format +msgid "%s must be owned by uid %d" +msgstr "" + +#: src/load_plugins.c:131 +#, c-format +msgid "%s must be only be writable by owner" +msgstr "" + +#: src/load_plugins.c:243 src/load_plugins.c:314 +#, c-format +msgid "ignoring duplicate plugin \"%s\" in %s, line %d" +msgstr "" + +#: src/load_plugins.c:281 +#, c-format +msgid "unable to load %s: %s" +msgstr "" + +#: src/load_plugins.c:291 +#, c-format +msgid "unable to find symbol \"%s\" in %s" +msgstr "" + +#: src/load_plugins.c:301 +#, c-format +msgid "incompatible plugin major version %d (expected %d) found in %s" +msgstr "" + +#: src/load_plugins.c:319 +#, c-format +msgid "ignoring policy plugin \"%s\" in %s, line %d" +msgstr "" + +#: src/load_plugins.c:322 +msgid "only a single policy plugin may be specified" +msgstr "" + +#: src/load_plugins.c:348 +#, c-format +msgid "unknown plugin type %d found in %s" +msgstr "" + +#: src/load_plugins.c:531 +#, c-format +msgid "policy plugin %s does not include a check_policy method" +msgstr "" + +#: src/parse_args.c:214 +#, c-format +msgid "invalid environment variable name: %s" +msgstr "" + +#: src/parse_args.c:317 +msgid "the argument to -C must be a number greater than or equal to 3" +msgstr "" + +#: src/parse_args.c:554 +msgid "you may not specify both the -i and -s options" +msgstr "" + +#: src/parse_args.c:559 +msgid "you may not specify both the -i and -E options" +msgstr "" + +#: src/parse_args.c:569 +msgid "the -E option is not valid in edit mode" +msgstr "" + +#: src/parse_args.c:572 +msgid "you may not specify environment variables in edit mode" +msgstr "" + +#: src/parse_args.c:582 +msgid "the -U option may only be used with the -l option" +msgstr "" + +#: src/parse_args.c:586 +msgid "the -A and -S options may not be used together" +msgstr "" + +#: src/parse_args.c:684 +msgid "sudoedit is not supported on this platform" +msgstr "" + +#: src/parse_args.c:767 +msgid "Only one of the -e, -h, -i, -K, -l, -s, -v or -V options may be specified" +msgstr "" + +#: src/parse_args.c:780 +msgid "Only one of the -K, -k or -N options may be specified" +msgstr "" + +#: src/parse_args.c:796 +#, c-format +msgid "" +"%s - edit files as another user\n" +"\n" +msgstr "" + +#: src/parse_args.c:798 +#, c-format +msgid "" +"%s - execute a command as another user\n" +"\n" +msgstr "" + +#: src/parse_args.c:804 +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Opsionet:\n" + +#: src/parse_args.c:806 +msgid "use a helper program for password prompting" +msgstr "" + +#: src/parse_args.c:809 +msgid "use specified BSD authentication type" +msgstr "" + +#: src/parse_args.c:813 +msgid "run command in the background" +msgstr "egzekutoje komandën në prapavi" + +#: src/parse_args.c:816 +msgid "ring bell when prompting" +msgstr "" + +#: src/parse_args.c:818 +msgid "close all file descriptors >= num" +msgstr "" + +#: src/parse_args.c:821 +msgid "run command with the specified BSD login class" +msgstr "" + +#: src/parse_args.c:824 +msgid "change the working directory before running command" +msgstr "" + +#: src/parse_args.c:827 +msgid "preserve user environment when running command" +msgstr "" + +#: src/parse_args.c:829 +msgid "preserve specific environment variables" +msgstr "" + +#: src/parse_args.c:831 +msgid "edit files instead of running a command" +msgstr "" + +#: src/parse_args.c:834 +msgid "run command as the specified group name or ID" +msgstr "" + +#: src/parse_args.c:837 +msgid "set HOME variable to target user's home dir" +msgstr "" + +#: src/parse_args.c:840 +msgid "display help message and exit" +msgstr "" + +#: src/parse_args.c:842 +msgid "run command on host (if supported by plugin)" +msgstr "" + +#: src/parse_args.c:845 +msgid "run login shell as the target user; a command may also be specified" +msgstr "" + +#: src/parse_args.c:847 +msgid "remove timestamp file completely" +msgstr "" + +#: src/parse_args.c:850 +msgid "invalidate timestamp file" +msgstr "" + +#: src/parse_args.c:853 +msgid "list user's privileges or check a specific command; use twice for longer format" +msgstr "" + +#: src/parse_args.c:856 +msgid "non-interactive mode, no prompts are used" +msgstr "" + +#: src/parse_args.c:859 +msgid "preserve group vector instead of setting to target's" +msgstr "" + +#: src/parse_args.c:862 +msgid "use the specified password prompt" +msgstr "" + +#: src/parse_args.c:864 +msgid "change the root directory before running command" +msgstr "" + +#: src/parse_args.c:867 +msgid "create SELinux security context with specified role" +msgstr "" + +#: src/parse_args.c:870 +msgid "read password from standard input" +msgstr "" + +#: src/parse_args.c:873 +msgid "run shell as the target user; a command may also be specified" +msgstr "" + +#: src/parse_args.c:877 +msgid "create SELinux security context with specified type" +msgstr "" + +#: src/parse_args.c:880 +msgid "terminate command after the specified time limit" +msgstr "" + +#: src/parse_args.c:883 +msgid "in list mode, display privileges for user" +msgstr "" + +#: src/parse_args.c:886 +msgid "run command (or edit file) as specified user name or ID" +msgstr "" + +#: src/parse_args.c:888 +msgid "display version information and exit" +msgstr "" + +#: src/parse_args.c:891 +msgid "update user's timestamp without running a command" +msgstr "" + +#: src/parse_args.c:894 +msgid "stop processing command line arguments" +msgstr "" + +#: src/selinux.c:83 +msgid "unable to open audit system" +msgstr "" + +#: src/selinux.c:93 +msgid "unable to send audit message" +msgstr "" + +#: src/selinux.c:129 +#, c-format +msgid "unable to fgetfilecon %s" +msgstr "" + +#: src/selinux.c:134 +#, c-format +msgid "%s changed labels" +msgstr "%s ndryshoi etiketat" + +#: src/selinux.c:142 +#, c-format +msgid "unable to restore context for %s" +msgstr "" + +#: src/selinux.c:190 +#, c-format +msgid "unable to open %s, not relabeling tty" +msgstr "" + +#: src/selinux.c:194 src/selinux.c:239 src/selinux.c:269 +#, c-format +msgid "%s is not a character device, not relabeling tty" +msgstr "" + +#: src/selinux.c:203 +msgid "unable to get current tty context, not relabeling tty" +msgstr "" + +#: src/selinux.c:210 +msgid "unknown security class \"chr_file\", not relabeling tty" +msgstr "" + +#: src/selinux.c:215 +msgid "unable to get new tty context, not relabeling tty" +msgstr "" + +#: src/selinux.c:224 +msgid "unable to set new tty context" +msgstr "" + +#: src/selinux.c:323 +#, c-format +msgid "you must specify a role for type %s" +msgstr "" + +#: src/selinux.c:329 +#, c-format +msgid "unable to get default type for role %s" +msgstr "" + +#: src/selinux.c:341 +msgid "failed to get new context" +msgstr "" + +#: src/selinux.c:350 +#, c-format +msgid "failed to set new role %s" +msgstr "" + +#: src/selinux.c:354 +#, c-format +msgid "failed to set new type %s" +msgstr "" + +#: src/selinux.c:366 +#, c-format +msgid "%s is not a valid context" +msgstr "" + +#: src/selinux.c:394 +msgid "failed to get old context" +msgstr "" + +#: src/selinux.c:400 +msgid "unable to determine enforcing mode." +msgstr "" + +#: src/selinux.c:425 +#, c-format +msgid "unable to set exec context to %s" +msgstr "" + +#: src/selinux.c:432 +#, c-format +msgid "unable to set key creation context to %s" +msgstr "" + +#: src/sesh.c:114 src/sesh.c:134 +msgid "Only one of the -c or -i options may be specified" +msgstr "" + +#: src/sesh.c:129 +#, c-format +msgid "invalid file descriptor number: %s" +msgstr "" + +#: src/sesh.c:167 src/sesh.c:171 src/sesh.c:175 +#, c-format +msgid "The -%c option may not be used in edit mode." +msgstr "" + +#: src/sesh.c:184 src/sesh.c:189 +#, c-format +msgid "The -%c option may only be used in edit mode." +msgstr "" + +#: src/sesh.c:294 src/sesh.c:394 src/sudo_edit.c:204 +#, c-format +msgid "%s: editing symbolic links is not permitted" +msgstr "" + +#: src/sesh.c:297 src/sesh.c:397 src/sudo_edit.c:207 +#, c-format +msgid "%s: editing files in a writable directory is not permitted" +msgstr "" + +#: src/sesh.c:381 src/sesh.c:402 src/sesh.c:411 src/sesh.c:419 +#: src/sudo_edit.c:331 +#, c-format +msgid "contents of edit session left in %s" +msgstr "" + +#: src/sesh.c:476 src/sudo_edit.c:94 +msgid "unable to get group list" +msgstr "" + +#: src/signal.c:79 +#, c-format +msgid "unable to save handler for signal %d" +msgstr "" + +#: src/solaris.c:72 +msgid "resource control limit has been reached" +msgstr "" + +#: src/solaris.c:75 +#, c-format +msgid "user \"%s\" is not a member of project \"%s\"" +msgstr "" + +#: src/solaris.c:79 +msgid "the invoking task is final" +msgstr "" + +#: src/solaris.c:82 +#, c-format +msgid "could not join project \"%s\"" +msgstr "" + +#: src/solaris.c:89 +#, c-format +msgid "no resource pool accepting default bindings exists for project \"%s\"" +msgstr "" + +#: src/solaris.c:93 +#, c-format +msgid "specified resource pool does not exist for project \"%s\"" +msgstr "" + +#: src/solaris.c:97 +#, c-format +msgid "could not bind to default resource pool for project \"%s\"" +msgstr "" + +#: src/solaris.c:104 +#, c-format +msgid "setproject failed for project \"%s\"" +msgstr "" + +#: src/solaris.c:106 +#, c-format +msgid "warning, resource control assignment failed for project \"%s\"" +msgstr "" + +#: src/sudo.c:216 +#, c-format +msgid "Sudo version %s\n" +msgstr "Verzioni i Sudo-s %s\n" + +#: src/sudo.c:218 +#, c-format +msgid "Configure options: %s\n" +msgstr "" + +#: src/sudo.c:226 +msgid "fatal error, unable to load plugins" +msgstr "" + +#: src/sudo.c:272 +msgid "plugin did not return a command to execute" +msgstr "" + +#: src/sudo.c:305 +#, c-format +msgid "unexpected sudo mode 0x%x" +msgstr "" + +#: src/sudo.c:553 +#, c-format +msgid "you do not exist in the %s database" +msgstr "" + +#: src/sudo.c:610 +msgid "unable to determine tty" +msgstr "" + +#: src/sudo.c:918 +msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." +msgstr "" + +#: src/sudo.c:920 +msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." +msgstr "" + +#: src/sudo.c:954 +#, c-format +msgid "%s must be owned by uid %d and have the setuid bit set" +msgstr "" + +#: src/sudo.c:957 +#, c-format +msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" +msgstr "" + +#: src/sudo.c:963 +#, c-format +msgid "effective uid is not %d, is sudo installed setuid root?" +msgstr "" + +#: src/sudo.c:979 src/tgetpass.c:331 +msgid "unable to set supplementary group IDs" +msgstr "" + +#: src/sudo.c:986 +#, c-format +msgid "unable to set effective gid to runas gid %u" +msgstr "" + +#: src/sudo.c:992 +#, c-format +msgid "unable to set gid to runas gid %u" +msgstr "" + +#: src/sudo.c:1022 +msgid "argv not set by the security policy" +msgstr "" + +#: src/sudo.c:1026 +msgid "envp not set by the security policy" +msgstr "" + +#: src/sudo.c:1048 +#, c-format +msgid "unexpected child termination condition: %d" +msgstr "" + +#: src/sudo.c:1161 +msgid "unable to initialize policy plugin" +msgstr "" + +#: src/sudo.c:1223 +#, c-format +msgid "policy plugin %s is missing the \"check_policy\" method" +msgstr "" + +#: src/sudo.c:1269 +#, c-format +msgid "policy plugin %s does not support listing privileges" +msgstr "" + +#: src/sudo.c:1313 +#, c-format +msgid "policy plugin %s does not support the -v option" +msgstr "" + +#: src/sudo.c:1351 +#, c-format +msgid "policy plugin %s does not support the -k/-K options" +msgstr "" + +#: src/sudo.c:1480 +#, c-format +msgid "error initializing I/O plugin %s" +msgstr "" + +#: src/sudo.c:1483 +msgid "error initializing I/O plugin" +msgstr "" + +#: src/sudo.c:1632 +#, c-format +msgid "error initializing audit plugin %s" +msgstr "" + +#: src/sudo.c:1711 +#, c-format +msgid "%s: unable to log error event%s%s" +msgstr "" + +#: src/sudo.c:1747 +#, c-format +msgid "%s: unable to log accept event%s%s" +msgstr "" + +#: src/sudo.c:1752 src/sudo.c:1790 +msgid "audit plugin error" +msgstr "" + +#: src/sudo.c:1785 +#, c-format +msgid "%s: unable to log reject event%s%s" +msgstr "" + +#: src/sudo.c:1845 +#, c-format +msgid "error initializing approval plugin %s" +msgstr "" + +#: src/sudo.c:1915 +msgid "command rejected by approver" +msgstr "komanda u refuzua nga aprovuesi" + +#: src/sudo_edit.c:113 +msgid "no writable temporary directory found" +msgstr "" + +#: src/sudo_edit.c:291 +#, c-format +msgid "%s left unmodified" +msgstr "%s ka mbetur e pandryshuar" + +#: src/sudo_edit.c:304 src/sudo_edit.c:569 +#, c-format +msgid "%s unchanged" +msgstr "%s e pandryshuar" + +#: src/sudo_edit.c:481 +msgid "sesh: internal error: odd number of paths" +msgstr "" + +#: src/sudo_edit.c:483 +msgid "sesh: unable to create temporary files" +msgstr "" + +#: src/sudo_edit.c:485 src/sudo_edit.c:604 +msgid "sesh: killed by a signal" +msgstr "sesh: u vra nga një sinjal" + +#: src/sudo_edit.c:487 src/sudo_edit.c:607 +#, c-format +msgid "sesh: unknown error %d" +msgstr "sesh: gabim i panjohur %d" + +#: src/sudo_edit.c:597 +msgid "unable to copy temporary files back to their original location" +msgstr "" + +#: src/sudo_edit.c:601 +msgid "unable to copy some of the temporary files back to their original location" +msgstr "" + +#: src/sudo_edit.c:645 +#, c-format +msgid "unable to change uid to root (%u)" +msgstr "" + +#: src/sudo_edit.c:666 +msgid "plugin error: missing file list for sudoedit" +msgstr "" + +#: src/sudo_edit.c:709 src/sudo_edit.c:723 +msgid "unable to read the clock" +msgstr "e pamundur të lexohet ora" + +#: src/sudo_intercept_common.c:365 +msgid "intercept port not set" +msgstr "porti i ndërhyrhjes nuk është përcaktuar" + +#: src/tgetpass.c:95 +msgid "timed out reading password" +msgstr "skadoi koha duke lexuar shifrën" + +#: src/tgetpass.c:98 +msgid "no password was provided" +msgstr "shifra nuk ishte dhënë" + +#: src/tgetpass.c:101 +msgid "unable to read password" +msgstr "e pamundur të lexohet shifra" + +#: src/tgetpass.c:141 +msgid "a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper" +msgstr "" + +#: src/tgetpass.c:152 +msgid "no askpass program specified, try setting SUDO_ASKPASS" +msgstr "" + +#: src/tgetpass.c:326 +#, c-format +msgid "unable to set gid to %u" +msgstr "e pamundur ti vendoset gid %u" + +#: src/tgetpass.c:336 +#, c-format +msgid "unable to set uid to %u" +msgstr "e pamundur ti vendoset uid %u" + +#: src/tgetpass.c:341 +#, c-format +msgid "unable to run %s" +msgstr "e pamundur të egzekutohet %s" + +#: src/utmp.c:288 +msgid "unable to save stdin" +msgstr "e pamundur të ruhet stdin" + +#: src/utmp.c:290 +msgid "unable to dup2 stdin" +msgstr "e pamundur të dup2 stdin" + +#: src/utmp.c:293 +msgid "unable to restore stdin" +msgstr "e pamundur të rivendoset stdin" diff --git a/po/sudo.pot b/po/sudo.pot index cc7a6307f2..58a85cae26 100644 --- a/po/sudo.pot +++ b/po/sudo.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12\n" +"Project-Id-Version: sudo 1.9.13\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,74 +30,74 @@ msgid "unable to restore registry" msgstr "" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 src/sudo.c:1133 -#: src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 src/sudo.c:2156 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 src/sudo.c:1143 +#: src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 src/sudo.c:2166 #: src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "" @@ -112,9 +112,9 @@ msgstr "" msgid "%.*s exists but is not a directory (0%o)" msgstr "" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "" @@ -129,7 +129,7 @@ msgstr "" msgid "unable to open %.*s" msgstr "" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "" @@ -150,42 +150,42 @@ msgstr "" msgid "value too small" msgstr "" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "" -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "" -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "" -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "" @@ -279,8 +279,8 @@ msgstr "" msgid "starting from %s" msgstr "" -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -300,60 +300,60 @@ msgstr "" #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "" -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "" -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "" @@ -376,93 +376,93 @@ msgstr "" msgid "error changing window size" msgstr "" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "" -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "" -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "" -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 src/net_ifs.c:433 -#: src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 src/sudo_edit.c:398 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 src/net_ifs.c:433 +#: src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 src/sudo_edit.c:398 #: src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "" @@ -481,67 +481,56 @@ msgstr "" msgid "unable to allocate pty" msgstr "" -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "" - -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "" -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "" @@ -943,139 +932,139 @@ msgstr "" msgid "plugin did not return a command to execute" msgstr "" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "" "The \"no new privileges\" flag is set, which prevents sudo from running as " "root." msgstr "" -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "" "If sudo is running in a container, you may need to adjust the container " "configuration to disable the flag." msgstr "" -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "" -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "" "effective uid is not %d, is %s on a file system with the 'nosuid' option set " "or an NFS file system without root privileges?" msgstr "" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "" -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "" -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "" -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "" @@ -1119,16 +1108,20 @@ msgid "" "unable to copy some of the temporary files back to their original location" msgstr "" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "" diff --git a/po/sv.mo b/po/sv.mo index beddaad0b9..d8e011c762 100644 Binary files a/po/sv.mo and b/po/sv.mo differ diff --git a/po/sv.po b/po/sv.po index bb68e1735d..79c230dc64 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,15 +1,15 @@ # Swedish translation for sudo. -# Copyright © 2012, 2016, 2017, 2018, 2019, 2020, 2022 Free Software Foundation, Inc. +# Copyright © 2012, 2016, 2017, 2018, 2019, 2020, 2022, 2023 Free Software Foundation, Inc. # This file is put in the public domain. # Daniel Nylander , 2012. -# Sebastian Rasmussen , 2016, 2017, 2018, 2019, 2020, 2022. +# Sebastian Rasmussen , 2016, 2017, 2018, 2019, 2020, 2022, 2023. # msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12b2\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" -"PO-Revision-Date: 2022-10-11 13:40+0200\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 13:18+0100\n" "Last-Translator: Sebastian Rasmussen \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.1.1\n" +"X-Generator: Poedit 3.2.2\n" "X-Poedit-Bookmarks: -1,0,-1,-1,-1,-1,-1,-1,-1,-1\n" #: lib/util/aix.c:89 lib/util/aix.c:169 @@ -35,74 +35,74 @@ msgid "unable to restore registry" msgstr "kunde inte återställa registret" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "kunde inte allokera minne" @@ -117,9 +117,9 @@ msgstr "kunde inte ta status på %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s existerar men är inte en katalog (0%o)" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "kunde inte öppna %s" @@ -134,7 +134,7 @@ msgstr "kunde inte köra mkdir %.*s" msgid "unable to open %.*s" msgstr "kunde inte öppna %.*s" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "reguljärt uttryck för stort" @@ -155,42 +155,42 @@ msgstr "värde för stort" msgid "value too small" msgstr "värde för litet" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "ogiltigt Path-värde ”%s” i %s, rad %u" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "ogiltigt värde för %s ”%s” i %s, rad %u" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "gruppkälla ”%s” stöds ej i %s, rad %u" -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "ogiltigt största antal grupper ”%s” i %s, rad %u" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s är inte en vanlig fil" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s ägs av uid %u, ska vara %u" -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s är skrivbar för alla" -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s är skrivbar för gruppen" @@ -284,8 +284,8 @@ msgstr "kunde inte ändra katalog till %s" msgid "starting from %s" msgstr "börjar från %s" -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -305,60 +305,60 @@ msgstr "kan inte ta bort PRIV_PROC_EXEC från PRIV_LIMIT" #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "kunde inte lägga till händelse till kö" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "kommando inte satt enligt säkerhetspolicyn" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "kommando avböjt enligt policy" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "fel i godkänningsinsticksmodul" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "fel i policyinsticksmodul" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "ogiltig PolicyCheckRequest" -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "klientbegäran för stor: %zu" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "kunde inte packa upp %s storlek %zu" -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "oväntat type_case-värde %d i %s från %s" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "servermeddelande för stort: %zu" @@ -381,93 +381,93 @@ msgstr "felloggning avstängd" msgid "error changing window size" msgstr "fel vid ändring av fönsterstorlek" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "fel vid läsning från uttagspar" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "oväntad svarstyp i bakkanal: %d" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "kan inte ställa in kontrollerande tty" -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "kunde inte skapa rör" -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "kan inte ta emot meddelande från förälder" -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "kunde inte grena process" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "kan inte återställa tty-etikett" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "kunde inte köra %s" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "policyinsticksmodul misslyckades att initiera session" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "kunde inte skapa uttag" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "fel i händelseslinga" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 -#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 #: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "internt fel, %s spill" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "kunde inte sätta register för process %d" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "process %d avslutades oväntat" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "kan inte sätta seccomp-filter" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "tolkargument , förväntade \"%s\", fick \"%s\"" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "felmatchning i söknamn, förväntade \"%s\", fick \"%s\"" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "%s[%d] felmatchade, förväntade \"%s\", fick \"%s\"" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "process %d oväntad status 0x%x" @@ -486,67 +486,56 @@ msgstr "kan inte hämta register för process %d" msgid "unable to allocate pty" msgstr "kunde inte allokera pty" -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "kunde inte återställa hanterare för signal %d" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "kan inte skicka meddelande till övervakningsprocess" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "fel i %s, rad %d under inläsning av insticksmodul ”%s”" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s måste ägas av uid %d" - -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "%s får endast vara skrivbar av ägaren" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "ignorerar dubblerad insticksmodul ”%s” i %s, rad %d" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "kunde inte läsa in %s: %s" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "kunde inte hitta symbol ”%s” i %s" -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "inkompatibel huvudversion %d för insticksmodul (%d förväntades) hittad i %s" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "ignorerar policyinsticksmodul ”%s” i %s, rad %d" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "bara en policyinsticksmodul kan anges" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "okänd insticksmodulstyp %d hittad i %s" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "policyinsticksmodul %s inkluderar inte en check_policy-metod" @@ -951,133 +940,133 @@ msgstr "ödesdigert fel, kunde inte läsa in insticksmoduler" msgid "plugin did not return a command to execute" msgstr "insticksmodul returnerade ett kommando att exekvera" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "oväntat sudo-läge 0x%x" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "du existerar inte i %s-databasen" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "kan inte detektera tty" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "Flaggan \"inga nya privilegier\" är satt, vilket förhindrar sudo från att köra som root." -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "Om sudo kör i en behållare, kan du behöva justera behållarkonfigurationen för att inaktivera flaggan." -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s måste ägas av uid %d och ha setuid-biten inställd" -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "effektivt uid är inte %d, är %s på ett filsystem med flaggan ”nosuid” inställd eller ett NFS-filsystem utan root-rättigheter?" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "effektivt uid är inte %d, har sudo installerats som setuid root?" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "kan inte ställa in kompletterande grupp-ID:n" -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "kunde inte ställa in effektiv gid till runas gid %u" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "kunde inte ställa in gid för runas gid %u" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "argv inte satt enligt säkerhetspolicyn" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "envp inte satt enligt säkerhetspolicyn" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "oväntat barnavslutsvillkor: %d" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "kan inte initiera policy-instick" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "policyinsticksmodul %s saknar metoden ”check_policy”" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "policyinsticksmodul %s har inte stöd för att lista rättigheter" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "policyinsticksmodul %s har inte stöd för flaggan -v" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "policyinsticksmodul %s har inte stöd för flaggorna -k/-K" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "fel vid initiering av I/O-insticksmodul %s" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "fel vid initiering av I/O-insticksmodul" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "fel vid initiering av granskningsinsticksmodul %s" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s: kunde inte logga felhändelse%s%s" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: kunde inte logga acceptanshändelse%s%s" -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "fel i audit-insticksmodul" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: kunde inte logga avböjningshändelse%s%s" -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "fel vid initiering av godkänningsinsticksmodul %s" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "kommando avböjt av godkännare" @@ -1120,16 +1109,20 @@ msgstr "kan inte kopiera temporära filer tillbaka till deras originalplats" msgid "unable to copy some of the temporary files back to their original location" msgstr "kan inte kopiera vissa av de temporära filerna tillbaka till deras originalplats" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "kunde inte ändra uid till root (%u)" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "insticksfel: felaktig fillista för sudoedit" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "insticksfel: fillista för sudoedit saknas" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "kunde inte läsa klockan" @@ -1184,6 +1177,12 @@ msgstr "kan inte köra dup2 på standard in" msgid "unable to restore stdin" msgstr "kan inte återställa standard in" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s måste ägas av uid %d" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s får endast vara skrivbar av ägaren" + #~ msgid "%s%s: %s" #~ msgstr "%s%s: %s" diff --git a/po/uk.mo b/po/uk.mo index fce6dc18f8..dabf6e8e5f 100644 Binary files a/po/uk.mo and b/po/uk.mo differ diff --git a/po/uk.po b/po/uk.po index efe417b37a..f1825b9c1a 100644 --- a/po/uk.po +++ b/po/uk.po @@ -1,13 +1,13 @@ # Ukrainian translation for sudo. # This file is put in the public domain. # -# Yuri Chornoivan , 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022. +# Yuri Chornoivan , 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023. msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.12b2\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-10-09 09:48-0600\n" -"PO-Revision-Date: 2022-10-11 12:15+0300\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-01-26 20:58+0200\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -32,74 +32,74 @@ msgid "unable to restore registry" msgstr "не вдалося відновити регістр" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 -#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 #: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 -#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 -#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 -#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 -#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 -#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 -#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 -#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 -#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 -#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 #: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 #: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 #: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 #: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 -#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 -#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 -#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 -#: src/sudo_intercept_common.c:340 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 -#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 -#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 -#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 -#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 -#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 -#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 -#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 -#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 -#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 -#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 -#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 -#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 -#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 -#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 -#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 -#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 -#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 -#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 -#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 #: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 #: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 #: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 #: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 -#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 -#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 -#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 #: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 -#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 #: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "не вдалося отримати потрібний об’єм пам’яті" @@ -114,9 +114,9 @@ msgstr "не вдалося виконати stat для %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s існує, але не є каталогом (0%o)" -#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 -#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "не вдалося відкрити %s" @@ -131,7 +131,7 @@ msgstr "не вдалося створити каталог %.*s" msgid "unable to open %.*s" msgstr "не вдалося відкрити %.*s" -#: lib/util/regex.c:103 +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "задовгий формальний вираз" @@ -152,42 +152,42 @@ msgstr "надто велике значення" msgid "value too small" msgstr "надто мале значення" -#: lib/util/sudo_conf.c:238 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "некоректне значення Path, «%s», у %s, рядок %u" -#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "некоректне значення %s, «%s», у %s, рядок %u" -#: lib/util/sudo_conf.c:441 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "непідтримуване джерело групи, «%s», у %s, рядок %u" -#: lib/util/sudo_conf.c:457 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "некоректна максимальна кількість груп, «%s», у %s, рядок %u" -#: lib/util/sudo_conf.c:692 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s не є звичайним файлом" -#: lib/util/sudo_conf.c:695 src/copy_file.c:164 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s належить uid %u, має належати %u" -#: lib/util/sudo_conf.c:699 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "Запис до «%s» можливий для довільного користувача" -#: lib/util/sudo_conf.c:702 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "Запис до «%s» може здійснювати будь-який користувач з групи" @@ -281,8 +281,8 @@ msgstr "не вдалося змінити каталог на %s" msgid "starting from %s" msgstr "починаючи з %s" -#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 -#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 #: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" @@ -302,60 +302,60 @@ msgstr "не вдалося вилучити PRIV_PROC_EXEC з PRIV_LIMIT" #: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 #: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 -#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 -#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 -#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 -#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 -#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 -#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 -#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 -#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 -#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 -#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 -#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 -#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 -#: src/exec_pty.c:947 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "не вдалося додати подію до черги обробки" -#: src/exec_intercept.c:317 src/sudo.c:1018 +#: src/exec_intercept.c:317 src/sudo.c:1028 msgid "command not set by the security policy" msgstr "команду не встановлено правилами захисту" -#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 -#: src/sudo.c:1283 src/sudo.c:1327 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "у виконанні команди відмовлено згідно правил" -#: src/exec_intercept.c:491 src/sudo.c:1925 +#: src/exec_intercept.c:505 src/sudo.c:1935 msgid "approval plugin error" msgstr "помилка у додатку підтвердження" -#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 -#: src/sudo.c:1406 +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "помилка у додатку правил" -#: src/exec_intercept.c:543 +#: src/exec_intercept.c:559 msgid "invalid PolicyCheckRequest" msgstr "некоректне значення PolicyCheckRequest" -#: src/exec_intercept.c:678 +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "надто великий запит клієнта: %zu" -#: src/exec_intercept.c:720 +#: src/exec_intercept.c:744 #, c-format msgid "unable to unpack %s size %zu" msgstr "не вдалося розпакувати %s, розмір %zu" -#: src/exec_intercept.c:768 +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "неочікуване значення type_case %d у %s від %s" -#: src/exec_intercept.c:794 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "надто велике повідомлення сервера: %zu" @@ -378,93 +378,93 @@ msgstr "помилка під час призупинення ведення ж msgid "error changing window size" msgstr "помилка під час зміни розмірів вікна" -#: src/exec_monitor.c:360 +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "помилка під час спроби читання з пари сокетів" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "неочікуваний тип відповіді на зворотному каналі: %d" -#: src/exec_monitor.c:585 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "не вдалося встановити tty для керування" -#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 -#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 -#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "не вдалося створити канал" -#: src/exec_monitor.c:603 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "не вдалося отримати повідомлення від батьківського процесу" -#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 #: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "не вдалося створити відгалуження" -#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "не вдалося відновити позначку tty" -#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "не вдалося виконати %s" -#: src/exec_nopty.c:542 src/exec_pty.c:1026 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "не вдалося виконати ініціалізацію сеансу через додаток правил" -#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "не вдалося створити сокети" -#: src/exec_nopty.c:684 src/exec_pty.c:1265 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "помилка у циклі обробки подій" -#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 -#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 #: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format msgid "internal error, %s overflow" msgstr "внутрішня помилка, переповнення %s" -#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 #, c-format msgid "unable to set registers for process %d" msgstr "не вдалося встановити регістри для процесу %d" -#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 #, c-format msgid "process %d exited unexpectedly" msgstr "процес %d неочікувано завершив роботу" -#: src/exec_ptrace.c:1207 +#: src/exec_ptrace.c:1208 msgid "unable to set seccomp filter" msgstr "не вдалося встановити фільтр seccomp" -#: src/exec_ptrace.c:1404 +#: src/exec_ptrace.c:1405 #, c-format msgid "interpreter argument , expected \"%s\", got \"%s\"" msgstr "аргумент інтерпретатора , мало бути «%s», маємо «%s»" -#: src/exec_ptrace.c:1503 +#: src/exec_ptrace.c:1504 #, c-format msgid "pathname mismatch, expected \"%s\", got \"%s\"" msgstr "невідповідність шляхів: мало бути «%s», маємо «%s»" -#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 -#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 #, c-format msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" msgstr "невідповідність %s[%d]: мало бути «%s», маємо «%s»" -#: src/exec_ptrace.c:1619 +#: src/exec_ptrace.c:1620 #, c-format msgid "process %d unexpected status 0x%x" msgstr "неочікуваний стан процесу %d: 0x%x" @@ -483,67 +483,56 @@ msgstr "не вдалося отримати регістри для проце msgid "unable to allocate pty" msgstr "не вдалося розмістити pty" -#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 #, c-format msgid "unable to restore handler for signal %d" msgstr "не вдалося відновити обробник для сигналу %d" -#: src/exec_pty.c:1213 +#: src/exec_pty.c:1222 msgid "unable to send message to monitor process" msgstr "не вдалося надіслати повідомлення до процесу аудиту" -#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 -#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 -#: src/load_plugins.c:346 +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "помилка у %s, рядок %d під час спроби завантаження додатка «%s»" -#: src/load_plugins.c:125 -#, c-format -msgid "%s must be owned by uid %d" -msgstr "%s має належати користувачеві з uid %d" - -#: src/load_plugins.c:131 -#, c-format -msgid "%s must be only be writable by owner" -msgstr "%s має бути доступним до запису лише для власника" - -#: src/load_plugins.c:243 src/load_plugins.c:314 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "ігноруємо повторний запис додатка, «%s», у %s, рядок %d" -#: src/load_plugins.c:281 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "не вдалося завантажити %s: %s" -#: src/load_plugins.c:291 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "не вдалося знайти символ «%s» у %s" -#: src/load_plugins.c:301 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "несумісна основна версія додатка, %d, (мало бути %d) у %s" -#: src/load_plugins.c:319 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "ігноруємо додаток правил, «%s», у %s, рядок %d" -#: src/load_plugins.c:322 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "можна визначати лише один додаток обробки правил" -#: src/load_plugins.c:348 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "у %2$s виявлено невідомий тип додатка, %1$d" -#: src/load_plugins.c:531 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "до додатка правил %s не включено метод check_policy" @@ -948,133 +937,133 @@ msgstr "критична помилка, не вдалося завантажи msgid "plugin did not return a command to execute" msgstr "додатком не повернуто команди, яку слід виконати" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "неочікуваний режим sudo 0x%x" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "вас немає у базі даних %s" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "не вдалося визначити tty" -#: src/sudo.c:918 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "Встановлено прапорець «без нових привілеїв», який забороняє запуск sudo від імені користувача root." -#: src/sudo.c:920 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "Якщо sudo запущено у контейнері, вам, можливо, слід скоригувати налаштування контейнера, щоб вимкнути цей прапорець." -#: src/sudo.c:954 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s має належати користувачеві з uid %d, крім того, має бути встановлено біт setuid" -#: src/sudo.c:957 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "поточним uid не є %d. Можливо %s зберігається у файловій системі зі встановленим параметром «nosuid» або у файловій системі NFS без прав доступу root?" -#: src/sudo.c:963 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "поточним uid не є %d, sudo встановлено з ідентифікатором користувача root?" -#: src/sudo.c:979 src/tgetpass.c:331 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "не вдалося встановити ідентифікатори додаткових груп" -#: src/sudo.c:986 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "не вдалося встановити ефективний ідентифікатор групи для ідентифікатора групи запуску %u" -#: src/sudo.c:992 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "не вдалося встановити ідентифікатор групи для ідентифікатора групи запуску %u" -#: src/sudo.c:1022 +#: src/sudo.c:1032 msgid "argv not set by the security policy" msgstr "argv не встановлено правилами захисту" -#: src/sudo.c:1026 +#: src/sudo.c:1036 msgid "envp not set by the security policy" msgstr "envp не встановлено правилами захисту" -#: src/sudo.c:1048 +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "неочікувана умова переривання дочірнього процесу: %d" -#: src/sudo.c:1161 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "не вдалося ініціалізувати додаток правил" -#: src/sudo.c:1223 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "до додатка правил %s не включено метод check_policy" -#: src/sudo.c:1269 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "у додатку правил %s не передбачено підтримки побудови списку прав доступу" -#: src/sudo.c:1313 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "у додатку правил %s не передбачено підтримки параметра -v" -#: src/sudo.c:1351 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "у додатку правил %s не передбачено підтримки параметрів -k/-K" -#: src/sudo.c:1480 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "помилка під час спроби ініціалізації додатка введення/виведення даних %s" -#: src/sudo.c:1483 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "помилка під час спроби ініціалізації додатка введення/виведення даних" -#: src/sudo.c:1632 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "помилка під час спроби ініціалізації додатка аудиту %s" -#: src/sudo.c:1711 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s: не вдалося записати до журналу подію помилки%s%s" -#: src/sudo.c:1747 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s: не вдалося записати до журналу подію прийняття%s%s" -#: src/sudo.c:1752 src/sudo.c:1790 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "помилка у додатку аудиту" -#: src/sudo.c:1785 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s: не вдалося записати до журналу подію відмови%s%s" -#: src/sudo.c:1845 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "помилка під час спроби ініціалізації додатка підтвердження %s" -#: src/sudo.c:1915 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "у виконанні команди відмовлено засобом підтвердження" @@ -1117,16 +1106,20 @@ msgstr "не вдалося скопіювати тимчасові файли msgid "unable to copy some of the temporary files back to their original location" msgstr "не вдалося скопіювати деякі з тимчасових файлів назад до початкового місця зберігання" -#: src/sudo_edit.c:645 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "не вдалося змінити значення uid на значення root (%u)" -#: src/sudo_edit.c:666 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "помилка додатка: некоректний список файлів для sudoedit" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "помилка додатка: не вистачає списку файлів для sudoedit" -#: src/sudo_edit.c:709 src/sudo_edit.c:723 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "не вдалося прочитати час на годиннику" @@ -1181,6 +1174,12 @@ msgstr "не вдалося виконати dup2 для stdin" msgid "unable to restore stdin" msgstr "не вдалося відновити stdin" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s має належати користувачеві з uid %d" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s має бути доступним до запису лише для власника" + #~ msgid "insufficient space for execve arguments" #~ msgstr "недостатньо місця для аргументів execve" diff --git a/po/zh_CN.mo b/po/zh_CN.mo index 7a1320b1a3..2cccda66d9 100644 Binary files a/po/zh_CN.mo and b/po/zh_CN.mo differ diff --git a/po/zh_CN.po b/po/zh_CN.po index de85106e02..292a325dc5 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: sudo-1.9.10b1\n" +"Project-Id-Version: sudo-1.9.12b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-02-12 09:31-0700\n" -"PO-Revision-Date: 2022-02-13 21:57-0500\n" +"POT-Creation-Date: 2022-10-09 09:48-0600\n" +"PO-Revision-Date: 2022-11-08 15:43-0500\n" "Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 2.4.3\n" +"X-Generator: Poedit 3.2\n" #: lib/util/aix.c:89 lib/util/aix.c:169 msgid "unable to open userdb" @@ -33,75 +33,75 @@ msgid "unable to restore registry" msgstr "无法恢复注册表" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:218 -#: lib/util/sudo_conf.c:304 lib/util/sudo_conf.c:381 lib/util/sudo_conf.c:665 -#: src/conversation.c:80 src/exec_monitor.c:206 src/exec_monitor.c:456 -#: src/exec_monitor.c:462 src/exec_monitor.c:470 src/exec_monitor.c:478 -#: src/exec_monitor.c:485 src/exec_monitor.c:492 src/exec_monitor.c:499 -#: src/exec_monitor.c:506 src/exec_monitor.c:513 src/exec_monitor.c:520 -#: src/exec_monitor.c:527 src/exec_nopty.c:219 src/exec_nopty.c:228 -#: src/exec_nopty.c:235 src/exec_nopty.c:242 src/exec_nopty.c:249 -#: src/exec_nopty.c:256 src/exec_nopty.c:263 src/exec_nopty.c:270 -#: src/exec_nopty.c:277 src/exec_nopty.c:284 src/exec_nopty.c:291 -#: src/exec_nopty.c:298 src/exec_nopty.c:306 src/exec_nopty.c:503 -#: src/exec_preload.c:143 src/exec_preload.c:204 src/exec_pty.c:840 -#: src/exec_pty.c:849 src/exec_pty.c:906 src/exec_pty.c:1059 -#: src/exec_pty.c:1231 src/exec_pty.c:1240 src/exec_pty.c:1247 -#: src/exec_pty.c:1254 src/exec_pty.c:1261 src/exec_pty.c:1268 -#: src/exec_pty.c:1275 src/exec_pty.c:1282 src/exec_pty.c:1289 -#: src/exec_pty.c:1296 src/exec_pty.c:1303 src/exec_pty.c:1311 -#: src/exec_pty.c:1774 src/load_plugins.c:156 src/load_plugins.c:181 -#: src/load_plugins.c:217 src/load_plugins.c:449 src/load_plugins.c:455 -#: src/parse_args.c:192 src/parse_args.c:213 src/parse_args.c:287 -#: src/parse_args.c:632 src/parse_args.c:654 src/parse_args.c:679 -#: src/preserve_fds.c:46 src/preserve_fds.c:131 src/selinux.c:89 -#: src/selinux.c:362 src/selinux.c:474 src/selinux.c:483 src/sesh.c:113 -#: src/sesh.c:146 src/sesh.c:152 src/sesh.c:159 src/sesh.c:165 src/sesh.c:410 -#: src/sudo.c:639 src/sudo.c:709 src/sudo.c:719 src/sudo.c:744 src/sudo.c:767 -#: src/sudo.c:776 src/sudo.c:785 src/sudo.c:802 src/sudo.c:844 src/sudo.c:854 -#: src/sudo.c:883 src/sudo.c:1083 src/sudo.c:1104 src/sudo.c:1397 -#: src/sudo.c:1566 src/sudo.c:1793 src/sudo.c:2127 src/sudo_edit.c:89 -#: src/sudo_edit.c:149 src/sudo_edit.c:429 src/sudo_edit.c:438 -#: src/sudo_edit.c:539 src/sudo_edit.c:546 src/sudo_edit.c:677 -#: src/sudo_edit.c:697 src/sudo_intercept_common.c:113 -#: src/sudo_intercept_common.c:317 +#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:219 +#: lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 lib/util/sudo_conf.c:666 +#: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:458 +#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 +#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 +#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 +#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 +#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 +#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 +#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 +#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 +#: src/exec_nopty.c:732 src/exec_preload.c:341 src/exec_ptrace.c:474 +#: src/exec_ptrace.c:767 src/exec_ptrace.c:982 src/exec_ptrace.c:1094 +#: src/exec_ptrace.c:1269 src/exec_ptrace.c:1611 src/exec_ptrace.c:1638 +#: src/exec_pty.c:506 src/exec_pty.c:687 src/exec_pty.c:873 src/exec_pty.c:882 +#: src/exec_pty.c:889 src/exec_pty.c:896 src/exec_pty.c:903 src/exec_pty.c:910 +#: src/exec_pty.c:917 src/exec_pty.c:924 src/exec_pty.c:931 src/exec_pty.c:938 +#: src/exec_pty.c:945 src/exec_pty.c:953 src/load_plugins.c:157 +#: src/load_plugins.c:182 src/load_plugins.c:218 src/load_plugins.c:451 +#: src/load_plugins.c:457 src/parse_args.c:172 src/parse_args.c:193 +#: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 +#: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 +#: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 +#: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:639 src/sudo.c:704 +#: src/sudo.c:714 src/sudo.c:741 src/sudo.c:764 src/sudo.c:773 src/sudo.c:782 +#: src/sudo.c:799 src/sudo.c:841 src/sudo.c:851 src/sudo.c:884 src/sudo.c:1112 +#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 +#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 +#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s:%s" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 #: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:219 lib/util/sudo_conf.c:304 lib/util/sudo_conf.c:381 -#: lib/util/sudo_conf.c:665 src/conversation.c:81 src/exec_intercept.c:100 -#: src/exec_intercept.c:330 src/exec_intercept.c:354 src/exec_intercept.c:377 -#: src/exec_intercept.c:385 src/exec_intercept.c:410 src/exec_intercept.c:416 -#: src/exec_intercept.c:425 src/exec_intercept.c:431 src/exec_intercept.c:565 -#: src/exec_intercept.c:706 src/exec_monitor.c:456 src/exec_monitor.c:462 -#: src/exec_monitor.c:470 src/exec_monitor.c:478 src/exec_monitor.c:485 -#: src/exec_monitor.c:492 src/exec_monitor.c:499 src/exec_monitor.c:506 -#: src/exec_monitor.c:513 src/exec_monitor.c:520 src/exec_monitor.c:527 -#: src/exec_nopty.c:219 src/exec_nopty.c:228 src/exec_nopty.c:235 -#: src/exec_nopty.c:242 src/exec_nopty.c:249 src/exec_nopty.c:256 -#: src/exec_nopty.c:263 src/exec_nopty.c:270 src/exec_nopty.c:277 -#: src/exec_nopty.c:284 src/exec_nopty.c:291 src/exec_nopty.c:298 -#: src/exec_nopty.c:306 src/exec_preload.c:143 src/exec_preload.c:204 -#: src/exec_pty.c:840 src/exec_pty.c:849 src/exec_pty.c:906 -#: src/exec_pty.c:1231 src/exec_pty.c:1240 src/exec_pty.c:1247 -#: src/exec_pty.c:1254 src/exec_pty.c:1261 src/exec_pty.c:1268 -#: src/exec_pty.c:1275 src/exec_pty.c:1282 src/exec_pty.c:1289 -#: src/exec_pty.c:1296 src/exec_pty.c:1303 src/exec_pty.c:1311 -#: src/exec_pty.c:1774 src/load_plugins.c:156 src/load_plugins.c:181 -#: src/load_plugins.c:217 src/load_plugins.c:449 src/load_plugins.c:455 -#: src/parse_args.c:192 src/parse_args.c:214 src/parse_args.c:287 -#: src/parse_args.c:632 src/parse_args.c:654 src/parse_args.c:679 -#: src/preserve_fds.c:46 src/preserve_fds.c:131 src/selinux.c:89 -#: src/selinux.c:362 src/selinux.c:474 src/selinux.c:483 src/sesh.c:113 -#: src/sesh.c:411 src/sudo.c:230 src/sudo.c:639 src/sudo.c:883 src/sudo.c:1083 -#: src/sudo.c:1104 src/sudo.c:1397 src/sudo.c:1566 src/sudo.c:1793 -#: src/sudo.c:2127 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:539 src/sudo_edit.c:546 -#: src/sudo_edit.c:677 src/sudo_edit.c:697 src/sudo_intercept_common.c:113 -#: src/sudo_intercept_common.c:317 +#: lib/util/sudo_conf.c:220 lib/util/sudo_conf.c:305 lib/util/sudo_conf.c:382 +#: lib/util/sudo_conf.c:666 src/conversation.c:81 src/exec_intercept.c:111 +#: src/exec_intercept.c:344 src/exec_intercept.c:504 src/exec_intercept.c:566 +#: src/exec_intercept.c:682 src/exec_intercept.c:806 src/exec_iolog.c:124 +#: src/exec_iolog.c:135 src/exec_iolog.c:212 src/exec_monitor.c:458 +#: src/exec_monitor.c:464 src/exec_monitor.c:472 src/exec_monitor.c:480 +#: src/exec_monitor.c:487 src/exec_monitor.c:494 src/exec_monitor.c:501 +#: src/exec_monitor.c:508 src/exec_monitor.c:515 src/exec_monitor.c:522 +#: src/exec_monitor.c:529 src/exec_nopty.c:227 src/exec_nopty.c:236 +#: src/exec_nopty.c:243 src/exec_nopty.c:250 src/exec_nopty.c:257 +#: src/exec_nopty.c:264 src/exec_nopty.c:271 src/exec_nopty.c:278 +#: src/exec_nopty.c:285 src/exec_nopty.c:292 src/exec_nopty.c:299 +#: src/exec_nopty.c:306 src/exec_nopty.c:314 src/exec_nopty.c:322 +#: src/exec_preload.c:341 src/exec_ptrace.c:474 src/exec_ptrace.c:767 +#: src/exec_ptrace.c:982 src/exec_ptrace.c:1638 src/exec_pty.c:506 +#: src/exec_pty.c:873 src/exec_pty.c:882 src/exec_pty.c:889 src/exec_pty.c:896 +#: src/exec_pty.c:903 src/exec_pty.c:910 src/exec_pty.c:917 src/exec_pty.c:924 +#: src/exec_pty.c:931 src/exec_pty.c:938 src/exec_pty.c:945 src/exec_pty.c:953 +#: src/load_plugins.c:157 src/load_plugins.c:182 src/load_plugins.c:218 +#: src/load_plugins.c:451 src/load_plugins.c:457 src/parse_args.c:172 +#: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 +#: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 +#: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 +#: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 +#: src/sudo.c:230 src/sudo.c:639 src/sudo.c:884 src/sudo.c:1112 +#: src/sudo.c:1133 src/sudo.c:1426 src/sudo.c:1595 src/sudo.c:1822 +#: src/sudo.c:2156 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 +#: src/sudo_edit.c:673 src/sudo_edit.c:693 src/sudo_intercept_common.c:115 +#: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "无法分配内存" @@ -115,23 +115,23 @@ msgstr "无法 stat %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s 存在但不是目录(0%o)" -#: lib/util/mkdir_parents.c:102 lib/util/sudo_conf.c:704 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:559 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:677 +#: lib/util/sudo_conf.c:689 lib/util/sudo_conf.c:715 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "无法打开 %s" -#: lib/util/mkdir_parents.c:119 lib/util/mkdir_parents.c:127 -#: lib/util/mkdir_parents.c:136 -#, c-format -msgid "unable to open %.*s" -msgstr "无法打开 %.*s" - -#: lib/util/mkdir_parents.c:157 +#: lib/util/mkdir_parents.c:120 lib/util/mkdir_parents.c:160 #, c-format msgid "unable to mkdir %.*s" msgstr "无法创建目录 %.*s" +#: lib/util/mkdir_parents.c:130 lib/util/mkdir_parents.c:139 +#, c-format +msgid "unable to open %.*s" +msgstr "无法打开 %.*s" + #: lib/util/regex.c:103 msgid "regular expression too large" msgstr "正则表达式太大" @@ -140,8 +140,8 @@ msgstr "正则表达式太大" msgid "Unknown signal" msgstr "未知信号" -#: lib/util/strtoid.c:87 lib/util/strtomode.c:52 lib/util/strtonum.c:148 -#: lib/util/strtonum.c:187 src/sesh.c:146 src/sesh.c:159 +#: lib/util/strtoid.c:84 lib/util/strtomode.c:52 lib/util/strtonum.c:148 +#: lib/util/strtonum.c:187 src/sesh.c:240 src/sesh.c:253 msgid "invalid value" msgstr "值无效" @@ -153,77 +153,86 @@ msgstr "值过大" msgid "value too small" msgstr "值过小" -#: lib/util/sudo_conf.c:237 +#: lib/util/sudo_conf.c:238 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "%2$s 第 %3$u 行的路径值“%1$s”无效" -#: lib/util/sudo_conf.c:403 lib/util/sudo_conf.c:419 lib/util/sudo_conf.c:472 +#: lib/util/sudo_conf.c:404 lib/util/sudo_conf.c:420 lib/util/sudo_conf.c:473 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "%3$s 第 %4$u 行的 %1$s 的值“%2$s”无效" -#: lib/util/sudo_conf.c:440 +#: lib/util/sudo_conf.c:441 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "不支持 %2$s 第 %3$u 行的组来源“%1$s”" -#: lib/util/sudo_conf.c:456 +#: lib/util/sudo_conf.c:457 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "%2$s 第 %3$u 行的最大组数“%1$s”无效" -#: lib/util/sudo_conf.c:681 src/copy_file.c:150 -#, c-format -msgid "unable to stat %s" -msgstr "无法 stat %s" - -#: lib/util/sudo_conf.c:684 +#: lib/util/sudo_conf.c:692 #, c-format msgid "%s is not a regular file" msgstr "%s 不是常规文件" -#: lib/util/sudo_conf.c:687 src/copy_file.c:163 +#: lib/util/sudo_conf.c:695 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s 属于用户 ID %u,应为 %u" -#: lib/util/sudo_conf.c:691 +#: lib/util/sudo_conf.c:699 #, c-format msgid "%s is world writable" msgstr "%s 可被任何人写" -#: lib/util/sudo_conf.c:694 +#: lib/util/sudo_conf.c:702 #, c-format msgid "%s is group writable" msgstr "%s 可被用户组写" -#: src/copy_file.c:93 +#: src/apparmor.c:85 +msgid "failed to determine AppArmor confinement" +msgstr "无法确定 AppArmor 限制。" + +#: src/apparmor.c:93 +#, c-format +msgid "unable to change AppArmor profile to %s" +msgstr "无法将 AppArmor 配置文件更改为 %s" + +#: src/copy_file.c:94 #, c-format msgid "%s: truncate %s to zero bytes? (y/n) [n] " msgstr "%s:截断 %s 至零字节? (y/n) [n] " -#: src/copy_file.c:97 +#: src/copy_file.c:98 #, c-format msgid "not overwriting %s" msgstr "不覆盖 %s" -#: src/copy_file.c:119 +#: src/copy_file.c:120 #, c-format msgid "unable to read from %s" msgstr "无法读取 %s" -#: src/copy_file.c:136 src/sudo_edit.c:320 +#: src/copy_file.c:137 src/sudo_edit.c:320 #, c-format msgid "unable to write to %s" msgstr "无法写入 %s" -#: src/copy_file.c:154 src/sesh.c:218 src/sudo_edit.c:197 +#: src/copy_file.c:151 +#, c-format +msgid "unable to stat %s" +msgstr "无法 stat %s" + +#: src/copy_file.c:155 src/sesh.c:312 src/sudo_edit.c:197 #, c-format msgid "%s: not a regular file" msgstr "%s:不是常规文件" -#: src/copy_file.c:158 +#: src/copy_file.c:159 #, c-format msgid "%s: bad file mode: 0%o" msgstr "%s:不正确的文件模式:0%o" @@ -232,99 +241,144 @@ msgstr "%s:不正确的文件模式:0%o" msgid "unable to restore current working directory" msgstr "无法恢复当前工作目录" -#: src/exec.c:130 +#: src/exec.c:111 +msgid "unable to set privileges" +msgstr "无法设置特权" + +#: src/exec.c:117 src/exec.c:122 +msgid "unable to set limit privileges" +msgstr "无法设置限制特权" + +#: src/exec.c:145 #, c-format msgid "unknown login class %s" msgstr "未知的登录类别 %s" -#: src/exec.c:142 +#: src/exec.c:157 msgid "unable to set user context" msgstr "无法设置用户环境" -#: src/exec.c:158 +#: src/exec.c:173 msgid "unable to set process priority" msgstr "无法设置进程优先级" -#: src/exec.c:175 +#: src/exec.c:190 #, c-format msgid "unable to change root to %s" msgstr "无法从 root 切换到 %s" -#: src/exec.c:188 src/exec.c:194 src/exec.c:201 +#: src/exec.c:203 src/exec.c:209 src/exec.c:216 #, c-format msgid "unable to change to runas uid (%u, %u)" msgstr "无法切换到以用户 ID(%u,%u)运行" -#: src/exec.c:219 +#: src/exec.c:238 src/sesh.c:199 #, c-format msgid "unable to change directory to %s" msgstr "无法将目录切换到 %s" -#: src/exec.c:223 +#: src/exec.c:243 #, c-format msgid "starting from %s" msgstr "起始于 %s" -#: src/exec.c:305 src/exec_monitor.c:565 src/exec_monitor.c:567 -#: src/exec_nopty.c:561 src/exec_pty.c:581 src/exec_pty.c:1411 -#: src/exec_pty.c:1413 src/signal.c:144 src/signal.c:151 src/signal.c:165 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:567 src/exec_monitor.c:569 +#: src/exec_pty.c:225 src/exec_pty.c:1017 src/exec_pty.c:1019 src/signal.c:144 +#: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" msgstr "无法设置 %d 信号的处理程序" +#: src/exec.c:422 +msgid "intercept mode is not supported with SELinux RBAC on this system" +msgstr "本系统上的 SELinux RBAC 不支持拦截模式" + +#: src/exec.c:427 +msgid "unable to log sub-commands with SELinux RBAC on this system" +msgstr "本系统上的 SELinux RBAC 无法记录子命令" + #: src/exec_common.c:56 msgid "unable to remove PRIV_PROC_EXEC from PRIV_LIMIT" msgstr "无法从 PRIV_LIMIT 中移除 PRIV_PROC_EXEC" -#: src/exec_intercept.c:112 src/exec_intercept.c:116 src/exec_intercept.c:667 -#: src/exec_intercept.c:671 src/exec_intercept.c:857 src/exec_intercept.c:861 -#: src/exec_intercept.c:872 src/exec_intercept.c:876 src/exec_monitor.c:464 -#: src/exec_monitor.c:472 src/exec_monitor.c:480 src/exec_monitor.c:487 -#: src/exec_monitor.c:494 src/exec_monitor.c:501 src/exec_monitor.c:508 -#: src/exec_monitor.c:515 src/exec_monitor.c:522 src/exec_monitor.c:529 -#: src/exec_nopty.c:221 src/exec_nopty.c:230 src/exec_nopty.c:237 -#: src/exec_nopty.c:244 src/exec_nopty.c:251 src/exec_nopty.c:258 -#: src/exec_nopty.c:265 src/exec_nopty.c:272 src/exec_nopty.c:279 -#: src/exec_nopty.c:286 src/exec_nopty.c:293 src/exec_nopty.c:300 -#: src/exec_nopty.c:308 src/exec_pty.c:706 src/exec_pty.c:711 -#: src/exec_pty.c:808 src/exec_pty.c:815 src/exec_pty.c:912 -#: src/exec_pty.c:1233 src/exec_pty.c:1242 src/exec_pty.c:1249 -#: src/exec_pty.c:1256 src/exec_pty.c:1263 src/exec_pty.c:1270 -#: src/exec_pty.c:1277 src/exec_pty.c:1284 src/exec_pty.c:1291 -#: src/exec_pty.c:1298 src/exec_pty.c:1305 src/exec_pty.c:1727 -#: src/exec_pty.c:1737 src/exec_pty.c:1782 src/exec_pty.c:1789 -#: src/exec_pty.c:1816 +#: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 +#: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:229 src/exec_nopty.c:238 +#: src/exec_nopty.c:245 src/exec_nopty.c:252 src/exec_nopty.c:259 +#: src/exec_nopty.c:266 src/exec_nopty.c:273 src/exec_nopty.c:280 +#: src/exec_nopty.c:287 src/exec_nopty.c:294 src/exec_nopty.c:301 +#: src/exec_nopty.c:308 src/exec_nopty.c:316 src/exec_nopty.c:324 +#: src/exec_nopty.c:383 src/exec_nopty.c:449 src/exec_pty.c:355 +#: src/exec_pty.c:457 src/exec_pty.c:512 src/exec_pty.c:875 src/exec_pty.c:884 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 msgid "unable to add event to queue" msgstr "无法将事件添加到队列" -#: src/exec_intercept.c:314 -msgid "invalid PolicyCheckRequest" -msgstr "无效的 PolicyCheckRequest" +#: src/exec_intercept.c:317 src/sudo.c:1018 +msgid "command not set by the security policy" +msgstr "命令因安全策略未设置" -#: src/exec_intercept.c:362 src/sudo.c:1209 src/sudo.c:1254 src/sudo.c:1298 +#: src/exec_intercept.c:393 src/exec_intercept.c:421 src/sudo.c:1238 +#: src/sudo.c:1283 src/sudo.c:1327 msgid "command rejected by policy" msgstr "命令被策略拒绝" -#: src/exec_intercept.c:455 src/sudo.c:1214 src/sudo.c:1259 src/sudo.c:1303 -#: src/sudo.c:1377 +#: src/exec_intercept.c:491 src/sudo.c:1925 +msgid "approval plugin error" +msgstr "批准插件出错" + +#: src/exec_intercept.c:508 src/sudo.c:1243 src/sudo.c:1288 src/sudo.c:1332 +#: src/sudo.c:1406 msgid "policy plugin error" msgstr "策略插件错误" -#: src/exec_intercept.c:561 +#: src/exec_intercept.c:543 +msgid "invalid PolicyCheckRequest" +msgstr "无效的 PolicyCheckRequest" + +#: src/exec_intercept.c:678 #, c-format msgid "client request too large: %zu" msgstr "客户端请求过大:%zu" -#: src/exec_intercept.c:659 +#: src/exec_intercept.c:720 +#, c-format +msgid "unable to unpack %s size %zu" +msgstr "无法解包 %s(大小 %zu)" + +#: src/exec_intercept.c:768 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "未预期的 type_case 值 %d,位于 %s,来自 %s" -#: src/exec_intercept.c:694 +#: src/exec_intercept.c:794 #, c-format msgid "server message too large: %zu" msgstr "服务器消息过大:%zu" +#: src/exec_iolog.c:323 src/exec_iolog.c:363 src/exec_iolog.c:403 +#: src/exec_iolog.c:454 src/exec_iolog.c:505 +msgid "I/O plugin error" +msgstr "I/O 插件错误" + +#: src/exec_iolog.c:327 src/exec_iolog.c:367 src/exec_iolog.c:407 +#: src/exec_iolog.c:458 src/exec_iolog.c:509 +msgid "command rejected by I/O plugin" +msgstr "命令被 I/O 插件拒绝" + +#: src/exec_iolog.c:556 +msgid "error logging suspend" +msgstr "记录挂起事件时出错" + +#: src/exec_iolog.c:591 +msgid "error changing window size" +msgstr "变更窗口大小出错" + #: src/exec_monitor.c:360 msgid "error reading from socketpair" msgstr "从套接字对读取出错" @@ -334,180 +388,213 @@ msgstr "从套接字对读取出错" msgid "unexpected reply type on backchannel: %d" msgstr "联络通道的回应类型异常:%d" -#: src/exec_monitor.c:583 +#: src/exec_monitor.c:585 msgid "unable to set controlling tty" msgstr "无法设置控制终端" -#: src/exec_monitor.c:591 src/exec_nopty.c:369 src/exec_pty.c:1490 -#: src/exec_pty.c:1511 src/exec_pty.c:1531 src/tgetpass.c:307 +#: src/exec_monitor.c:593 src/exec_nopty.c:494 src/exec_nopty.c:504 +#: src/exec_nopty.c:514 src/exec_nopty.c:548 src/exec_pty.c:1088 +#: src/exec_pty.c:1109 src/exec_pty.c:1129 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "无法创建管道" -#: src/exec_monitor.c:601 +#: src/exec_monitor.c:603 msgid "unable to receive message from parent" -msgstr "无法从父(进程)接收消息" +msgstr "无法从父(进程)接收消息" -#: src/exec_monitor.c:617 src/exec_nopty.c:407 src/exec_pty.c:1569 -#: src/sudo_edit.c:361 src/tgetpass.c:311 +#: src/exec_monitor.c:619 src/exec_nopty.c:591 src/exec_pty.c:1167 +#: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "无法执行 fork" -#: src/exec_monitor.c:621 src/exec_monitor.c:722 src/exec_nopty.c:471 +#: src/exec_monitor.c:623 src/exec_monitor.c:721 src/exec_nopty.c:696 msgid "unable to restore tty label" msgstr "无法恢复终端标签" -#: src/exec_monitor.c:637 src/sesh.c:123 src/sudo.c:1160 +#: src/exec_monitor.c:636 src/sesh.c:217 src/sudo.c:1189 #, c-format msgid "unable to execute %s" msgstr "无法执行 %s" -#: src/exec_nopty.c:363 src/exec_pty.c:1420 +#: src/exec_nopty.c:542 src/exec_pty.c:1026 msgid "policy plugin failed session initialization" msgstr "策略插件会话初始化失败" -#: src/exec_nopty.c:377 src/exec_pty.c:1391 src/exec_pty.c:1399 +#: src/exec_nopty.c:557 src/exec_pty.c:995 src/exec_pty.c:1004 msgid "unable to create sockets" msgstr "无法创建套接字" -#: src/exec_nopty.c:459 src/exec_pty.c:1666 +#: src/exec_nopty.c:684 src/exec_pty.c:1265 msgid "error in event loop" msgstr "事件循环中有错误" -#: src/exec_nopty.c:569 src/exec_pty.c:619 src/signal.c:101 +#: src/exec_preload.c:165 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:486 +#: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format -msgid "unable to restore handler for signal %d" -msgstr "无法恢复 %d 信号的处理程序" +msgid "internal error, %s overflow" +msgstr "内部错误,%s 溢出" -#: src/exec_pty.c:158 -msgid "unable to allocate pty" -msgstr "无法分配伪终端" +#: src/exec_ptrace.c:1078 src/exec_ptrace.c:1103 src/exec_ptrace.c:1909 +#, c-format +msgid "unable to set registers for process %d" +msgstr "无法设置进程 %d 的寄存器" -#: src/exec_pty.c:222 src/exec_pty.c:262 src/exec_pty.c:302 src/exec_pty.c:353 -#: src/exec_pty.c:404 -msgid "I/O plugin error" -msgstr "I/O 插件错误" +#: src/exec_ptrace.c:1098 src/exec_ptrace.c:1273 src/exec_ptrace.c:1615 +#, c-format +msgid "process %d exited unexpectedly" +msgstr "进程 %d 未预期地退出" -#: src/exec_pty.c:226 src/exec_pty.c:266 src/exec_pty.c:306 src/exec_pty.c:357 -#: src/exec_pty.c:408 -msgid "command rejected by I/O plugin" -msgstr "命令被 I/O 插件拒绝" +#: src/exec_ptrace.c:1207 +msgid "unable to set seccomp filter" +msgstr "无法设置 seccomp 过滤器" -#: src/exec_pty.c:455 -msgid "error logging suspend" -msgstr "记录挂起事件时出错" +#: src/exec_ptrace.c:1404 +#, c-format +msgid "interpreter argument , expected \"%s\", got \"%s\"" +msgstr "解释器参数,期望为“%s”,得到了“%s”" -#: src/exec_pty.c:489 -msgid "error changing window size" -msgstr "变更窗口大小出错" +#: src/exec_ptrace.c:1503 +#, c-format +msgid "pathname mismatch, expected \"%s\", got \"%s\"" +msgstr "路径名不匹配,期望为“%s”,得到了“%s”" + +#: src/exec_ptrace.c:1512 src/exec_ptrace.c:1519 src/exec_ptrace.c:1532 +#: src/exec_ptrace.c:1540 src/exec_ptrace.c:1546 src/exec_ptrace.c:1552 +#, c-format +msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" +msgstr "%s[%d] 不匹配,期望为“%s”,得到了“%s”" + +#: src/exec_ptrace.c:1619 +#, c-format +msgid "process %d unexpected status 0x%x" +msgstr "进程 %d 未预期的状态 0x%x" + +#: src/exec_ptrace.c:1711 +#, c-format +msgid "unable to get event message for process %d" +msgstr "无法获取进程 %d 的事件消息" + +#: src/exec_ptrace.c:1718 +#, c-format +msgid "unable to get registers for process %d" +msgstr "无法获取进程 %d 的寄存器" -#: src/exec_pty.c:1615 +#: src/exec_pty.c:103 +msgid "unable to allocate pty" +msgstr "无法分配伪终端" + +#: src/exec_pty.c:263 src/signal.c:101 src/suspend_nopty.c:99 +#, c-format +msgid "unable to restore handler for signal %d" +msgstr "无法恢复 %d 信号的处理程序" + +#: src/exec_pty.c:1213 msgid "unable to send message to monitor process" msgstr "无法向监视进程发送消息" -#: src/load_plugins.c:108 src/load_plugins.c:122 src/load_plugins.c:128 -#: src/load_plugins.c:277 src/load_plugins.c:287 src/load_plugins.c:297 -#: src/load_plugins.c:344 +#: src/load_plugins.c:109 src/load_plugins.c:123 src/load_plugins.c:129 +#: src/load_plugins.c:279 src/load_plugins.c:289 src/load_plugins.c:299 +#: src/load_plugins.c:346 #, c-format msgid "error in %s, line %d while loading plugin \"%s\"" msgstr "在加载插件“%3$s”时在 %1$s 第 %2$d 行出错" -#: src/load_plugins.c:124 +#: src/load_plugins.c:125 #, c-format msgid "%s must be owned by uid %d" msgstr "%s 必须属于用户 ID %d(的用户)" -#: src/load_plugins.c:130 +#: src/load_plugins.c:131 #, c-format msgid "%s must be only be writable by owner" msgstr "%s 必须只对其所有者可写" -#: src/load_plugins.c:241 src/load_plugins.c:312 +#: src/load_plugins.c:243 src/load_plugins.c:314 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "忽略位于 %2$s 第 %3$d 行的重复插件“%1$s”" -#: src/load_plugins.c:279 +#: src/load_plugins.c:281 #, c-format msgid "unable to load %s: %s" msgstr "无法加载 %s:%s" -#: src/load_plugins.c:289 +#: src/load_plugins.c:291 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "在 %2$s 中找不到符号“%1$s”" -#: src/load_plugins.c:299 +#: src/load_plugins.c:301 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "%3$s 中发现不兼容的插件主版本号 %1$d(应为 %2$d)" -#: src/load_plugins.c:317 +#: src/load_plugins.c:319 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "忽略位于 %2$s 第 %3$d 行的策略插件“%1$s”" -#: src/load_plugins.c:320 +#: src/load_plugins.c:322 msgid "only a single policy plugin may be specified" msgstr "只能指定一个策略插件" -#: src/load_plugins.c:346 +#: src/load_plugins.c:348 #, c-format msgid "unknown plugin type %d found in %s" msgstr "未知的插件类型 %d,在 %s" -#: src/load_plugins.c:529 +#: src/load_plugins.c:531 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "策略插件 %s 不包含 check_policy 方法" -#: src/net_ifs.c:210 src/net_ifs.c:376 src/net_ifs.c:437 src/net_ifs.c:624 -#: src/net_ifs.c:855 src/sudo.c:486 src/sudo_edit.c:398 src/sudo_edit.c:406 -#, c-format -msgid "internal error, %s overflow" -msgstr "内部错误,%s 溢出" - -#: src/parse_args.c:234 +#: src/parse_args.c:214 #, c-format msgid "invalid environment variable name: %s" msgstr "无效的环境变量名:%s" -#: src/parse_args.c:337 +#: src/parse_args.c:317 msgid "the argument to -C must be a number greater than or equal to 3" msgstr "-C 选项的参数必须是一个大于等于 3 的数字" -#: src/parse_args.c:568 +#: src/parse_args.c:554 msgid "you may not specify both the -i and -s options" msgstr "您不能同时指定 -i 和 -s 选项" -#: src/parse_args.c:573 +#: src/parse_args.c:559 msgid "you may not specify both the -i and -E options" msgstr "您不能同时指定 -i 和 -E 选项" -#: src/parse_args.c:583 +#: src/parse_args.c:569 msgid "the -E option is not valid in edit mode" msgstr "-E 选项在编辑模式中无效" -#: src/parse_args.c:586 +#: src/parse_args.c:572 msgid "you may not specify environment variables in edit mode" msgstr "在编辑模式中您不能指定环境变量" -#: src/parse_args.c:596 +#: src/parse_args.c:582 msgid "the -U option may only be used with the -l option" msgstr "-U 选项只能与 -l 选项一起使用" -#: src/parse_args.c:600 +#: src/parse_args.c:586 msgid "the -A and -S options may not be used together" msgstr "-A 和 -S 选项不可同时使用" -#: src/parse_args.c:693 +#: src/parse_args.c:684 msgid "sudoedit is not supported on this platform" msgstr "此平台不支持 sudoedit" -#: src/parse_args.c:776 +#: src/parse_args.c:767 msgid "Only one of the -e, -h, -i, -K, -l, -s, -v or -V options may be specified" msgstr "只能指定 -e、-h、-i、-K、-l、-s、-v 或 -V 选项中的一个" -#: src/parse_args.c:792 +#: src/parse_args.c:780 +msgid "Only one of the -K, -k or -N options may be specified" +msgstr "只能指定 -K, -k 或 -N 选项中的一个" + +#: src/parse_args.c:796 #, c-format msgid "" "%s - edit files as another user\n" @@ -516,7 +603,7 @@ msgstr "" "%s - 以其他用户身份编辑文件\n" "\n" -#: src/parse_args.c:794 +#: src/parse_args.c:798 #, c-format msgid "" "%s - execute a command as another user\n" @@ -525,7 +612,7 @@ msgstr "" "%s - 以其他用户身份执行一条命令\n" "\n" -#: src/parse_args.c:800 +#: src/parse_args.c:804 msgid "" "\n" "Options:\n" @@ -533,131 +620,131 @@ msgstr "" "\n" "选项:\n" -#: src/parse_args.c:802 +#: src/parse_args.c:806 msgid "use a helper program for password prompting" msgstr "使用助手程序进行密码提示" -#: src/parse_args.c:805 +#: src/parse_args.c:809 msgid "use specified BSD authentication type" msgstr "使用指定的 BSD 认证类型" -#: src/parse_args.c:809 +#: src/parse_args.c:813 msgid "run command in the background" msgstr "在后台运行命令" -#: src/parse_args.c:812 +#: src/parse_args.c:816 msgid "ring bell when prompting" msgstr "提示时响铃" -#: src/parse_args.c:814 +#: src/parse_args.c:818 msgid "close all file descriptors >= num" msgstr "关闭所有 >= num 的文件描述符" -#: src/parse_args.c:817 +#: src/parse_args.c:821 msgid "run command with the specified BSD login class" msgstr "以指定的 BSD 登录类别运行命令" -#: src/parse_args.c:820 +#: src/parse_args.c:824 msgid "change the working directory before running command" msgstr "运行命令前改变工作目录" -#: src/parse_args.c:823 +#: src/parse_args.c:827 msgid "preserve user environment when running command" msgstr "在执行命令时保留用户环境" -#: src/parse_args.c:825 +#: src/parse_args.c:829 msgid "preserve specific environment variables" msgstr "保留特定的环境变量" -#: src/parse_args.c:827 +#: src/parse_args.c:831 msgid "edit files instead of running a command" msgstr "编辑文件而非执行命令" -#: src/parse_args.c:830 +#: src/parse_args.c:834 msgid "run command as the specified group name or ID" msgstr "以指定的用户组或 ID 执行命令" -#: src/parse_args.c:833 +#: src/parse_args.c:837 msgid "set HOME variable to target user's home dir" msgstr "将 HOME 变量设为目标用户的主目录" -#: src/parse_args.c:836 +#: src/parse_args.c:840 msgid "display help message and exit" msgstr "显示帮助消息并退出" -#: src/parse_args.c:838 +#: src/parse_args.c:842 msgid "run command on host (if supported by plugin)" msgstr "在主机上运行命令(如果插件支持)" -#: src/parse_args.c:841 +#: src/parse_args.c:845 msgid "run login shell as the target user; a command may also be specified" msgstr "以目标用户身份运行一个登录 shell;可同时指定一条命令" -#: src/parse_args.c:843 +#: src/parse_args.c:847 msgid "remove timestamp file completely" msgstr "完全移除时间戳文件" -#: src/parse_args.c:846 +#: src/parse_args.c:850 msgid "invalidate timestamp file" msgstr "无效的时间戳文件" -#: src/parse_args.c:849 +#: src/parse_args.c:853 msgid "list user's privileges or check a specific command; use twice for longer format" msgstr "列出用户权限或检查某个特定命令;对于长格式,使用两次" -#: src/parse_args.c:852 +#: src/parse_args.c:856 msgid "non-interactive mode, no prompts are used" msgstr "非交互模式,不提示" -#: src/parse_args.c:855 +#: src/parse_args.c:859 msgid "preserve group vector instead of setting to target's" msgstr "保留组向量,而非设置为目标的组向量" -#: src/parse_args.c:858 +#: src/parse_args.c:862 msgid "use the specified password prompt" msgstr "使用指定的密码提示" -#: src/parse_args.c:860 +#: src/parse_args.c:864 msgid "change the root directory before running command" msgstr "运行命令前改变根目录" -#: src/parse_args.c:863 +#: src/parse_args.c:867 msgid "create SELinux security context with specified role" msgstr "以指定的角色创建 SELinux 安全环境" -#: src/parse_args.c:866 +#: src/parse_args.c:870 msgid "read password from standard input" msgstr "从标准输入读取密码" -#: src/parse_args.c:869 +#: src/parse_args.c:873 msgid "run shell as the target user; a command may also be specified" msgstr "以目标用户运行 shell;可同时指定一条命令" -#: src/parse_args.c:873 +#: src/parse_args.c:877 msgid "create SELinux security context with specified type" msgstr "以指定的类型创建 SELinux 安全环境" -#: src/parse_args.c:876 +#: src/parse_args.c:880 msgid "terminate command after the specified time limit" msgstr "在达到指定时间限制后终止命令" -#: src/parse_args.c:879 +#: src/parse_args.c:883 msgid "in list mode, display privileges for user" msgstr "在列表模式中显示用户的权限" -#: src/parse_args.c:882 +#: src/parse_args.c:886 msgid "run command (or edit file) as specified user name or ID" msgstr "以指定用户或 ID 运行命令(或编辑文件)" -#: src/parse_args.c:884 +#: src/parse_args.c:888 msgid "display version information and exit" msgstr "显示版本信息并退出" -#: src/parse_args.c:887 +#: src/parse_args.c:891 msgid "update user's timestamp without running a command" msgstr "更新用户的时间戳而不执行命令" -#: src/parse_args.c:890 +#: src/parse_args.c:894 msgid "stop processing command line arguments" msgstr "停止处理命令行参数" @@ -757,37 +844,42 @@ msgstr "无法向 %s 设置 exec 环境" msgid "unable to set key creation context to %s" msgstr "无法向 %s 设置键创建环境" -#: src/sesh.c:72 -msgid "requires at least one argument" -msgstr "要求至少有一个参数" +#: src/sesh.c:114 src/sesh.c:134 +msgid "Only one of the -c or -i options may be specified" +msgstr "只能指定 -c 或 -i 选项中的一个" -#: src/sesh.c:104 +#: src/sesh.c:129 #, c-format msgid "invalid file descriptor number: %s" msgstr "无效的文件描述符数字:%s" -#: src/sesh.c:118 +#: src/sesh.c:167 src/sesh.c:171 src/sesh.c:175 #, c-format -msgid "unable to run %s as a login shell" -msgstr "无法以登录 shell 执行 %s" +msgid "The -%c option may not be used in edit mode." +msgstr "-%c 选项在编辑模式中不可用。" -#: src/sesh.c:200 src/sesh.c:300 src/sudo_edit.c:204 +#: src/sesh.c:184 src/sesh.c:189 +#, c-format +msgid "The -%c option may only be used in edit mode." +msgstr "-%c 选项只能在编辑模式中使用。" + +#: src/sesh.c:294 src/sesh.c:394 src/sudo_edit.c:204 #, c-format msgid "%s: editing symbolic links is not permitted" msgstr "%s:不允许编辑符号链接" -#: src/sesh.c:203 src/sesh.c:303 src/sudo_edit.c:207 +#: src/sesh.c:297 src/sesh.c:397 src/sudo_edit.c:207 #, c-format msgid "%s: editing files in a writable directory is not permitted" msgstr "%s:不允许编辑可写目录中的文件" -#: src/sesh.c:287 src/sesh.c:308 src/sesh.c:317 src/sesh.c:325 +#: src/sesh.c:381 src/sesh.c:402 src/sesh.c:411 src/sesh.c:419 #: src/sudo_edit.c:331 #, c-format msgid "contents of edit session left in %s" msgstr "编辑会话的内容留在了 %s 中" -#: src/sesh.c:416 src/sudo_edit.c:94 +#: src/sesh.c:476 src/sudo_edit.c:94 msgid "unable to get group list" msgstr "无法获取组列表" @@ -871,118 +963,122 @@ msgstr "%s 数据库中没有您" msgid "unable to determine tty" msgstr "无法确定终端" -#: src/sudo.c:908 +#: src/sudo.c:918 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "已设置“no new privileges”标志,它阻止 sudo 以 root 身份运行。" -#: src/sudo.c:910 +#: src/sudo.c:920 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "如果 sudo 正在容器中运行,您可能需要调整容器配置以禁用该标志。" -#: src/sudo.c:944 +#: src/sudo.c:954 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s 必须属于用户 ID %d(的用户)并且设置 setuid 位" -#: src/sudo.c:947 +#: src/sudo.c:957 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "有效用户 ID 不是 %d,%s 位于一个设置了“nosuid”选项的文件系统或没有 root 权限的 NFS 文件系统中吗?" -#: src/sudo.c:953 +#: src/sudo.c:963 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "有效用户 ID 不是 %d,sudo 属于 root 并设置了 setuid 位吗?" -#: src/sudo.c:969 src/tgetpass.c:333 +#: src/sudo.c:979 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "无法设置补充组 ID" -#: src/sudo.c:976 +#: src/sudo.c:986 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "无法设置有效组 ID 来以组 ID %u 运行" -#: src/sudo.c:982 +#: src/sudo.c:992 #, c-format msgid "unable to set gid to runas gid %u" msgstr "无法设置组 ID 来以组 ID %u 运行" -#: src/sudo.c:1025 +#: src/sudo.c:1022 +msgid "argv not set by the security policy" +msgstr "因安全策略,argv 未设置" + +#: src/sudo.c:1026 +msgid "envp not set by the security policy" +msgstr "因安全策略,envp 未设置" + +#: src/sudo.c:1048 #, c-format msgid "unexpected child termination condition: %d" msgstr "异常的子进程终止条件:%d" -#: src/sudo.c:1132 +#: src/sudo.c:1161 msgid "unable to initialize policy plugin" msgstr "无法初始化策略插件" -#: src/sudo.c:1194 +#: src/sudo.c:1223 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "check_policy 方法中缺少策略插件 %s" -#: src/sudo.c:1240 +#: src/sudo.c:1269 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "策略插件 %s 不支持列出权限" -#: src/sudo.c:1284 +#: src/sudo.c:1313 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "策略插件 %s不支持 -v 选项" -#: src/sudo.c:1322 +#: src/sudo.c:1351 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "策略插件 %s 不支持 -k/-K 选项" -#: src/sudo.c:1451 +#: src/sudo.c:1480 #, c-format msgid "error initializing I/O plugin %s" msgstr "初始化 I/O 插件 %s 出错" -#: src/sudo.c:1454 +#: src/sudo.c:1483 msgid "error initializing I/O plugin" msgstr "初始化 I/O 插件出错" -#: src/sudo.c:1603 +#: src/sudo.c:1632 #, c-format msgid "error initializing audit plugin %s" msgstr "初始化审计插件 %s 出错" -#: src/sudo.c:1682 +#: src/sudo.c:1711 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s:无法记录错误事件%s%s" -#: src/sudo.c:1718 +#: src/sudo.c:1747 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s:无法记录接受事件%s%s" -#: src/sudo.c:1723 src/sudo.c:1761 +#: src/sudo.c:1752 src/sudo.c:1790 msgid "audit plugin error" msgstr "审计插件错误" -#: src/sudo.c:1756 +#: src/sudo.c:1785 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s:无法记录拒绝事件%s%s" -#: src/sudo.c:1816 +#: src/sudo.c:1845 #, c-format msgid "error initializing approval plugin %s" msgstr "初始化批准插件 %s 出错" -#: src/sudo.c:1886 +#: src/sudo.c:1915 msgid "command rejected by approver" msgstr "命令被批准者拒绝" -#: src/sudo.c:1896 -msgid "approval plugin error" -msgstr "批准插件出错" - #: src/sudo_edit.c:113 msgid "no writable temporary directory found" msgstr "未找到可写的临时目录" @@ -992,7 +1088,7 @@ msgstr "未找到可写的临时目录" msgid "%s left unmodified" msgstr "%s 并未修改" -#: src/sudo_edit.c:304 src/sudo_edit.c:571 +#: src/sudo_edit.c:304 src/sudo_edit.c:569 #, c-format msgid "%s unchanged" msgstr "%s 未更改" @@ -1005,37 +1101,37 @@ msgstr "sesh:内部错误:路径数量异常" msgid "sesh: unable to create temporary files" msgstr "sesh:无法创建临时文件" -#: src/sudo_edit.c:485 src/sudo_edit.c:609 +#: src/sudo_edit.c:485 src/sudo_edit.c:604 msgid "sesh: killed by a signal" msgstr "sesh:被信号杀死" -#: src/sudo_edit.c:487 src/sudo_edit.c:612 +#: src/sudo_edit.c:487 src/sudo_edit.c:607 #, c-format msgid "sesh: unknown error %d" msgstr "sesh:未知错误 %d" -#: src/sudo_edit.c:602 +#: src/sudo_edit.c:597 msgid "unable to copy temporary files back to their original location" msgstr "无法将临时文件复制回其原位置" -#: src/sudo_edit.c:606 +#: src/sudo_edit.c:601 msgid "unable to copy some of the temporary files back to their original location" msgstr "无法将某些临时文件复制回其原位置" -#: src/sudo_edit.c:649 +#: src/sudo_edit.c:645 #, c-format msgid "unable to change uid to root (%u)" msgstr "无法将用户 ID 切换到 root(%u)" -#: src/sudo_edit.c:670 +#: src/sudo_edit.c:666 msgid "plugin error: missing file list for sudoedit" msgstr "插件错误:缺少 sudoedit 的文件列表" -#: src/sudo_edit.c:713 src/sudo_edit.c:727 +#: src/sudo_edit.c:709 src/sudo_edit.c:723 msgid "unable to read the clock" msgstr "无法读取时钟" -#: src/sudo_intercept_common.c:341 +#: src/sudo_intercept_common.c:365 msgid "intercept port not set" msgstr "未设置侦听端口" @@ -1059,17 +1155,17 @@ msgstr "读取密码需要一个终端;请使用 -S 选项以从标准输入 msgid "no askpass program specified, try setting SUDO_ASKPASS" msgstr "没有指定 askpass 程序,尝试设置 SUDO_ASKPASS" -#: src/tgetpass.c:328 +#: src/tgetpass.c:326 #, c-format msgid "unable to set gid to %u" msgstr "无法将组 ID 设为 %u" -#: src/tgetpass.c:338 +#: src/tgetpass.c:336 #, c-format msgid "unable to set uid to %u" msgstr "无法将用户 ID 设为 %u" -#: src/tgetpass.c:343 +#: src/tgetpass.c:341 #, c-format msgid "unable to run %s" msgstr "无法执行 %s" @@ -1086,6 +1182,12 @@ msgstr "无法 dup2 stdin" msgid "unable to restore stdin" msgstr "无法恢复 stdin" +#~ msgid "requires at least one argument" +#~ msgstr "要求至少有一个参数" + +#~ msgid "unable to run %s as a login shell" +#~ msgstr "无法以登录 shell 执行 %s" + #~ msgid "%s: missing message header" #~ msgstr "%s:缺失消息头" diff --git a/po/zh_TW.mo b/po/zh_TW.mo index 14289b16a0..726b3b5ee9 100644 Binary files a/po/zh_TW.mo and b/po/zh_TW.mo differ diff --git a/po/zh_TW.po b/po/zh_TW.po index a2f7d061ce..d1c4a5073a 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -5,10 +5,10 @@ # Yi-Jyun Pan , 2019, 2020, 2021. msgid "" msgstr "" -"Project-Id-Version: sudo 1.9.10b1\n" +"Project-Id-Version: sudo 1.9.13b2\n" "Report-Msgid-Bugs-To: https://bugzilla.sudo.ws\n" -"POT-Creation-Date: 2022-02-12 09:31-0700\n" -"PO-Revision-Date: 2022-02-16 00:18+0800\n" +"POT-Creation-Date: 2023-01-24 13:11-0700\n" +"PO-Revision-Date: 2023-02-03 00:51+0800\n" "Last-Translator: Yi-Jyun Pan \n" "Language-Team: Chinese (traditional) \n" "Language: zh_TW\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Poedit 3.0.1\n" +"X-Generator: Poedit 3.2.2\n" #: lib/util/aix.c:89 lib/util/aix.c:169 msgid "unable to open userdb" @@ -33,75 +33,75 @@ msgid "unable to restore registry" msgstr "無法還原登錄表" #: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/gidlist.c:76 -#: lib/util/json.c:54 lib/util/json.c:183 lib/util/sudo_conf.c:218 -#: lib/util/sudo_conf.c:304 lib/util/sudo_conf.c:381 lib/util/sudo_conf.c:665 -#: src/conversation.c:80 src/exec_monitor.c:206 src/exec_monitor.c:456 -#: src/exec_monitor.c:462 src/exec_monitor.c:470 src/exec_monitor.c:478 -#: src/exec_monitor.c:485 src/exec_monitor.c:492 src/exec_monitor.c:499 -#: src/exec_monitor.c:506 src/exec_monitor.c:513 src/exec_monitor.c:520 -#: src/exec_monitor.c:527 src/exec_nopty.c:219 src/exec_nopty.c:228 -#: src/exec_nopty.c:235 src/exec_nopty.c:242 src/exec_nopty.c:249 -#: src/exec_nopty.c:256 src/exec_nopty.c:263 src/exec_nopty.c:270 -#: src/exec_nopty.c:277 src/exec_nopty.c:284 src/exec_nopty.c:291 -#: src/exec_nopty.c:298 src/exec_nopty.c:306 src/exec_nopty.c:503 -#: src/exec_preload.c:143 src/exec_preload.c:204 src/exec_pty.c:840 -#: src/exec_pty.c:849 src/exec_pty.c:906 src/exec_pty.c:1059 -#: src/exec_pty.c:1231 src/exec_pty.c:1240 src/exec_pty.c:1247 -#: src/exec_pty.c:1254 src/exec_pty.c:1261 src/exec_pty.c:1268 -#: src/exec_pty.c:1275 src/exec_pty.c:1282 src/exec_pty.c:1289 -#: src/exec_pty.c:1296 src/exec_pty.c:1303 src/exec_pty.c:1311 -#: src/exec_pty.c:1774 src/load_plugins.c:156 src/load_plugins.c:181 -#: src/load_plugins.c:217 src/load_plugins.c:449 src/load_plugins.c:455 -#: src/parse_args.c:192 src/parse_args.c:213 src/parse_args.c:287 -#: src/parse_args.c:632 src/parse_args.c:654 src/parse_args.c:679 -#: src/preserve_fds.c:46 src/preserve_fds.c:131 src/selinux.c:89 -#: src/selinux.c:362 src/selinux.c:474 src/selinux.c:483 src/sesh.c:113 -#: src/sesh.c:146 src/sesh.c:152 src/sesh.c:159 src/sesh.c:165 src/sesh.c:410 -#: src/sudo.c:639 src/sudo.c:709 src/sudo.c:719 src/sudo.c:744 src/sudo.c:767 -#: src/sudo.c:776 src/sudo.c:785 src/sudo.c:802 src/sudo.c:844 src/sudo.c:854 -#: src/sudo.c:883 src/sudo.c:1083 src/sudo.c:1104 src/sudo.c:1397 -#: src/sudo.c:1566 src/sudo.c:1793 src/sudo.c:2127 src/sudo_edit.c:89 -#: src/sudo_edit.c:149 src/sudo_edit.c:429 src/sudo_edit.c:438 -#: src/sudo_edit.c:539 src/sudo_edit.c:546 src/sudo_edit.c:677 -#: src/sudo_edit.c:697 src/sudo_intercept_common.c:113 -#: src/sudo_intercept_common.c:317 +#: lib/util/json.c:55 lib/util/json.c:197 lib/util/sudo_conf.c:215 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:80 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:205 src/exec_monitor.c:460 +#: src/exec_monitor.c:466 src/exec_monitor.c:474 src/exec_monitor.c:482 +#: src/exec_monitor.c:489 src/exec_monitor.c:496 src/exec_monitor.c:503 +#: src/exec_monitor.c:510 src/exec_monitor.c:517 src/exec_monitor.c:524 +#: src/exec_monitor.c:531 src/exec_nopty.c:231 src/exec_nopty.c:240 +#: src/exec_nopty.c:247 src/exec_nopty.c:254 src/exec_nopty.c:261 +#: src/exec_nopty.c:268 src/exec_nopty.c:275 src/exec_nopty.c:282 +#: src/exec_nopty.c:289 src/exec_nopty.c:296 src/exec_nopty.c:303 +#: src/exec_nopty.c:310 src/exec_nopty.c:318 src/exec_nopty.c:326 +#: src/exec_nopty.c:736 src/exec_preload.c:343 src/exec_ptrace.c:475 +#: src/exec_ptrace.c:768 src/exec_ptrace.c:983 src/exec_ptrace.c:1095 +#: src/exec_ptrace.c:1270 src/exec_ptrace.c:1612 src/exec_ptrace.c:1639 +#: src/exec_pty.c:511 src/exec_pty.c:692 src/exec_pty.c:882 src/exec_pty.c:891 +#: src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 src/exec_pty.c:919 +#: src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 src/exec_pty.c:947 +#: src/exec_pty.c:954 src/exec_pty.c:962 src/load_plugins.c:98 +#: src/load_plugins.c:123 src/load_plugins.c:159 src/load_plugins.c:392 +#: src/load_plugins.c:398 src/parse_args.c:172 src/parse_args.c:193 +#: src/parse_args.c:267 src/parse_args.c:623 src/parse_args.c:645 +#: src/parse_args.c:670 src/preserve_fds.c:46 src/preserve_fds.c:131 +#: src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 src/selinux.c:489 +#: src/selinux.c:496 src/sesh.c:206 src/sesh.c:240 src/sesh.c:246 +#: src/sesh.c:253 src/sesh.c:259 src/sesh.c:470 src/sudo.c:641 src/sudo.c:706 +#: src/sudo.c:716 src/sudo.c:743 src/sudo.c:766 src/sudo.c:775 src/sudo.c:784 +#: src/sudo.c:801 src/sudo.c:842 src/sudo.c:851 src/sudo.c:861 src/sudo.c:894 +#: src/sudo.c:1122 src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 +#: src/sudo.c:1832 src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 +#: src/sudo_edit.c:429 src/sudo_edit.c:438 src/sudo_edit.c:538 +#: src/sudo_edit.c:545 src/sudo_edit.c:688 src/sudo_edit.c:708 +#: src/sudo_intercept_common.c:115 src/sudo_intercept_common.c:340 #, c-format msgid "%s: %s" msgstr "%s:%s" -#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:55 -#: lib/util/json.c:184 lib/util/regex.c:113 lib/util/regex.c:121 -#: lib/util/sudo_conf.c:219 lib/util/sudo_conf.c:304 lib/util/sudo_conf.c:381 -#: lib/util/sudo_conf.c:665 src/conversation.c:81 src/exec_intercept.c:100 -#: src/exec_intercept.c:330 src/exec_intercept.c:354 src/exec_intercept.c:377 -#: src/exec_intercept.c:385 src/exec_intercept.c:410 src/exec_intercept.c:416 -#: src/exec_intercept.c:425 src/exec_intercept.c:431 src/exec_intercept.c:565 -#: src/exec_intercept.c:706 src/exec_monitor.c:456 src/exec_monitor.c:462 -#: src/exec_monitor.c:470 src/exec_monitor.c:478 src/exec_monitor.c:485 -#: src/exec_monitor.c:492 src/exec_monitor.c:499 src/exec_monitor.c:506 -#: src/exec_monitor.c:513 src/exec_monitor.c:520 src/exec_monitor.c:527 -#: src/exec_nopty.c:219 src/exec_nopty.c:228 src/exec_nopty.c:235 -#: src/exec_nopty.c:242 src/exec_nopty.c:249 src/exec_nopty.c:256 -#: src/exec_nopty.c:263 src/exec_nopty.c:270 src/exec_nopty.c:277 -#: src/exec_nopty.c:284 src/exec_nopty.c:291 src/exec_nopty.c:298 -#: src/exec_nopty.c:306 src/exec_preload.c:143 src/exec_preload.c:204 -#: src/exec_pty.c:840 src/exec_pty.c:849 src/exec_pty.c:906 -#: src/exec_pty.c:1231 src/exec_pty.c:1240 src/exec_pty.c:1247 -#: src/exec_pty.c:1254 src/exec_pty.c:1261 src/exec_pty.c:1268 -#: src/exec_pty.c:1275 src/exec_pty.c:1282 src/exec_pty.c:1289 -#: src/exec_pty.c:1296 src/exec_pty.c:1303 src/exec_pty.c:1311 -#: src/exec_pty.c:1774 src/load_plugins.c:156 src/load_plugins.c:181 -#: src/load_plugins.c:217 src/load_plugins.c:449 src/load_plugins.c:455 -#: src/parse_args.c:192 src/parse_args.c:214 src/parse_args.c:287 -#: src/parse_args.c:632 src/parse_args.c:654 src/parse_args.c:679 -#: src/preserve_fds.c:46 src/preserve_fds.c:131 src/selinux.c:89 -#: src/selinux.c:362 src/selinux.c:474 src/selinux.c:483 src/sesh.c:113 -#: src/sesh.c:411 src/sudo.c:230 src/sudo.c:639 src/sudo.c:883 src/sudo.c:1083 -#: src/sudo.c:1104 src/sudo.c:1397 src/sudo.c:1566 src/sudo.c:1793 -#: src/sudo.c:2127 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 -#: src/sudo_edit.c:438 src/sudo_edit.c:539 src/sudo_edit.c:546 -#: src/sudo_edit.c:677 src/sudo_edit.c:697 src/sudo_intercept_common.c:113 -#: src/sudo_intercept_common.c:317 +#: lib/util/aix.c:272 lib/util/gidlist.c:66 lib/util/json.c:56 +#: lib/util/json.c:198 lib/util/regex.c:173 lib/util/sudo_conf.c:216 +#: lib/util/sudo_conf.c:301 lib/util/sudo_conf.c:378 lib/util/sudo_conf.c:646 +#: src/conversation.c:81 src/exec_intercept.c:111 src/exec_intercept.c:344 +#: src/exec_intercept.c:518 src/exec_intercept.c:582 src/exec_intercept.c:706 +#: src/exec_intercept.c:830 src/exec_iolog.c:124 src/exec_iolog.c:135 +#: src/exec_iolog.c:212 src/exec_monitor.c:460 src/exec_monitor.c:466 +#: src/exec_monitor.c:474 src/exec_monitor.c:482 src/exec_monitor.c:489 +#: src/exec_monitor.c:496 src/exec_monitor.c:503 src/exec_monitor.c:510 +#: src/exec_monitor.c:517 src/exec_monitor.c:524 src/exec_monitor.c:531 +#: src/exec_nopty.c:231 src/exec_nopty.c:240 src/exec_nopty.c:247 +#: src/exec_nopty.c:254 src/exec_nopty.c:261 src/exec_nopty.c:268 +#: src/exec_nopty.c:275 src/exec_nopty.c:282 src/exec_nopty.c:289 +#: src/exec_nopty.c:296 src/exec_nopty.c:303 src/exec_nopty.c:310 +#: src/exec_nopty.c:318 src/exec_nopty.c:326 src/exec_preload.c:343 +#: src/exec_ptrace.c:475 src/exec_ptrace.c:768 src/exec_ptrace.c:983 +#: src/exec_ptrace.c:1639 src/exec_pty.c:511 src/exec_pty.c:882 +#: src/exec_pty.c:891 src/exec_pty.c:898 src/exec_pty.c:905 src/exec_pty.c:912 +#: src/exec_pty.c:919 src/exec_pty.c:926 src/exec_pty.c:933 src/exec_pty.c:940 +#: src/exec_pty.c:947 src/exec_pty.c:954 src/exec_pty.c:962 +#: src/load_plugins.c:98 src/load_plugins.c:123 src/load_plugins.c:159 +#: src/load_plugins.c:392 src/load_plugins.c:398 src/parse_args.c:172 +#: src/parse_args.c:194 src/parse_args.c:267 src/parse_args.c:623 +#: src/parse_args.c:645 src/parse_args.c:670 src/preserve_fds.c:46 +#: src/preserve_fds.c:131 src/selinux.c:89 src/selinux.c:362 src/selinux.c:472 +#: src/selinux.c:489 src/selinux.c:496 src/sesh.c:206 src/sesh.c:471 +#: src/sudo.c:230 src/sudo.c:641 src/sudo.c:894 src/sudo.c:1122 +#: src/sudo.c:1143 src/sudo.c:1436 src/sudo.c:1605 src/sudo.c:1832 +#: src/sudo.c:2166 src/sudo_edit.c:89 src/sudo_edit.c:149 src/sudo_edit.c:429 +#: src/sudo_edit.c:438 src/sudo_edit.c:538 src/sudo_edit.c:545 +#: src/sudo_edit.c:688 src/sudo_edit.c:708 src/sudo_intercept_common.c:115 +#: src/sudo_intercept_common.c:340 msgid "unable to allocate memory" msgstr "無法分配記憶體" @@ -115,24 +115,24 @@ msgstr "無法 stat %.*s" msgid "%.*s exists but is not a directory (0%o)" msgstr "%.*s 存在,但不是目錄 (0%o)" -#: lib/util/mkdir_parents.c:102 lib/util/sudo_conf.c:704 src/selinux.c:235 -#: src/selinux.c:265 src/sudo.c:371 src/sudo_edit.c:494 src/sudo_edit.c:559 +#: lib/util/mkdir_parents.c:103 lib/util/sudo_conf.c:666 +#: lib/util/sudo_conf.c:696 lib/util/sudo_conf.c:703 src/selinux.c:235 +#: src/selinux.c:265 src/sudo.c:373 src/sudo_edit.c:494 src/sudo_edit.c:557 #, c-format msgid "unable to open %s" msgstr "無法開啟 %s" -#: lib/util/mkdir_parents.c:119 lib/util/mkdir_parents.c:127 -#: lib/util/mkdir_parents.c:136 -#, c-format -msgid "unable to open %.*s" -msgstr "無法開啟 %.*s" - -#: lib/util/mkdir_parents.c:157 +#: lib/util/mkdir_parents.c:120 lib/util/mkdir_parents.c:160 #, c-format msgid "unable to mkdir %.*s" msgstr "無法建立 %.*s 目錄" -#: lib/util/regex.c:103 +#: lib/util/mkdir_parents.c:130 lib/util/mkdir_parents.c:139 +#, c-format +msgid "unable to open %.*s" +msgstr "無法開啟 %.*s" + +#: lib/util/regex.c:163 msgid "regular expression too large" msgstr "正規表達式太長" @@ -140,8 +140,8 @@ msgstr "正規表達式太長" msgid "Unknown signal" msgstr "訊號未知" -#: lib/util/strtoid.c:87 lib/util/strtomode.c:52 lib/util/strtonum.c:148 -#: lib/util/strtonum.c:187 src/sesh.c:146 src/sesh.c:159 +#: lib/util/strtoid.c:84 lib/util/strtomode.c:52 lib/util/strtonum.c:148 +#: lib/util/strtonum.c:187 src/sesh.c:240 src/sesh.c:253 msgid "invalid value" msgstr "數值無效" @@ -153,77 +153,86 @@ msgstr "數值過大" msgid "value too small" msgstr "數值過小" -#: lib/util/sudo_conf.c:237 +#: lib/util/sudo_conf.c:234 #, c-format msgid "invalid Path value \"%s\" in %s, line %u" msgstr "於 %2$s 第 %3$u 行發現無效的 Path 值「%1$s」" -#: lib/util/sudo_conf.c:403 lib/util/sudo_conf.c:419 lib/util/sudo_conf.c:472 +#: lib/util/sudo_conf.c:400 lib/util/sudo_conf.c:453 #, c-format msgid "invalid value for %s \"%s\" in %s, line %u" msgstr "於 %3$s 中第 %4$u 行發現用於 %1$s 的「%2$s」無效數值" -#: lib/util/sudo_conf.c:440 +#: lib/util/sudo_conf.c:421 #, c-format msgid "unsupported group source \"%s\" in %s, line %u" msgstr "於「%2$s」第 %3$u 行發現不支援的「%1$s」群組來源" -#: lib/util/sudo_conf.c:456 +#: lib/util/sudo_conf.c:437 #, c-format msgid "invalid max groups \"%s\" in %s, line %u" msgstr "於 %2$s 第 %3$u 行發現無效的「%1$s」最大群組" -#: lib/util/sudo_conf.c:681 src/copy_file.c:150 -#, c-format -msgid "unable to stat %s" -msgstr "無法取得 %s 檔案的資訊" - -#: lib/util/sudo_conf.c:684 +#: lib/util/sudo_conf.c:669 #, c-format msgid "%s is not a regular file" msgstr "%s 非一般檔案" -#: lib/util/sudo_conf.c:687 src/copy_file.c:163 +#: lib/util/sudo_conf.c:672 src/copy_file.c:164 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s 不應由使用者 ID 為 %u 的使用者所擁有,應為 %u" -#: lib/util/sudo_conf.c:691 +#: lib/util/sudo_conf.c:676 #, c-format msgid "%s is world writable" msgstr "%s 允許所有使用者寫入" -#: lib/util/sudo_conf.c:694 +#: lib/util/sudo_conf.c:679 #, c-format msgid "%s is group writable" msgstr "%s 允許群組寫入" -#: src/copy_file.c:93 +#: src/apparmor.c:85 +msgid "failed to determine AppArmor confinement" +msgstr "無法判斷 AppArmor 的監禁規則" + +#: src/apparmor.c:93 +#, c-format +msgid "unable to change AppArmor profile to %s" +msgstr "無法將 AppArmor 設定檔更改為 %s" + +#: src/copy_file.c:94 #, c-format msgid "%s: truncate %s to zero bytes? (y/n) [n] " msgstr "%s:將 %s 截斷至 0 位元組?(y/n) [n] " -#: src/copy_file.c:97 +#: src/copy_file.c:98 #, c-format msgid "not overwriting %s" msgstr "不覆寫 %s" -#: src/copy_file.c:119 +#: src/copy_file.c:120 #, c-format msgid "unable to read from %s" msgstr "無法從 %s 讀取" -#: src/copy_file.c:136 src/sudo_edit.c:320 +#: src/copy_file.c:137 src/sudo_edit.c:320 #, c-format msgid "unable to write to %s" msgstr "無法寫入「%s」" -#: src/copy_file.c:154 src/sesh.c:218 src/sudo_edit.c:197 +#: src/copy_file.c:151 +#, c-format +msgid "unable to stat %s" +msgstr "無法取得 %s 檔案的資訊" + +#: src/copy_file.c:155 src/sesh.c:312 src/sudo_edit.c:197 #, c-format msgid "%s: not a regular file" msgstr "%s:非一般檔案" -#: src/copy_file.c:158 +#: src/copy_file.c:159 #, c-format msgid "%s: bad file mode: 0%o" msgstr "%s:檔案模式無效:0%o" @@ -232,282 +241,349 @@ msgstr "%s:檔案模式無效:0%o" msgid "unable to restore current working directory" msgstr "無法還原目前的工作目錄" -#: src/exec.c:130 +#: src/exec.c:111 +msgid "unable to set privileges" +msgstr "無法設定權限" + +#: src/exec.c:117 src/exec.c:122 +msgid "unable to set limit privileges" +msgstr "無法設定限制權限" + +#: src/exec.c:145 #, c-format msgid "unknown login class %s" msgstr "未知的 %s 登入類別" -#: src/exec.c:142 +#: src/exec.c:157 msgid "unable to set user context" msgstr "無法設定使用者上下文" -#: src/exec.c:158 +#: src/exec.c:173 msgid "unable to set process priority" msgstr "無法設定行程優先層級" -#: src/exec.c:175 +#: src/exec.c:190 #, c-format msgid "unable to change root to %s" msgstr "無法切換根目錄至 %s" -#: src/exec.c:188 src/exec.c:194 src/exec.c:201 +#: src/exec.c:203 src/exec.c:209 src/exec.c:216 #, c-format msgid "unable to change to runas uid (%u, %u)" msgstr "無法變更至 runas 使用者 ID (%u, %u)" -#: src/exec.c:219 +#: src/exec.c:238 src/sesh.c:199 #, c-format msgid "unable to change directory to %s" msgstr "無法變更目錄至 %s" -#: src/exec.c:223 +#: src/exec.c:243 #, c-format msgid "starting from %s" msgstr "從 %s 啟動" -#: src/exec.c:305 src/exec_monitor.c:565 src/exec_monitor.c:567 -#: src/exec_nopty.c:561 src/exec_pty.c:581 src/exec_pty.c:1411 -#: src/exec_pty.c:1413 src/signal.c:144 src/signal.c:151 src/signal.c:165 +#: src/exec.c:278 src/exec.c:351 src/exec_monitor.c:569 src/exec_monitor.c:571 +#: src/exec_pty.c:225 src/exec_pty.c:1026 src/exec_pty.c:1028 src/signal.c:144 +#: src/signal.c:151 src/signal.c:165 src/suspend_nopty.c:93 #, c-format msgid "unable to set handler for signal %d" msgstr "無法設定用於處理 %d 訊號的程式" +#: src/exec.c:422 +msgid "intercept mode is not supported with SELinux RBAC on this system" +msgstr "本系統的 SELinux RBAC 不支援攔截模式" + +#: src/exec.c:427 +msgid "unable to log sub-commands with SELinux RBAC on this system" +msgstr "無法記錄本系統上 SELinux RBAC 的子命令" + #: src/exec_common.c:56 msgid "unable to remove PRIV_PROC_EXEC from PRIV_LIMIT" msgstr "無法自 PRIV_LIMIT 移除 PRIV_PROC_EXEC" -#: src/exec_intercept.c:112 src/exec_intercept.c:116 src/exec_intercept.c:667 -#: src/exec_intercept.c:671 src/exec_intercept.c:857 src/exec_intercept.c:861 -#: src/exec_intercept.c:872 src/exec_intercept.c:876 src/exec_monitor.c:464 -#: src/exec_monitor.c:472 src/exec_monitor.c:480 src/exec_monitor.c:487 -#: src/exec_monitor.c:494 src/exec_monitor.c:501 src/exec_monitor.c:508 -#: src/exec_monitor.c:515 src/exec_monitor.c:522 src/exec_monitor.c:529 -#: src/exec_nopty.c:221 src/exec_nopty.c:230 src/exec_nopty.c:237 -#: src/exec_nopty.c:244 src/exec_nopty.c:251 src/exec_nopty.c:258 -#: src/exec_nopty.c:265 src/exec_nopty.c:272 src/exec_nopty.c:279 -#: src/exec_nopty.c:286 src/exec_nopty.c:293 src/exec_nopty.c:300 -#: src/exec_nopty.c:308 src/exec_pty.c:706 src/exec_pty.c:711 -#: src/exec_pty.c:808 src/exec_pty.c:815 src/exec_pty.c:912 -#: src/exec_pty.c:1233 src/exec_pty.c:1242 src/exec_pty.c:1249 -#: src/exec_pty.c:1256 src/exec_pty.c:1263 src/exec_pty.c:1270 -#: src/exec_pty.c:1277 src/exec_pty.c:1284 src/exec_pty.c:1291 -#: src/exec_pty.c:1298 src/exec_pty.c:1305 src/exec_pty.c:1727 -#: src/exec_pty.c:1737 src/exec_pty.c:1782 src/exec_pty.c:1789 -#: src/exec_pty.c:1816 +#: src/exec_intercept.c:70 src/exec_iolog.c:165 src/exec_iolog.c:175 +#: src/exec_iolog.c:220 src/exec_iolog.c:227 src/exec_iolog.c:254 +#: src/exec_monitor.c:468 src/exec_monitor.c:476 src/exec_monitor.c:484 +#: src/exec_monitor.c:491 src/exec_monitor.c:498 src/exec_monitor.c:505 +#: src/exec_monitor.c:512 src/exec_monitor.c:519 src/exec_monitor.c:526 +#: src/exec_monitor.c:533 src/exec_nopty.c:233 src/exec_nopty.c:242 +#: src/exec_nopty.c:249 src/exec_nopty.c:256 src/exec_nopty.c:263 +#: src/exec_nopty.c:270 src/exec_nopty.c:277 src/exec_nopty.c:284 +#: src/exec_nopty.c:291 src/exec_nopty.c:298 src/exec_nopty.c:305 +#: src/exec_nopty.c:312 src/exec_nopty.c:320 src/exec_nopty.c:328 +#: src/exec_nopty.c:387 src/exec_nopty.c:453 src/exec_pty.c:360 +#: src/exec_pty.c:462 src/exec_pty.c:517 src/exec_pty.c:884 src/exec_pty.c:893 +#: src/exec_pty.c:900 src/exec_pty.c:907 src/exec_pty.c:914 src/exec_pty.c:921 +#: src/exec_pty.c:928 src/exec_pty.c:935 src/exec_pty.c:942 src/exec_pty.c:949 +#: src/exec_pty.c:956 msgid "unable to add event to queue" msgstr "無法新增事件至佇列中" -#: src/exec_intercept.c:314 -msgid "invalid PolicyCheckRequest" -msgstr "無效的 PolicyCheckRequest" +#: src/exec_intercept.c:317 src/sudo.c:1028 +msgid "command not set by the security policy" +msgstr "根據安全性策略,不設定命令" -#: src/exec_intercept.c:362 src/sudo.c:1209 src/sudo.c:1254 src/sudo.c:1298 +#: src/exec_intercept.c:395 src/exec_intercept.c:435 src/sudo.c:1248 +#: src/sudo.c:1293 src/sudo.c:1337 msgid "command rejected by policy" msgstr "命令被策略拒絕" -#: src/exec_intercept.c:455 src/sudo.c:1214 src/sudo.c:1259 src/sudo.c:1303 -#: src/sudo.c:1377 +#: src/exec_intercept.c:505 src/sudo.c:1935 +msgid "approval plugin error" +msgstr "核准外掛程式發生錯誤" + +#: src/exec_intercept.c:530 src/sudo.c:1253 src/sudo.c:1298 src/sudo.c:1342 +#: src/sudo.c:1416 msgid "policy plugin error" msgstr "策略外掛程式發生錯誤" -#: src/exec_intercept.c:561 +#: src/exec_intercept.c:559 +msgid "invalid PolicyCheckRequest" +msgstr "無效的 PolicyCheckRequest" + +#: src/exec_intercept.c:702 #, c-format msgid "client request too large: %zu" msgstr "用戶端請求過長:%zu" -#: src/exec_intercept.c:659 +#: src/exec_intercept.c:744 +#, c-format +msgid "unable to unpack %s size %zu" +msgstr "無法解包 %s(大小 %zu)" + +#: src/exec_intercept.c:792 #, c-format msgid "unexpected type_case value %d in %s from %s" msgstr "從 %3$s 收到的 %2$s 中有個非預期的 type_case 數值 %1$d" -#: src/exec_intercept.c:694 +#: src/exec_intercept.c:818 #, c-format msgid "server message too large: %zu" msgstr "伺服器訊息過長:%zu" -#: src/exec_monitor.c:360 +#: src/exec_iolog.c:323 src/exec_iolog.c:363 src/exec_iolog.c:403 +#: src/exec_iolog.c:454 src/exec_iolog.c:505 +msgid "I/O plugin error" +msgstr "I/O 外掛程式錯誤" + +#: src/exec_iolog.c:327 src/exec_iolog.c:367 src/exec_iolog.c:407 +#: src/exec_iolog.c:458 src/exec_iolog.c:509 +msgid "command rejected by I/O plugin" +msgstr "命令被 I/O 外掛程式拒絕" + +#: src/exec_iolog.c:556 +msgid "error logging suspend" +msgstr "記錄暫停時發生錯誤" + +#: src/exec_iolog.c:591 +msgid "error changing window size" +msgstr "變更視窗大小時發生錯誤" + +#: src/exec_monitor.c:362 msgid "error reading from socketpair" msgstr "自 socketpair 讀取資料時發生錯誤" -#: src/exec_monitor.c:377 +#: src/exec_monitor.c:379 #, c-format msgid "unexpected reply type on backchannel: %d" msgstr "未預期的 backchannel 回應類型:%d" -#: src/exec_monitor.c:583 +#: src/exec_monitor.c:587 msgid "unable to set controlling tty" msgstr "無法設定控制終端" -#: src/exec_monitor.c:591 src/exec_nopty.c:369 src/exec_pty.c:1490 -#: src/exec_pty.c:1511 src/exec_pty.c:1531 src/tgetpass.c:307 +#: src/exec_monitor.c:595 src/exec_nopty.c:498 src/exec_nopty.c:508 +#: src/exec_nopty.c:518 src/exec_nopty.c:552 src/exec_pty.c:1097 +#: src/exec_pty.c:1118 src/exec_pty.c:1138 src/tgetpass.c:305 msgid "unable to create pipe" msgstr "無法建立管線" -#: src/exec_monitor.c:601 +#: src/exec_monitor.c:605 msgid "unable to receive message from parent" msgstr "無法自上層接收訊息" -#: src/exec_monitor.c:617 src/exec_nopty.c:407 src/exec_pty.c:1569 -#: src/sudo_edit.c:361 src/tgetpass.c:311 +#: src/exec_monitor.c:621 src/exec_nopty.c:595 src/exec_pty.c:1176 +#: src/sudo_edit.c:361 src/tgetpass.c:309 msgid "unable to fork" msgstr "無法複製 (fork) 出新行程" -#: src/exec_monitor.c:621 src/exec_monitor.c:722 src/exec_nopty.c:471 +#: src/exec_monitor.c:625 src/exec_monitor.c:723 src/exec_nopty.c:700 msgid "unable to restore tty label" msgstr "無法還原終端標籤 (tty label)" -#: src/exec_monitor.c:637 src/sesh.c:123 src/sudo.c:1160 +#: src/exec_monitor.c:638 src/sesh.c:217 src/sudo.c:1199 #, c-format msgid "unable to execute %s" msgstr "無法執行 %s" -#: src/exec_nopty.c:363 src/exec_pty.c:1420 +#: src/exec_nopty.c:546 src/exec_pty.c:1035 msgid "policy plugin failed session initialization" msgstr "政策外掛程式初始化工作階段失敗" -#: src/exec_nopty.c:377 src/exec_pty.c:1391 src/exec_pty.c:1399 +#: src/exec_nopty.c:561 src/exec_pty.c:1004 src/exec_pty.c:1013 msgid "unable to create sockets" msgstr "無法建立 socket 檔案" -#: src/exec_nopty.c:459 src/exec_pty.c:1666 +#: src/exec_nopty.c:688 src/exec_pty.c:1274 msgid "error in event loop" msgstr "在事件處理迴圈中發生錯誤" -#: src/exec_nopty.c:569 src/exec_pty.c:619 src/signal.c:101 +#: src/exec_preload.c:167 src/net_ifs.c:206 src/net_ifs.c:372 +#: src/net_ifs.c:433 src/net_ifs.c:620 src/net_ifs.c:851 src/sudo.c:488 +#: src/sudo_edit.c:398 src/sudo_edit.c:406 #, c-format -msgid "unable to restore handler for signal %d" -msgstr "無法還原用於處理 %d 訊號的程序" +msgid "internal error, %s overflow" +msgstr "內部錯誤,%s 溢位" -#: src/exec_pty.c:158 -msgid "unable to allocate pty" -msgstr "無法分配虛擬終端機" +#: src/exec_ptrace.c:1079 src/exec_ptrace.c:1104 src/exec_ptrace.c:1900 +#, c-format +msgid "unable to set registers for process %d" +msgstr "無法設定處理程序 %d 的寄存器" -#: src/exec_pty.c:222 src/exec_pty.c:262 src/exec_pty.c:302 src/exec_pty.c:353 -#: src/exec_pty.c:404 -msgid "I/O plugin error" -msgstr "I/O 外掛程式錯誤" +#: src/exec_ptrace.c:1099 src/exec_ptrace.c:1274 src/exec_ptrace.c:1616 +#, c-format +msgid "process %d exited unexpectedly" +msgstr "處理程序 %d 非預期離開" -#: src/exec_pty.c:226 src/exec_pty.c:266 src/exec_pty.c:306 src/exec_pty.c:357 -#: src/exec_pty.c:408 -msgid "command rejected by I/O plugin" -msgstr "命令被 I/O 外掛程式拒絕" +#: src/exec_ptrace.c:1208 +msgid "unable to set seccomp filter" +msgstr "無法設定 seccomp 過濾器" -#: src/exec_pty.c:455 -msgid "error logging suspend" -msgstr "記錄暫停時發生錯誤" +#: src/exec_ptrace.c:1405 +#, c-format +msgid "interpreter argument , expected \"%s\", got \"%s\"" +msgstr "解釋器引數:預期「%s」卻收到「%s」" -#: src/exec_pty.c:489 -msgid "error changing window size" -msgstr "變更視窗大小時發生錯誤" +#: src/exec_ptrace.c:1504 +#, c-format +msgid "pathname mismatch, expected \"%s\", got \"%s\"" +msgstr "路徑名稱不符:預期「%s」卻收到「%s」" -#: src/exec_pty.c:1615 -msgid "unable to send message to monitor process" -msgstr "無法傳送訊息至監控程序" +#: src/exec_ptrace.c:1513 src/exec_ptrace.c:1520 src/exec_ptrace.c:1533 +#: src/exec_ptrace.c:1541 src/exec_ptrace.c:1547 src/exec_ptrace.c:1553 +#, c-format +msgid "%s[%d] mismatch, expected \"%s\", got \"%s\"" +msgstr "%s[%d] 不符:預期「%s」卻收到「%s」" -#: src/load_plugins.c:108 src/load_plugins.c:122 src/load_plugins.c:128 -#: src/load_plugins.c:277 src/load_plugins.c:287 src/load_plugins.c:297 -#: src/load_plugins.c:344 +#: src/exec_ptrace.c:1620 #, c-format -msgid "error in %s, line %d while loading plugin \"%s\"" -msgstr "載入「%3$s」外掛程式時,發現 %1$s 中的第 %2$d 行有錯誤" +msgid "process %d unexpected status 0x%x" +msgstr "處理程序 %d 的狀態 0x%x 不在預期之內" -#: src/load_plugins.c:124 +#: src/exec_ptrace.c:1711 #, c-format -msgid "%s must be owned by uid %d" -msgstr "%s 必須由使用者 ID 為 %d 的使用者所擁有" +msgid "unable to get event message for process %d" +msgstr "無法取得處理程序 %d 的事件訊息" -#: src/load_plugins.c:130 +#: src/exec_ptrace.c:1718 #, c-format -msgid "%s must be only be writable by owner" -msgstr "%s 必須只能被其所有者可寫" +msgid "unable to get registers for process %d" +msgstr "無法取得處理程序 %d 的寄存器" + +#: src/exec_pty.c:103 +msgid "unable to allocate pty" +msgstr "無法分配虛擬終端機" + +#: src/exec_pty.c:268 src/signal.c:101 src/suspend_nopty.c:99 +#, c-format +msgid "unable to restore handler for signal %d" +msgstr "無法還原用於處理 %d 訊號的程序" + +#: src/exec_pty.c:1222 +msgid "unable to send message to monitor process" +msgstr "無法傳送訊息至監控程序" + +#: src/load_plugins.c:73 src/load_plugins.c:220 src/load_plugins.c:230 +#: src/load_plugins.c:240 src/load_plugins.c:287 +#, c-format +msgid "error in %s, line %d while loading plugin \"%s\"" +msgstr "載入「%3$s」外掛程式時,發現 %1$s 中的第 %2$d 行有錯誤" -#: src/load_plugins.c:241 src/load_plugins.c:312 +#: src/load_plugins.c:184 src/load_plugins.c:255 #, c-format msgid "ignoring duplicate plugin \"%s\" in %s, line %d" msgstr "忽略第 %3$d 行 %2$s 中的重複外掛程式「%1$s」" -#: src/load_plugins.c:279 +#: src/load_plugins.c:222 #, c-format msgid "unable to load %s: %s" msgstr "無法載入 %s:%s" -#: src/load_plugins.c:289 +#: src/load_plugins.c:232 #, c-format msgid "unable to find symbol \"%s\" in %s" msgstr "無法在 %s 中找到「%s」符號" -#: src/load_plugins.c:299 +#: src/load_plugins.c:242 #, c-format msgid "incompatible plugin major version %d (expected %d) found in %s" msgstr "在 %3$s 中發現不相容的外掛程式主版本號 %1$d(預期應為 %2$d)" -#: src/load_plugins.c:317 +#: src/load_plugins.c:260 #, c-format msgid "ignoring policy plugin \"%s\" in %s, line %d" msgstr "無視 %2$s 中第 %3$d 行的「%1$s」sudo 政策外掛程式" -#: src/load_plugins.c:320 +#: src/load_plugins.c:263 msgid "only a single policy plugin may be specified" msgstr "只能指定一個 Sudo 政策外掛程式" -#: src/load_plugins.c:346 +#: src/load_plugins.c:289 #, c-format msgid "unknown plugin type %d found in %s" msgstr "在 %2$s 發現未知的外掛程式類型 %1$d" -#: src/load_plugins.c:529 +#: src/load_plugins.c:472 #, c-format msgid "policy plugin %s does not include a check_policy method" msgstr "%s 政策外掛程式未包含 check_policy 方法" -#: src/net_ifs.c:210 src/net_ifs.c:376 src/net_ifs.c:437 src/net_ifs.c:624 -#: src/net_ifs.c:855 src/sudo.c:486 src/sudo_edit.c:398 src/sudo_edit.c:406 -#, c-format -msgid "internal error, %s overflow" -msgstr "內部錯誤,%s 溢位" - -#: src/parse_args.c:234 +#: src/parse_args.c:214 #, c-format msgid "invalid environment variable name: %s" msgstr "無效的環境變數名稱:%s" -#: src/parse_args.c:337 +#: src/parse_args.c:317 msgid "the argument to -C must be a number greater than or equal to 3" msgstr "傳入 -C 的參數數字應該要等於或大於 3" -#: src/parse_args.c:568 +#: src/parse_args.c:554 msgid "you may not specify both the -i and -s options" msgstr "不能同時指定 -i 跟 -s 指令列選項" -#: src/parse_args.c:573 +#: src/parse_args.c:559 msgid "you may not specify both the -i and -E options" msgstr "不能同時指定 -i 跟 -E 指令列選項" -#: src/parse_args.c:583 +#: src/parse_args.c:569 msgid "the -E option is not valid in edit mode" msgstr "-E 指令列選項在編輯模式中無效" -#: src/parse_args.c:586 +#: src/parse_args.c:572 msgid "you may not specify environment variables in edit mode" msgstr "不能在編輯模式中指定環境變數" -#: src/parse_args.c:596 +#: src/parse_args.c:582 msgid "the -U option may only be used with the -l option" msgstr "-U 指令列選項只能跟 -l 選項一起使用" -#: src/parse_args.c:600 +#: src/parse_args.c:586 msgid "the -A and -S options may not be used together" msgstr "不能同時使用 -A 跟 -S 指令列選項" -#: src/parse_args.c:693 +#: src/parse_args.c:684 msgid "sudoedit is not supported on this platform" msgstr "此平台不支援 sudoedit" -#: src/parse_args.c:776 +#: src/parse_args.c:767 msgid "Only one of the -e, -h, -i, -K, -l, -s, -v or -V options may be specified" -msgstr "只能指定以下指令列選項之一:-e、-h、-i、-K、-l、-s、-v、-V" +msgstr "只能指定其中一個下述選項:-e、-h、-i、-K、-l、-s、-v、-V" + +#: src/parse_args.c:780 +msgid "Only one of the -K, -k or -N options may be specified" +msgstr "只能指定 -K、-k 或 -N 選項其中一個" -#: src/parse_args.c:792 +#: src/parse_args.c:796 #, c-format msgid "" "%s - edit files as another user\n" @@ -516,7 +592,7 @@ msgstr "" "%s - 以另一個使用者的身份編輯檔案\n" "\n" -#: src/parse_args.c:794 +#: src/parse_args.c:798 #, c-format msgid "" "%s - execute a command as another user\n" @@ -525,7 +601,7 @@ msgstr "" "%s - 以另一個使用者的身份執行指令\n" "\n" -#: src/parse_args.c:800 +#: src/parse_args.c:804 msgid "" "\n" "Options:\n" @@ -533,131 +609,131 @@ msgstr "" "\n" "指令列選項:\n" -#: src/parse_args.c:802 +#: src/parse_args.c:806 msgid "use a helper program for password prompting" msgstr "使用助手程式詢問密碼" -#: src/parse_args.c:805 +#: src/parse_args.c:809 msgid "use specified BSD authentication type" msgstr "使用指定的 BSD 身份驗證類型" -#: src/parse_args.c:809 +#: src/parse_args.c:813 msgid "run command in the background" msgstr "在背景中執行指令" -#: src/parse_args.c:812 +#: src/parse_args.c:816 msgid "ring bell when prompting" msgstr "提示時響鈴" -#: src/parse_args.c:814 +#: src/parse_args.c:818 msgid "close all file descriptors >= num" msgstr "關閉所有 >= num 的檔案描述元" -#: src/parse_args.c:817 +#: src/parse_args.c:821 msgid "run command with the specified BSD login class" msgstr "以指定的 BSD 登入類型執行指令" -#: src/parse_args.c:820 +#: src/parse_args.c:824 msgid "change the working directory before running command" msgstr "執行命令前,先變更工作目錄" -#: src/parse_args.c:823 +#: src/parse_args.c:827 msgid "preserve user environment when running command" msgstr "在執行指令時保留使用者的環境" -#: src/parse_args.c:825 +#: src/parse_args.c:829 msgid "preserve specific environment variables" msgstr "保留指定的環境變數" -#: src/parse_args.c:827 +#: src/parse_args.c:831 msgid "edit files instead of running a command" msgstr "編輯檔案而非執行指令" -#: src/parse_args.c:830 +#: src/parse_args.c:834 msgid "run command as the specified group name or ID" msgstr "以指定的群組名稱或 ID 執行指令" -#: src/parse_args.c:833 +#: src/parse_args.c:837 msgid "set HOME variable to target user's home dir" msgstr "設定 HOME 環境變數為目標使用者的家目錄" -#: src/parse_args.c:836 +#: src/parse_args.c:840 msgid "display help message and exit" msgstr "顯示說明訊息並退出" -#: src/parse_args.c:838 +#: src/parse_args.c:842 msgid "run command on host (if supported by plugin)" msgstr "在指定的主機上執行指令(若外掛程式支援)" -#: src/parse_args.c:841 +#: src/parse_args.c:845 msgid "run login shell as the target user; a command may also be specified" msgstr "以目標使用者的身份執行登入 shell;亦可同時指定一個指令" -#: src/parse_args.c:843 +#: src/parse_args.c:847 msgid "remove timestamp file completely" msgstr "完全地移除時間戳記檔案" -#: src/parse_args.c:846 +#: src/parse_args.c:850 msgid "invalidate timestamp file" msgstr "使時間戳檔案無效化" -#: src/parse_args.c:849 +#: src/parse_args.c:853 msgid "list user's privileges or check a specific command; use twice for longer format" msgstr "列出使用者的權限或是檢查特定的指令;指定兩次以用更長的格式輸出" -#: src/parse_args.c:852 +#: src/parse_args.c:856 msgid "non-interactive mode, no prompts are used" msgstr "非互動式模式,不使用任何提示文字" -#: src/parse_args.c:855 +#: src/parse_args.c:859 msgid "preserve group vector instead of setting to target's" msgstr "保留目前的群組集合而非設定為目標的群組集合" -#: src/parse_args.c:858 +#: src/parse_args.c:862 msgid "use the specified password prompt" msgstr "使用指定的密碼提示文字" -#: src/parse_args.c:860 +#: src/parse_args.c:864 msgid "change the root directory before running command" msgstr "執行命令前,先變更根目錄" -#: src/parse_args.c:863 +#: src/parse_args.c:867 msgid "create SELinux security context with specified role" msgstr "使用指定的角色建立 SELinux 安全上下文" -#: src/parse_args.c:866 +#: src/parse_args.c:870 msgid "read password from standard input" msgstr "自標準輸入讀取密碼" -#: src/parse_args.c:869 +#: src/parse_args.c:873 msgid "run shell as the target user; a command may also be specified" msgstr "以目標使用者的身份執行 shell;一個指令亦可同時被指定" -#: src/parse_args.c:873 +#: src/parse_args.c:877 msgid "create SELinux security context with specified type" msgstr "使用指定的類型建立 SELinux 安全上下文" -#: src/parse_args.c:876 +#: src/parse_args.c:880 msgid "terminate command after the specified time limit" msgstr "在指定的時間限制過後中止指令" -#: src/parse_args.c:879 +#: src/parse_args.c:883 msgid "in list mode, display privileges for user" msgstr "在清單模式中顯示使用者的權限" -#: src/parse_args.c:882 +#: src/parse_args.c:886 msgid "run command (or edit file) as specified user name or ID" msgstr "以指定的使用者名稱或 ID 來執行指令(或編輯檔案)" -#: src/parse_args.c:884 +#: src/parse_args.c:888 msgid "display version information and exit" msgstr "顯示版本資訊並離開" -#: src/parse_args.c:887 +#: src/parse_args.c:891 msgid "update user's timestamp without running a command" msgstr "更新使用者時間戳記而不執行指令" -#: src/parse_args.c:890 +#: src/parse_args.c:894 msgid "stop processing command line arguments" msgstr "停止處理指令列引數" @@ -757,37 +833,42 @@ msgstr "無法設定執行上下文為 %s" msgid "unable to set key creation context to %s" msgstr "無法設定金鑰建立上下文為 %s" -#: src/sesh.c:72 -msgid "requires at least one argument" -msgstr "至少需要至少一個指令列引數" +#: src/sesh.c:114 src/sesh.c:134 +msgid "Only one of the -c or -i options may be specified" +msgstr "只能指定 -c 或 -i 選項其中一個" -#: src/sesh.c:104 +#: src/sesh.c:129 #, c-format msgid "invalid file descriptor number: %s" msgstr "無效的檔案描述元:%s" -#: src/sesh.c:118 +#: src/sesh.c:167 src/sesh.c:171 src/sesh.c:175 +#, c-format +msgid "The -%c option may not be used in edit mode." +msgstr "-%c 選項不應在編輯模式中使用。" + +#: src/sesh.c:184 src/sesh.c:189 #, c-format -msgid "unable to run %s as a login shell" -msgstr "無法以登入 shell 執行 %s" +msgid "The -%c option may only be used in edit mode." +msgstr "-%c 選項只應在編輯模式中使用。" -#: src/sesh.c:200 src/sesh.c:300 src/sudo_edit.c:204 +#: src/sesh.c:294 src/sesh.c:394 src/sudo_edit.c:204 #, c-format msgid "%s: editing symbolic links is not permitted" msgstr "%s:不允許編輯符號連結" -#: src/sesh.c:203 src/sesh.c:303 src/sudo_edit.c:207 +#: src/sesh.c:297 src/sesh.c:397 src/sudo_edit.c:207 #, c-format msgid "%s: editing files in a writable directory is not permitted" msgstr "%s:不允許在可寫目錄編輯檔案" -#: src/sesh.c:287 src/sesh.c:308 src/sesh.c:317 src/sesh.c:325 +#: src/sesh.c:381 src/sesh.c:402 src/sesh.c:411 src/sesh.c:419 #: src/sudo_edit.c:331 #, c-format msgid "contents of edit session left in %s" msgstr "編輯階段的內容被留在 %s" -#: src/sesh.c:416 src/sudo_edit.c:94 +#: src/sesh.c:476 src/sudo_edit.c:94 msgid "unable to get group list" msgstr "無法取得群組清單" @@ -857,132 +938,136 @@ msgstr "致命錯誤:無法載入外掛程式" msgid "plugin did not return a command to execute" msgstr "外掛程式沒有回傳要執行的指令" -#: src/sudo.c:305 +#: src/sudo.c:306 #, c-format msgid "unexpected sudo mode 0x%x" msgstr "未預期的 0x%x sudo 模式" -#: src/sudo.c:553 +#: src/sudo.c:555 #, c-format msgid "you do not exist in the %s database" msgstr "您不在 %s 資料庫中" -#: src/sudo.c:610 +#: src/sudo.c:612 msgid "unable to determine tty" msgstr "無法判斷終端機" -#: src/sudo.c:908 +#: src/sudo.c:928 msgid "The \"no new privileges\" flag is set, which prevents sudo from running as root." msgstr "已設定「無新特權 (no new privileges)」旗標,防止 sudo 以 root 身份執行。" -#: src/sudo.c:910 +#: src/sudo.c:930 msgid "If sudo is running in a container, you may need to adjust the container configuration to disable the flag." msgstr "如果 sudo 是在容器中執行,您可能需要調整容器設定,停用這個旗標。" -#: src/sudo.c:944 +#: src/sudo.c:964 #, c-format msgid "%s must be owned by uid %d and have the setuid bit set" msgstr "%s 必須由使用者 ID 為 %d 的使用者所擁有,且必須設定 setuid 位元" -#: src/sudo.c:947 +#: src/sudo.c:967 #, c-format msgid "effective uid is not %d, is %s on a file system with the 'nosuid' option set or an NFS file system without root privileges?" msgstr "有效的使用者 ID 不是 %d,請問「%s」是存在於設定「nosuid」掛載選項的檔案系統中,還是存在於沒有 root 權限的 NFS 檔案系統?" -#: src/sudo.c:953 +#: src/sudo.c:973 #, c-format msgid "effective uid is not %d, is sudo installed setuid root?" msgstr "有效的使用者 ID 不是 %d,sudo 是否已經安裝 setuid root?" -#: src/sudo.c:969 src/tgetpass.c:333 +#: src/sudo.c:989 src/tgetpass.c:331 msgid "unable to set supplementary group IDs" msgstr "無法設定增補群組 ID" -#: src/sudo.c:976 +#: src/sudo.c:996 #, c-format msgid "unable to set effective gid to runas gid %u" msgstr "無法將有效群組 ID 設定為 runas 群組 ID %u" -#: src/sudo.c:982 +#: src/sudo.c:1002 #, c-format msgid "unable to set gid to runas gid %u" msgstr "無法將群組 ID 設定為 runas 群組 ID %u" -#: src/sudo.c:1025 +#: src/sudo.c:1032 +msgid "argv not set by the security policy" +msgstr "根據安全性策略,不設定 argv" + +#: src/sudo.c:1036 +msgid "envp not set by the security policy" +msgstr "根據安全性策略,不設定 envp" + +#: src/sudo.c:1058 #, c-format msgid "unexpected child termination condition: %d" msgstr "未預期之子行程中止狀況:%d" -#: src/sudo.c:1132 +#: src/sudo.c:1171 msgid "unable to initialize policy plugin" msgstr "無法初始化 Sudo 政策外掛程式" -#: src/sudo.c:1194 +#: src/sudo.c:1233 #, c-format msgid "policy plugin %s is missing the \"check_policy\" method" msgstr "%s 政策外掛程式缺少 \"check_policy\" 方法" -#: src/sudo.c:1240 +#: src/sudo.c:1279 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "%s 政策外掛程式不支援權限" -#: src/sudo.c:1284 +#: src/sudo.c:1323 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "%s 政策外掛程式不支援 -v 指令列選項" -#: src/sudo.c:1322 +#: src/sudo.c:1361 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "%s 政策外掛程式不支援 -k/-K 指令列選項" -#: src/sudo.c:1451 +#: src/sudo.c:1490 #, c-format msgid "error initializing I/O plugin %s" msgstr "初始化「%s」I/O 外掛程式時發生錯誤" -#: src/sudo.c:1454 +#: src/sudo.c:1493 msgid "error initializing I/O plugin" msgstr "初始化 I/O 外掛程式時發生錯誤" -#: src/sudo.c:1603 +#: src/sudo.c:1642 #, c-format msgid "error initializing audit plugin %s" msgstr "初始化稽核外掛程式 %s 時發生錯誤" -#: src/sudo.c:1682 +#: src/sudo.c:1721 #, c-format msgid "%s: unable to log error event%s%s" msgstr "%s:無法記錄錯誤事件%s%s" -#: src/sudo.c:1718 +#: src/sudo.c:1757 #, c-format msgid "%s: unable to log accept event%s%s" msgstr "%s:無法記錄接受事件%s%s" -#: src/sudo.c:1723 src/sudo.c:1761 +#: src/sudo.c:1762 src/sudo.c:1800 msgid "audit plugin error" msgstr "稽核外掛程式發生錯誤" -#: src/sudo.c:1756 +#: src/sudo.c:1795 #, c-format msgid "%s: unable to log reject event%s%s" msgstr "%s:無法記錄拒絕事件%s%s" -#: src/sudo.c:1816 +#: src/sudo.c:1855 #, c-format msgid "error initializing approval plugin %s" msgstr "初始化核准外掛程式 %s 時發生錯誤" -#: src/sudo.c:1886 +#: src/sudo.c:1925 msgid "command rejected by approver" msgstr "命令被核准人拒絕" -#: src/sudo.c:1896 -msgid "approval plugin error" -msgstr "核准外掛程式發生錯誤" - #: src/sudo_edit.c:113 msgid "no writable temporary directory found" msgstr "沒有找到可寫入的暫存目錄" @@ -992,7 +1077,7 @@ msgstr "沒有找到可寫入的暫存目錄" msgid "%s left unmodified" msgstr "%s 保持未變更狀態" -#: src/sudo_edit.c:304 src/sudo_edit.c:571 +#: src/sudo_edit.c:304 src/sudo_edit.c:569 #, c-format msgid "%s unchanged" msgstr "%s 未變更" @@ -1005,37 +1090,41 @@ msgstr "sesh:內部錯誤:只有奇數個路徑" msgid "sesh: unable to create temporary files" msgstr "sesh:無法建立暫存檔案" -#: src/sudo_edit.c:485 src/sudo_edit.c:609 +#: src/sudo_edit.c:485 src/sudo_edit.c:604 msgid "sesh: killed by a signal" msgstr "sesh:被信號中止" -#: src/sudo_edit.c:487 src/sudo_edit.c:612 +#: src/sudo_edit.c:487 src/sudo_edit.c:607 #, c-format msgid "sesh: unknown error %d" msgstr "sesh:未知錯誤代碼 %d" -#: src/sudo_edit.c:602 +#: src/sudo_edit.c:597 msgid "unable to copy temporary files back to their original location" msgstr "無法將暫存檔複製回暫存檔的原始位置" -#: src/sudo_edit.c:606 +#: src/sudo_edit.c:601 msgid "unable to copy some of the temporary files back to their original location" msgstr "無法將部份的暫存檔複製回其原始位置" -#: src/sudo_edit.c:649 +#: src/sudo_edit.c:646 #, c-format msgid "unable to change uid to root (%u)" msgstr "無法將使用者 ID 變更為 root (%u)" -#: src/sudo_edit.c:670 +#: src/sudo_edit.c:660 +msgid "plugin error: invalid file list for sudoedit" +msgstr "外掛程式錯誤:用於 sudoedit 的檔案清單無效" + +#: src/sudo_edit.c:681 msgid "plugin error: missing file list for sudoedit" msgstr "外掛程式錯誤:缺少可用於 sudoedit 的檔案清單" -#: src/sudo_edit.c:713 src/sudo_edit.c:727 +#: src/sudo_edit.c:724 src/sudo_edit.c:739 msgid "unable to read the clock" msgstr "無法讀取時間" -#: src/sudo_intercept_common.c:341 +#: src/sudo_intercept_common.c:365 msgid "intercept port not set" msgstr "未設定攔截用連線埠" @@ -1059,17 +1148,17 @@ msgstr "需要終端器才能讀取密碼;可以使用 -S 選項,從標準 msgid "no askpass program specified, try setting SUDO_ASKPASS" msgstr "沒有指定 askpass 程式,將嘗試設定 SUDO_ASKPASS 環境變數" -#: src/tgetpass.c:328 +#: src/tgetpass.c:326 #, c-format msgid "unable to set gid to %u" msgstr "無法將群組 ID 設定為 %u" -#: src/tgetpass.c:338 +#: src/tgetpass.c:336 #, c-format msgid "unable to set uid to %u" msgstr "無法將使用者 ID 設定為 %u" -#: src/tgetpass.c:343 +#: src/tgetpass.c:341 #, c-format msgid "unable to run %s" msgstr "無法執行 %s" @@ -1086,6 +1175,18 @@ msgstr "無法對標準輸入執行 dup2 操作" msgid "unable to restore stdin" msgstr "無法復原標準輸入" +#~ msgid "%s must be owned by uid %d" +#~ msgstr "%s 必須由使用者 ID 為 %d 的使用者所擁有" + +#~ msgid "%s must be only be writable by owner" +#~ msgstr "%s 必須只能被其所有者可寫" + +#~ msgid "requires at least one argument" +#~ msgstr "至少需要至少一個指令列引數" + +#~ msgid "unable to run %s as a login shell" +#~ msgstr "無法以登入 shell 執行 %s" + #~ msgid "unable to dup intercept fd" #~ msgstr "無法 dup intercept fd" diff --git a/scripts/build_pkgs b/scripts/build_pkgs new file mode 100755 index 0000000000..55c2a08963 --- /dev/null +++ b/scripts/build_pkgs @@ -0,0 +1,1227 @@ +#!/usr/bin/env perl +# +# Build sudo packages on the various build hosts and copy back artifacts. +# Uses the ssh agent to avoid prompting for password when connecting. +# This script is used to build sudo release packages and probably not +# useful for anything else. + +use strict; +use warnings; +use Fcntl ":flock"; +use File::Temp ":mktemp"; +use FileHandle; +use Getopt::Long qw(:config no_ignore_case bundling); +use IO::Socket::IP -register; +use IPC::Run qw(harness start pump finish run timeout); +use POSIX qw(setsid :sys_wait_h :signal_h); +use Parse::CPAN::Meta; +use Pod::Usage; + +my $checklogs = 0; +my $cleanup_only = 0; +my $conf_file = 'build_pkgs.conf'; +my $debug = 0; +my $help = 0; +my $ignore_cache = 0; +my $quiet = 0; +my $repo = "/repos/sudo"; +my $rev = "tip"; +my $sudo_tmpdir; +my $tarball; +my $tarball_base; +my $verbose = 0; +my $main_pid = $$; + +GetOptions("check-logs" => \$checklogs, + "cleanup" => \$cleanup_only, + "config|c=s" => \$conf_file, + "debug|d" => \$debug, + "help|h" => \$help, + "quiet|q" => \$quiet, + "verbose|v" => \$verbose, + "ignore-cache|i" => \$ignore_cache, + "file|f=s" => \$tarball, + "repository|R=s" => \$repo, + "revision|r=s" => \$rev) + or pod2usage(2); +pod2usage(1) if $help; + +# Debug and verbose override quiet. +$verbose = 1 if $debug; +$quiet = 0 if $verbose; + +# Read config data (using Parse::CPAN::Meta is cheating a bit). +my @yaml = Parse::CPAN::Meta->load_file($conf_file) || + die "$0: unable to read $conf_file: $!\n"; +die "$0: missing required home setting in $conf_file\n" + unless (defined($yaml[0]) && exists $yaml[0]->{'home'}); +die "$0: missing required platforms setting in $conf_file\n" + unless (defined($yaml[0]) && exists $yaml[0]->{'platforms'}); +my $configs = $yaml[0]->{'platforms'}; + +# If no platforms were specified on the command line, build everything. +my @platforms; +if (scalar @ARGV != 0) { + foreach (@ARGV) { + die "Unknown platform $_\n" unless exists $configs->{$_}; + push(@platforms, $_); + } +} else { + @platforms = keys %{$configs}; +} + +my $top = $yaml[0]->{'home'}; +my $artifacts = $yaml[0]->{'artifacts'} // "${top}/artifacts"; +my $logs = $yaml[0]->{'logs'} // "${top}/logs"; +my $sockets = "${top}/connections"; +my $cache = "${top}/cache"; +my $exiting = 0; +my $failed_jobs = 0; +my $build_script = $yaml[0]->{'build_script'}; +my $test_script = $yaml[0]->{'test_script'}; +my ($build_script_base, $test_script_base, $srcdir, $sudo_version); + +# In check-only mode just grep the build logs. +check_logs() if $checklogs; + +# Start ssh agent if one is not already running. +my $agent_pid = start_ssh_agent(); + +unless ($cleanup_only) { + # If no tarball specified, create an archive from the repo. + $sudo_tmpdir = mkdtemp("/var/tmp/sudo-XXXXXXXX") || + die "$0: unable to create temporary directory: $!\n"; + if (defined($tarball)) { + warn "$0: building packages from $tarball\n"; + die "$0: can't access $tarball\n" unless -f $tarball; + } else { + warn "$0: building packages from $rev of $repo\n"; + $tarball = create_tarball() || + die "$0: unable to create tarball from $repo\n"; + } + $tarball =~ m:^(.*/)?([^/]+)$:; + $tarball_base = $2; + + # Find top-level source directory in tarball + $srcdir = `tar -ztf $tarball | sed 1q`; + chomp($srcdir); + $srcdir =~ s:/.*::; + die "$0: unable to determine source dir from tarball\n" unless $srcdir; + if ($srcdir =~ /^sudo-(.*)$/) { + $sudo_version = $1; + } else { + $sudo_version = $rev; + } + + # If no build or test script specified, use defaults. + $build_script = default_build_script() unless defined($build_script); + $build_script =~ m:^(.*/)?([^/]+)$:; + $build_script_base = $2; + $test_script = default_test_script() unless defined($test_script); + $test_script =~ m:^(.*/)?([^/]+)$:; + $test_script_base = $2; + + # Create required directories + foreach my $dir (sort $top, $artifacts, $cache, $logs, $sockets, "$artifacts/$sudo_version") { + unless (-d $dir) { + mkdir($dir, 0755) || die "$0: unable to mkdir $dir: $!\n"; + } + } + $artifacts .= "/$sudo_version"; +} + +# Linux and SYSV don't support SIGINFO +my $INFO = "INFO"; +$INFO = "USR1" unless exists $SIG{INFO}; + +$SIG{$INFO} = \&info; +$SIG{HUP} = \&shut_down; +$SIG{INT} = \&shut_down; +$SIG{QUIT} = \&shut_down; +$SIG{TERM} = \&shut_down; +$SIG{__DIE__} = \&die_hook; + +# Prevent macOS from going to sleep while we are running. +system("/usr/bin/caffeinate -i -w $main_pid") if -x "/usr/bin/caffeinate"; + +# Keep track of which platforms belong to which VM server. +my %vm_servers; +my %active_hosts; +foreach my $platform (@platforms) { + my $conf = $configs->{$platform}; + + if (exists $conf->{'vm_host'}) { + my $vm_host = $conf->{'vm_host'}; + push(@{$vm_servers{$vm_host}}, $conf); + } + # Track the number of times an ssh host is used + $active_hosts{$conf->{'ssh_host'}}++; +} + +# Open persistent ssh connections to VM servers +foreach my $server (keys %vm_servers) { + $active_hosts{$server} = 1 if open_persistent_connection($server) == 0; +} + +# Power on VMs as needed +foreach my $vm_host (keys %vm_servers) { + my $vm_confs = $vm_servers{$vm_host}; + delete $vm_servers{$vm_host}; + while (my $conf = pop @{$vm_confs}) { + if (!vm_is_running($vm_host, $conf)) { + if (vm_poweron($vm_host, $conf)) { + push(@{$vm_servers{$vm_host}}, $conf); + } else { + warn "unable to start VM " . $conf->{'ssh_host'} . " on $vm_host"; + } + } + } +} + +# We want to catch the jobs as they finish but not any of the other +# commands started via run() or system() above. +$SIG{CHLD} = \&reaper; + +# We limit the number of concurrent jobs a single host can support. +# In the future, this may be set on a per-host basis. +# If a host already is at the limit, we queue the job until a worker +# for that host completes. +my %workers; +my %concurrency; +my $max_jobs = $yaml[0]->{'max_jobs'} // 2; + +foreach my $platform (@platforms) { + my $conf = $configs->{$platform}; + if (!exists $conf->{'ssh_host'}) { + warn "$platform: ssh_host not defined\n"; + return; + } + + run_job($platform, $conf); +} + +print "Waiting for workers to finish...\n" if $verbose; +while (scalar(keys %workers) != 0) { + # This sleep will be interrupted by SIGCHLD + sleep(5); +} + +# Disable reaper now that we've waited for our children +$SIG{CHLD} = undef; + +# Summarize results +if (!$quiet && !$cleanup_only) { + printf("%-16s%-16s%s\n", "Platform", "Build", "Test"); + foreach my $platform (@platforms) { + my $conf = $configs->{$platform}; + printf("%-16s%-16s%s\n", $platform, $conf->{'status_build'}, + $conf->{'status_test'}); + } +} + +exit($failed_jobs); + +# Signal handler for worker to kill existing jobs. +sub worker_cleanup { + my $signo = shift; + + # Avoid warnings when we kill the worker jobs + $exiting = $signo; + + # Kill everything else in our process group (ssh jobs, etc) + $SIG{$signo} = "IGNORE"; + kill($signo, -getpgrp()); + + # Worker will clean up and exit + sleep 1; + + # Restore default handler so parent can kill us if cleanup fails + $SIG{$signo} = "DEFAULT"; +} + +# Connect to build host and remove stale temporary directories. +sub cleanup_build_dir { + my ($host, $conf) = @_; + + # Wait for VM to power on + if (exists $conf->{"vm_host"}) { + die "unable to connect to $host\n" unless wait_for_ssh($host); + } + + # Remove any remove temporary directories + my $status = run_remote_command($conf, "rm -rf sudo_build.????????", + \*STDERR); + exit($status >> 8); +} + +# Run a build job for the platform or queue it if no worker is available. +sub run_job { + my ($platform, $conf) = @_; + my ($vm_host, $status, $logfile); + my $host = $conf->{'ssh_host'}; + my $exit_value = 0; + + # Block signals during critical section + my $sigset = POSIX::SigSet->new(SIGCHLD, SIGHUP, SIGINT, SIGTERM); + my $oldsigset = POSIX::SigSet->new(); + sigprocmask(SIG_BLOCK, $sigset, $oldsigset); + + # Check max concurrent connections for the build host. + if (exists $concurrency{$host} && $concurrency{$host}->{'jobs'} >= $max_jobs) { + # Defer job until an existing build job completes. + push(@{$concurrency{$host}->{'queue'}}, $platform); + sigprocmask(SIG_SETMASK, $oldsigset); + return; + } + $concurrency{$host}->{'jobs'}++; + + defined(my $child = fork) || die "Can't fork: $!\n"; + if ($child) { + # Parent. Stash pid to map child to host in reaper and return. + $workers{$child} = { "platform" => $platform, "ssh_host" => $host }; + sigprocmask(SIG_SETMASK, $oldsigset); + + print "Started $platform \@ $host ($child)\n" if $verbose; + return; + } + + # Worker runs in its own session to simplify signal handling. + setsid(); + + # Update signal handlers for worker. + $SIG{CHLD} = "DEFAULT"; + $SIG{HUP} = \&worker_cleanup; + $SIG{$INFO} = "DEFAULT"; + $SIG{INT} = \&worker_cleanup; + $SIG{TERM} = \&worker_cleanup; + $SIG{__DIE__} = undef; + sigprocmask(SIG_SETMASK, $oldsigset); + + # Show platform and ssh host in ps. + $0 = "build_pkgs: $platform ($host)"; + + # Cleanup and exit in --clean mode + cleanup_build_dir($host, $conf) if $cleanup_only; + + # Output goes to log file + if (!open(BUILDLOG, ">", "${logs}/${platform}.build")) { + die "unable to create ${logs}/${platform}.build: $!\n"; + } + my $now = localtime(); + print BUILDLOG "Build for ${platform} \@ ${host} started $now\n\n"; + + # Wait for VM to power on + if (exists $conf->{"vm_host"}) { + if (!wait_for_ssh($host)) { + print BUILDLOG "$platform: unable to connect to $host\n"; + exit(1); + } + } + + # Create temporary directory on build host + my $temporary; + for (my $i = 0; $i < 20; $i++) { + $temporary = mktemp("sudo_build.XXXXXXXX"); + $status = run_remote_command($conf, "mkdir $temporary", \*BUILDLOG); + last if $status == 0; + } + if ($status != 0) { + print BUILDLOG "unable to mkdir ${host}:${temporary}\n"; + exit(1); + } + + my @files = ($build_script, $test_script, $tarball); + printf BUILDLOG "copy %s -> %s:%s\n", join(' ', @files), $host, "$temporary/"; + $status = copy_to_remote(\@files, "$temporary/", $host, \*BUILDLOG, + $conf->{"proxy_cmd"}); + if ($status != 0) { + warn "$platform: unable to copy files to $host:$temporary/" unless $exiting; + $exit_value = 1; + goto remove_tmp; + } + + # Copy config.cache file if there is one + if (!$ignore_cache && -f "${cache}/config.cache.${platform}") { + printf BUILDLOG "copy %s -> %s:%s\n", + "${cache}/config.cache.${platform}", + $host, "$temporary/config.cache"; + copy_to_remote("${cache}/config.cache.${platform}", + "$temporary/config.cache", $host, \*BUILDLOG, + $conf->{"proxy_cmd"}); + } + + # Unpack tarball and run build script. + my $build_args = ""; + if (exists $conf->{"crossbuild"}) { + # When cross-building, pass the target system on the command line. + $build_args .= "--osversion " . $conf->{"crossbuild"} . " "; + } + if (!$ignore_cache) { + # Name of the config.cache file, if using. + $build_args .= "--cache-file config.cache "; + } + if (exists $conf->{"no_packages"} && $conf->{"no_packages"}) { + $build_args .= "--no-packages "; + } + + $status = run_remote_command($conf, + "cd $temporary && ./$build_script_base ${build_args}$tarball_base", + \*BUILDLOG); + if ($status != 0) { + warn "$platform: build failed on $host\n" unless $exiting; + $exit_value = 2; + goto remove_tmp; + } + + if (!exists $conf->{'omit_artifacts'} || !$conf->{'omit_artifacts'}) { + printf BUILDLOG "copy %s:%s -> %s\n", $host, + "$temporary/artifacts/*", $artifacts; + $status = copy_from_remote("$temporary/artifacts/\*", $artifacts, + $host, \*BUILDLOG, $conf->{"proxy_cmd"}); + if ($status != 0) { + warn "$platform: unable to scp $host:$temporary/artifacts/* $artifacts" unless $exiting; + $exit_value = 4; + goto remove_tmp; + } + } + + # Update config.cache file if using. + if (!$ignore_cache) { + printf BUILDLOG "copy %s:%s -> %s\n", $host, + "$temporary/config.cache", "${cache}/config.cache.${platform}"; + $status = copy_from_remote("$temporary/config.cache", + "${cache}/config.cache.${platform}", $host, + \*BUILDLOG, $conf->{"proxy_cmd"}); + } + + $now = localtime(); + print BUILDLOG "\nBuild completed $now\n"; + + # Run tests unless cross-compiling + unless (exists $conf->{'crossbuild'}) { + if (!open(TESTLOG, ">", "${logs}/${platform}.test")) { + warn "unable to create ${logs}/${platform}.test: $!\n"; + $exit_value = 128; + goto remove_tmp; + } + print TESTLOG "Test started $now\n\n"; + $status = run_remote_command($conf, + "cd $temporary && ./$test_script_base $srcdir", \*TESTLOG, "-tt"); + print TESTLOG "\nTest completed $now\n"; + if ($status != 0) { + warn "$platform: test failure on $host\n" unless $exiting; + $exit_value = 129; + } + close(TESTLOG); + } + + # Remove temporary build dir +remove_tmp: + run_remote_command($conf, "rm -rf \"$temporary\"", \*BUILDLOG); + close(BUILDLOG); + + exit($exit_value); +} + +sub reaper { + my $child; + + for (;;) { + $child = waitpid(-1, WNOHANG); + last if $child <= 0; + + if (exists $workers{$child}) { + my $w = $workers{$child}; + my $platform = $w->{'platform'}; + my $host = $w->{'ssh_host'}; + my $conf = $configs->{$platform}; + print "Finished $platform \@ $host ($child)\n" if $verbose; + + # Check for warnings/errors in the log file + my @warnings = grep_log("${logs}/${platform}.build"); + foreach (@warnings) { + warn "$platform: $_\n"; + } + + if ($? == 0) { + $conf->{'status_build'} = scalar @warnings ? "WARNING" : "SUCCESS"; + $conf->{'status_test'} = + $conf->{'crossbuild'} ? "N/A" : "SUCCESS"; + } else { + if (($? >> 8) < 128) { + # Build failed + $conf->{'status_build'} = "FAILED"; + $conf->{'status_test'} = "N/A" + } else { + # Build OK, test failed + $conf->{'status_build'} = scalar @warnings ? "WARNING" : "SUCCESS"; + $conf->{'status_test'} = "FAILED"; + } + $failed_jobs++; + } + + # Remove the dead process + delete $workers{$child}; + + # One less worker is now using the host + $active_hosts{$host}--; + if ($active_hosts{$host} == 0) { + # Close persistent connection if no longer needed + close_persistent_connection($host); + + if (exists $conf->{'vm_host'}) { + my $vm_host = $conf->{'vm_host'}; + if (exists $vm_servers{$vm_host}) { + for (my $i = 0; $i < scalar @{$vm_servers{$vm_host}}; $i++) { + # Shut down now-unused VM and remove from list. + if (${$vm_servers{$vm_host}}[$i] eq $conf) { + splice(@{$vm_servers{$vm_host}}, $i, 1); + vm_shutdown($vm_host, $conf); + } + } + } + } + } + + # Check for deferred jobs if invoked via signal. + if (defined($_[0])) { + $concurrency{$host}->{'jobs'}--; + if (exists $concurrency{$host}->{'queue'}) { + if (int(@{$concurrency{$host}->{'queue'}})) { + my $platform = pop(@{$concurrency{$host}->{'queue'}}); + run_job($platform, $configs->{$platform}); + } + } + } + } + } + $SIG{CHLD} = \&reaper; +} + +# Kill all workers and wait for them to finish. +# Note that the reaper is not called for the workers. +sub kill_workers { + my $signame = shift; + my @jobs = keys %workers; + + if (@jobs) { + $SIG{CHLD} = undef; + foreach (@jobs) { + kill($signame, $_); + } + sleep(2); + foreach (@jobs) { + kill(SIGKILL, $_); + } + for (;;) { + last unless waitpid(-1, WNOHANG) > 0; + } + } +} + +# Shut down cleanly on signal and exit. +sub shut_down { + my $signame = shift; + + print "Shutting down...\n" if $verbose; + + kill_workers($signame); + exit(1); +} + +# Hook that is called when we die(). +sub die_hook { + # Don't do anything special if called from an eval block + die @_ if $^S; + + kill_workers(SIGTERM); +} + +# Signal handler for SIGINFO (or SIGUSR1 on non-BSD). +sub info { + while (my ($host, $c) = each %concurrency) { + if (exists $c->{'queue'}) { + foreach my $platform (@{$c->{'queue'}}) { + warn "Queued $platform @ $host\n"; + } + } + } + while (my ($pid, $w) = each %workers) { + my $platform = $w->{'platform'}; + my $host = $w->{'ssh_host'}; + warn "Running $platform @ $host ($pid)\n"; + } + $SIG{$INFO} = \&info if defined($_[0]); +} + +# Build up the ssh command line +sub ssh_cmdline { + my ($host, $cmd, @opts) = @_; + + my @cmdline = qw(ssh -x -oPreferredAuthentications=publickey -oStrictHostKeyChecking=no -oServerAliveInterval=15 -oServerAliveCountMax=3); + push(@cmdline, @opts) if @opts; + push(@cmdline, $host); + push(@cmdline, $cmd) if defined($cmd); + + @cmdline; +} + +# Use scp to copy one or more files from local to remote +sub copy_to_remote { + my ($src, $dst, $host, $output, $proxy) = @_; + + # Open persistent connection if needed + unless (-S "$sockets/$host") { + my $status = open_persistent_connection($host, $output, $proxy); + return $status if $status != 0; + } + + my @cmd = qw(scp -Bq -oPreferredAuthentications=publickey -oStrictHostKeyChecking=no); + push(@cmd, "-oControlPath=$sockets/$host"); + push(@cmd, ref $src ? @$src : $src); + push(@cmd, "$host:$dst"); + run(\@cmd, '<', \undef, '>&', $output, debug => $debug); + + return $?; +} + +# Use scp to copy a file from remote to local +sub copy_from_remote { + my ($src, $dst, $host, $output, $proxy) = @_; + + # Open persistent connection if needed + unless (-S "$sockets/$host") { + my $status = open_persistent_connection($host, $output, $proxy); + return $status if $status != 0; + } + + my @cmd = qw(scp -Bq -oPreferredAuthentications=publickey -oStrictHostKeyChecking=no); + push(@cmd, "-oControlPath=$sockets/$host"); + push(@cmd, "$host:$src", $dst); + run(\@cmd, '<', \undef, '>&', $output, debug => $debug); + + return $?; +} + +# Run a command over ssh on the remote host and to output handle. +# A persistent connection is opened if one does not already exit. +sub run_remote_command { + my ($conf, $cmd, $output, @opts) = @_; + my $host = $conf->{'ssh_host'}; + my $sock_file = "$sockets/$host"; + my ($writer, $child); + + # Open persistent connection if needed + unless (-S $sock_file) { + my $status = open_persistent_connection($host, $output, $conf->{'proxy_cmd'}); + return $status if $status != 0; + } + + # Run command in schroot if necessary + if (exists $conf->{'schroot'}) { + my $schroot = $conf->{'schroot'}; + # Wrap in a shell if command uses special characters + if ($cmd =~ /[\$\{\}\[\]\&\|\;\?\*]/) { + $cmd =~ s/'/\\\'/g; + $cmd = "schroot -c $schroot -- sh -c '$cmd'"; + } else { + $cmd = "schroot -c $schroot -- $cmd"; + } + } + + # No need for proxy here, the persistent connection handles it. + # For tty mode, we need to allocate a pty and do things the hard way. + my @cmdline = ssh_cmdline($host, $cmd, "-S", $sock_file, @opts); + if (grep(@opts, "-t")) { + my ($inbuf, $outbuf); + my $h = harness(\@cmdline, 'pty>', \$outbuf, debug => $debug); + for (;;) { + pump $h; + if (defined($outbuf)) { + $outbuf =~ s/\r+$//gm; + print $output $outbuf; + undef $outbuf; + } + last unless $h->pumpable; + } + $h->finish(); + } else { + run(\@cmdline, '<', \undef, '>&', $output, debug => $debug); + } + + return $?; +} + +# Open a persistent connection to the specified host. +# The connection will persist until shut down. +sub open_persistent_connection { + my ($dest, $output, $proxy) = @_; + my ($outbuf, @cmdline); + + # Handle user@host form + $dest =~ /([^@]+)$/; + my $host = $1; + + my @ssh_opts = qw(-M -N -oControlPersist=yes); + push(@ssh_opts, "-S", "$sockets/$host"); + push(@ssh_opts, "-oProxyCommand=$proxy") if defined($proxy); + + # Lock socket dir to prevent race conditions + sysopen(SOCKDIR, $sockets, O_RDONLY) || die "$0: unable to open $sockets: $!\n"; + flock(SOCKDIR, LOCK_EX) || die "$0: unable to lock $sockets: $!\n"; + + if (-S "$sockets/$host") { + @cmdline = ("ssh", "-S", "$sockets/$host", "-Ocheck", $host); + run(\@cmdline, '<', \undef, '>&', \$outbuf, debug => $debug); + if ($outbuf =~ /^Master running/) { + close(SOCKDIR); + return 0; + } + return 0 if $outbuf =~ /^Master running/; + unlink("$sockets/$host"); + } + + @cmdline = ssh_cmdline($dest, undef, @ssh_opts); + run(\@cmdline, '<', \undef, '>&', \$outbuf, debug => $debug); + if (length($outbuf) > 0) { + $output = \*STDERR unless defined($output); + print $output $outbuf; + } + + close(SOCKDIR); + return $?; +} + +# Close a persistent connection +sub close_persistent_connection { + my $host = shift; + my $ret = 1; + + # Strip off optional user@ if present. + $host =~ s/^.*@//; + + if (-S "$sockets/$host") { + my $outbuf; + my @cmdline = ("ssh", "-S", "$sockets/$host", "-Oexit", $host); + run(\@cmdline, '<', \undef, '>&', \$outbuf, debug => $debug); + $ret = 0 unless ($? == 0 && $outbuf =~ /Exit request sent/); + } + + $ret; +} + +# Close all active persistent connections. +sub close_persistent_connections { + if (defined($sockets)) { + foreach my $host (keys %active_hosts) { + close_persistent_connection($host); + } + } +} + +sub vm_is_running { + # vim-cmd vmsvc/power.getstate VMID + my ($host, $conf) = @_; + my $outbuf; + + my @cmdline = ssh_cmdline($host, "vim-cmd vmsvc/power.getstate " . $conf->{'vmid'}); + run(\@cmdline, '<', \undef, '>&', \$outbuf, debug => $debug); + + $outbuf =~ /Powered on/; +} + +sub vm_poweron { + # vim-cmd vmsvc/power.on VMID + my ($host, $conf) = @_; + my $outbuf; + + printf("Powering on VM %s on %s\n", $conf->{'ssh_host'}, $host) if $verbose; + my @cmdline = ssh_cmdline($host, "vim-cmd vmsvc/power.on " . $conf->{'vmid'}); + run(\@cmdline, '<', \undef, '>&', \$outbuf, debug => $debug); + + $outbuf =~ /Powering on VM/; +} + +sub vm_shutdown { + # vim-cmd vmsvc/power.shutdown VMID + my ($host, $conf) = @_; + my $ssh_host = $conf->{'ssh_host'}; + my $outbuf; + + printf("Shutting down VM %s on %s\n", $ssh_host, $host) if $verbose; + my @cmdline = ssh_cmdline($host, "vim-cmd vmsvc/power.shutdown " . $conf->{'vmid'}); + run(\@cmdline, '<', \undef, '>&', \$outbuf, debug => $debug); + + # Check for, e.g. vim.fault.ToolsUnavailable or vim.fault.InvalidPowerState + if ($outbuf =~ /vim\.fault\.ToolsUnavailable/) { + # VM tools not installed, login directly to shut down + if (exists $conf->{'shutdown'}) { + # login directly to shut down + @cmdline = ssh_cmdline($ssh_host, $conf->{'shutdown'}); + run(\@cmdline, '<', \undef, '>&', \$outbuf, debug => $debug); + } else { + warn "unable to shut down $ssh_host on $host: VM tools not installed\n"; + } + } elsif ($outbuf =~ /vim\.fault\.InvalidPowerState/) { + # Not powered on, ignore the error + $outbuf = ""; + } + $outbuf !~ /vim\.fault\./; +} + +# Try to connect to port 22 on the host. +# Returns 1 on success, 0 on failure +sub ping_ssh { + my $host = shift; + my $ret = 0; + + # Create socket and connect + my $sock = IO::Socket::IP->new( + PeerHost => $host, + PeerPort => "22", + Timeout => 20, + Type => SOCK_STREAM + ); + + if (defined($sock) && defined($_ = <$sock>)) { + $ret = 1 if /^SSH/; + close($sock); + } + + return $ret; +} + +sub wait_for_ssh { + my $host = shift; + + # Sleep until sshd is available (or we time out) + my $sleeptime = 10; + my $timeout = $sleeptime * 30; + while ($timeout > 0) { + sleep($sleeptime); + $timeout -= $sleeptime; + return 1 if ping_ssh($host); + } + + return 0; +} + +# Create a tarball from an archive $repo +sub create_tarball { + die "$0: unable to create directory $sudo_tmpdir/sudo: $!\n" + unless mkdir("$sudo_tmpdir/sudo", 0755); + system("hg archive -R $repo -r $rev --type=files $sudo_tmpdir/sudo && hg log -R $repo --template=changelog -r 'sort(branch(.) or follow(), -date)' > $sudo_tmpdir/sudo/ChangeLog && cd $sudo_tmpdir && sed -e 's/^/sudo\\//' -e 's/[ ].*//' sudo/MANIFEST | GZIP=-9 pax -wz -x ustar -f sudo.tar.gz && rm -rf sudo"); + return $? ? undef : "$sudo_tmpdir/sudo.tar.gz"; +} + +sub start_ssh_agent { + # Use existing agent if possible + if (exists $ENV{'SSH_AUTH_SOCK'} && -S $ENV{'SSH_AUTH_SOCK'}) { + return undef; + } + + # Need to start a new agent and add keys + my @cmdline = qw(ssh-agent -s); + run(\@cmdline, '<', \undef, '>&', sub { + $_ = shift; + s/;[^;]*$//; + my ($var, $val) = (/^([^=]+)=(.*)$/); + if (defined($var) && defined($val)) { + $ENV{$var} = $val; + } + }); + system("ssh-add"); + + return $ENV{'SSH_AGENT_PID'}; +} + +sub default_build_script { + my $fname = "${sudo_tmpdir}/build.sh"; + open(my $fh, ">", $fname); + print $fh <<~'EOF'; + #!/bin/sh + configure_opts= + while test $# != 0; do + case "$1" in + --cache-file) + configure_opts="${configure_opts} --cache-file=../$2" + shift 2 + ;; + --osversion) + osversion="$2" + shift 2 + ;; + --no-packages) + configure_opts="${configure_opts} --build-only" + shift + ;; + *) + break + ;; + esac + done + + if [ -z "$1" ] || [ \! -r "$1" ]; then + echo "No tarball specified" + exit 1 + fi + gunzip -c $1 | tar xf - + if [ $? -ne 0 ]; then + echo "Unable to extract tarball" + exit 1 + fi + rm -f $1 + + mkdir artifacts || exit 1 + + # Assume src directory in tar file matches its name. + sudodir="`echo $1|sed 's/.tar.gz$//'`" + cd "$sudodir" || exit 1 + + if [ -z "$osversion" ]; then + osversion="`./scripts/pp --probe`" + fi + + ./scripts/mkpkg $configure_opts --osversion="$osversion" || exit 1 + for f in *.rpm *.deb *.bff *.depot *.pkg *.txz ../artifacts; do + if [ -f "$f" ]; then + mv "$f" ../artifacts + fi + done + EOF + chmod(0755, $fh); + close($fh); + + return $fname; +} + +sub default_test_script { + my $fname = "${sudo_tmpdir}/test.sh"; + open(my $fh, ">", $fname); + print $fh <<~'EOF'; + #!/bin/sh + if [ -z "$1" ]; then + echo "usage: test.sh workdir" + exit 1 + fi + cd "$1" || exit 1 + exec make check + EOF + chmod(0755, $fh); + close($fh); + + return $fname; +} + +# Look for warnings/errors in the log file +sub grep_log { + my $log = shift; + my @warnings; + + if (open(my $fh, "<", $log)) { + while (<$fh>) { + s/[\r\n]+$//; # kill carriage returns too + s/\x1b\[[\d;]*m//g; # remove escape codes + if (/[Ww]arning:|[Ee]rror:|\*\*\* |ftp: /) { + # Some things we ignore + next if /ermanently added .* to the list of known hosts/; + next if /warning\/error mail subject/; + next if /must be cleared at boot time|Clock skew detected|in the future|-no(-fast)?-install|remember to run 'libtool --finish|has not been installed in|relinking '/; + # RPM warnings we don't care about + next if /warning: (Installed .but unpackaged. file.s. found:|Deprecated external dependency generator is used!|absolute symlink)/; + # Solaris ld may warn about the gcc dwarf2 unwinder + next if /warning: unwind table: .* suspicious InitialLoc value 0: binary search table will be incomplete if section requires runtime relocation/; + # Solaris Studio compiler warns about anonymous unions + next if /warning: anonymous union declaration/; + # HP-UX shl_t uses type-punning + next if /sudo_dso.c:.*warning: type-punning to incomplete type might break strict-aliasing rules/; + # Bogus HP-UX 11.23 warning about PTHREAD_MUTEX_INITIALIZER + next if /arc4random.h:.*(missing braces around initializer|near initialization for 'arc4random_mtx)/; + if ($log eq "vasaix53.vintela.com.log") { + # Bogus wait(2) macros on AIX 5.3 + next if /warning: signed and unsigned type in conditional expression/; + } + push(@warnings, $_); + } + } + close($fh); + } + + return @warnings; +} + +sub check_logs { + foreach my $platform (@platforms) { + my @warnings = grep_log("${logs}/${platform}.build"); + foreach (@warnings) { + warn "$platform: $_\n"; + } + } + exit(0); +} + +1; + +END { + # Only do cleanup in the main process + return unless $$ == $main_pid; + + # Power down VMs cleanly if any are still running + while (my ($vm_host, $configs) = each %vm_servers) { + foreach my $conf (@{$configs}) { + vm_shutdown($vm_host, $conf); + } + } + + # Close any persistent ssh connections still running + close_persistent_connections(); + + # Remove temp directory used to generate the tarball. + if (defined($sudo_tmpdir)) { + system("rm -rf \"$sudo_tmpdir\""); + } + + # Kill ssh-agent if we started one ourselves + if (defined($agent_pid)) { + kill(SIGINT, $agent_pid); + waitpid($agent_pid, 0); + } +} + +__END__ +=head1 NAME + +build_pkgs - Build sudo packages on multiple hosts simultaneously + +=head1 SYNOPSIS + +build_pkgs [-c config_file] [-f tarball] [-h] [-i] [-q] [-R repo] [-r rev] [-v] [platform ...] + +build_pkgs [--check-logs] [--config config_file] [--file tarball] [--help] [--ignore-cache] [--quiet] [--repository repo] [--revision rev] [--verbose] [platform ...] + +=head1 OPTIONS + +=over 4 + +=item B<--check-logs> + +Check the existing build logs for warnings and errors and exit. +If no platform is specified, check the build logs of all configured +platforms. + +=item B<-c> I, B<--config> I + +Use the specified configuration file for settings and platform +configuration. + +=item B<-f> I, B<--file> I + +Build packages from the specified tar file. If this option is not +specified, a distribution tarball will be generated from the tip +of the source repo. + +=item B<-h>, B<--help> + +Print a brief help message and exit. + +=item B<-i>, B<--ignore-cache> + +Do not use an existing config.cache file when configuring sudo. + +=item B<-q>, B<--quiet> + +Do not print a summary at the end detailing the success or failure +of each build and test run. + +=item B<-R> I, B<--repository> I + +The URL of the sudo Mercurial source repo to use if the B<--tarball> +option is not specified. + +=item B<-r> I, B<--revision> I + +The revision to check out if the B<--tarball> option is not specified. +If no revision is specified, the tip of the repo will be used. + +=item B<-v>, B<--verbose> + +Print additional information about the progress of builds as the +script runs. + +=back + +=head1 DESCRIPTION + +B builds sudo packages on multiple systems at the same +time, logging each build and test job to a separate log file. When +B finishes all its jobs, it prints a summary of each +platform with the status of the build and test scripts. + +For each build host, B performs the following steps: + +=over 4 + +=item 1. + +Open a persistent ssh connection to the build host. +This connection is used for all build server -> client interaction. + +=item 2. + +Create a temporary directory on the build host. + +=item 3. + +Copy the release tarball (or repo archive) to the build host along +with a config.cache file (if using), build and test scripts. + +=item 4. + +Run the build script on the build host, which will unpack the tarball +and build the package(s). + +=item 5. + +If the build was successful, run the test script on the build host. + +=item 6. + +If the build was successful, copy the artifacts from the build host +to the artifacts directory. + +=item 7. + +The temporary directory is removed from the build host. + +=back + +=head2 Configuration file + +The configuration file is in YAML format. The supported settings +are as follows: + +=over 4 + +=item home + +The top directory that B will use. By default, this +is the parent directory of the logs, artifacts, cache and connections +directories. + +=item logs + +The directory to store log files in. By default, this is I +under the I directory. + +=item artifacts + +The directory in which to store built artifacts. By default, this +is I under the I directory. + +=item build_script + +A custom build script to run on the build host. By default, +B will use a script that just unpacks the tarball and +runs the I script. + +=item test_script + +A custom test script to run on the build host. By default, +B will use a script that just runs I from +within the build directory. + +=item max_jobs + +The number of build jobs to run simultaneously on a single host. + +=item platforms + +The platform configuration. Platform are generally of the form +OS-architecture, for example I or I. +Each platform supports the following settings: + +=over 4 + +=item omit_artifacts + +If set to true, avoid copying any artifacts built for this platform. +This can be used to build on systems where we don't publish packages. + +=item crossbuild + +The name of the platform to cross-compile for. If specified, this +value is passed via the B<--osversion> option to the B script. + +=item proxy_cmd + +The proxy command to pass to ssh via the I option. + +=item schroot + +The name of the I on I to run the build inside. + +=item shutdown + +A command to run to shut down a virtual machine when the OS doesn't +support performing a graceful VM shutdown. + +=item ssh_host + +The build host to connect to. A username may be prefixed in the +form user@host. + +=item vm_host + +The ESXi server that hosts I. If a I is also set, +B will power on/off the VM on demand. + +=item vmid + +The ESXi virtual machine ID for the build host. If I is +also set, B will power on/off the VM on demand. + +=back + +=back + +The I and I settings are mandatory. + +=head1 EXAMPLES + +Below is an example configuration file: + + # File locations. + home: /home/sudo-build + logs: /var/log/sudo-build + artifacts: /home/sudo-build/artifacts + + # Custom build and test scripts. + build_script: /home/sudo-build/scripts/build.sh + test_script: /home/sudo-build/scripts/test.sh + + # Run up to two simultaneous jobs on each build host. + max_jobs: 2 + + # Ubuntu 22.04 LTS (Jammy Jellyfish) + jammy-x86_64: + schroot: jammy + ssh_host: linux-build + + # macOS 11 and 12 builds on a single macOS 12 virtual machine. + # If the VM is not running, it will be started and shut down when done. + macos12: + ssh_host: macos-build + vm_host: root@esxi + vmid: 150 + macos11: + crossbuild: macos1100-i386 + ssh_host: macos-build + vm_host: root@esxi + vmid: 150 + +=head1 SIGNALS + +When sent the C signal (or C on system that don't +support C), B will output the currently running +build jobs as well as those jobs that are queued up waiting for a +slot on the build host. diff --git a/scripts/config.guess b/scripts/config.guess index 1972fda8eb..69188da73d 100755 --- a/scripts/config.guess +++ b/scripts/config.guess @@ -1,12 +1,14 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2021 Free Software Foundation, Inc. +# Copyright 1992-2023 Free Software Foundation, Inc. -timestamp='2021-01-25' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2023-01-01' # This file 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 +# 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 @@ -32,7 +34,15 @@ timestamp='2021-01-25' # Please send patches to . -me=$(echo "$0" | sed -e 's,.*/,,') +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] @@ -50,7 +60,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2021 Free Software Foundation, Inc. +Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -84,6 +94,9 @@ if test $# != 0; then exit 1 fi +# Just in case it came from the environment. +GUESS= + # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -102,8 +115,8 @@ set_cc_for_build() { # prevent multiple calls if $tmp is already set test "$tmp" && return 0 : "${TMPDIR=/tmp}" - # shellcheck disable=SC2039 - { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } @@ -112,7 +125,7 @@ set_cc_for_build() { ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then - CC_FOR_BUILD="$driver" + CC_FOR_BUILD=$driver break fi done @@ -131,12 +144,12 @@ if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi -UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown -UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown -UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown -UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "$UNAME_SYSTEM" in +case $UNAME_SYSTEM in Linux|GNU|GNU/*) LIBC=unknown @@ -157,7 +170,8 @@ Linux|GNU|GNU/*) #endif #endif EOF - eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" # Second heuristic to detect musl libc. if [ "$LIBC" = unknown ] && @@ -176,7 +190,7 @@ esac # Note: order is significant - the case branches are not exclusive. -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -188,11 +202,11 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". - UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ - echo unknown)) - case "$UNAME_MACHINE_ARCH" in + echo unknown)` + case $UNAME_MACHINE_ARCH in aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; @@ -200,15 +214,15 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') - endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') - machine="${arch}${endian}"-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; @@ -229,10 +243,10 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in ;; esac # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -240,76 +254,82 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in + case $UNAME_VERSION in Debian*) release='-gnu' ;; *) - release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "$machine-${os}${release}${abi-}" - exit ;; + GUESS=$machine-${os}${release}${abi-} + ;; *:Bitrig:*:*) - UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; *:LibertyBSD:*:*) - UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; *:MidnightBSD:*:*) - echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; *:ekkoBSD:*:*) - echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; *:OS108:*:*) - echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; *:MirBSD:*:*) - echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; + GUESS=$UNAME_MACHINE-unknown-sortix + ;; *:Twizzler:*:*) - echo "$UNAME_MACHINE"-unknown-twizzler - exit ;; + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; + GUESS=$UNAME_MACHINE-unknown-redox + ;; mips:OSF1:*.*) - echo mips-dec-osf1 - exit ;; + GUESS=mips-dec-osf1 + ;; alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 case $UNAME_RELEASE in *4.0) - UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) - UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) - case "$ALPHA_CPU_TYPE" in + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") @@ -346,68 +366,69 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; + GUESS=m68k-unknown-sysv4 + ;; *:[Aa]miga[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-amigaos - exit ;; + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; *:[Mm]orph[Oo][Ss]:*:*) - echo "$UNAME_MACHINE"-unknown-morphos - exit ;; + GUESS=$UNAME_MACHINE-unknown-morphos + ;; *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; + GUESS=i370-ibm-openedition + ;; *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; + GUESS=s390-ibm-zvmoe + ;; *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; + GUESS=powerpc-ibm-os400 + ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix"$UNAME_RELEASE" - exit ;; + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; arm*:riscos:*:*|arm*:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; + GUESS=arm-unknown-riscos + ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; + GUESS=hppa1.1-hitachi-hiuxmpp + ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "$( (/bin/universe) 2>/dev/null)" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; + GUESS=pyramid-pyramid-svr4 + ;; DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; + GUESS=sparc-icl-nx6 + ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case $(/usr/bin/uname -p) in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; + case `/usr/bin/uname -p` in + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; s390x:SunOS:*:*) - echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) set_cc_for_build SUN_ARCH=i386 @@ -416,47 +437,50 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # This test works for both compilers. if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi - echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; sun4*:SunOS:*:*) - case "$(/usr/bin/arch -k)" in + case `/usr/bin/arch -k` in Series*|S4*) - UNAME_RELEASE=$(uname -v) + UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; sun*:*:4.2BSD:*) - UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "$(/bin/arch)" in + case `/bin/arch` in sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" + GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) - echo sparc-sun-sunos"$UNAME_RELEASE" + GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac - exit ;; + ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor @@ -466,41 +490,41 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; m68k:machten:*:*) - echo m68k-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; powerpc:machten:*:*) - echo powerpc-apple-machten"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; + GUESS=mips-dec-mach_bsd4.3 + ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix"$UNAME_RELEASE" - exit ;; + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix"$UNAME_RELEASE" - exit ;; + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; mips:*:*:UMIPS | mips:*:*:RISCos) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" @@ -525,78 +549,79 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && - dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && - SYSTEM_NAME=$("$dummy" "$dummyarg") && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; + GUESS=powerpc-motorola-powermax + ;; Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; + GUESS=powerpc-harris-powermax + ;; Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; + GUESS=powerpc-harris-powerunix + ;; m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; + GUESS=m88k-harris-cxux7 + ;; m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; + GUESS=m88k-motorola-sysv4 + ;; m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=$(/usr/bin/uname -p) + UNAME_PROCESSOR=`/usr/bin/uname -p` if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ test "$TARGET_BINARY_INTERFACE"x = x then - echo m88k-dg-dgux"$UNAME_RELEASE" + GUESS=m88k-dg-dgux$UNAME_RELEASE else - echo m88k-dg-dguxbcs"$UNAME_RELEASE" + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else - echo i586-dg-dgux"$UNAME_RELEASE" + GUESS=i586-dg-dgux$UNAME_RELEASE fi - exit ;; + ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; + GUESS=m88k-dolphin-sysv3 + ;; M88*:*:R3*:*) # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; + GUESS=m88k-motorola-sysv3 + ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; + GUESS=m88k-tektronix-sysv3 + ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; + GUESS=m68k-tektronix-bsd + ;; *:IRIX*:*:*) - echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" - exit ;; + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; + GUESS=i386-ibm-aix + ;; ia64:AIX:*:*) if test -x /usr/bin/oslevel ; then - IBM_REV=$(/usr/bin/oslevel) + IBM_REV=`/usr/bin/oslevel` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then set_cc_for_build @@ -611,68 +636,68 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then - echo "$SYSTEM_NAME" + GUESS=$SYSTEM_NAME else - echo rs6000-ibm-aix3.2.5 + GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 + GUESS=rs6000-ibm-aix3.2.4 else - echo rs6000-ibm-aix3.2 + GUESS=rs6000-ibm-aix3.2 fi - exit ;; + ;; *:AIX:*:[4567]) - IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if test -x /usr/bin/lslpp ; then - IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | - awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi - echo "$IBM_ARCH"-ibm-aix"$IBM_REV" - exit ;; + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; + GUESS=rs6000-ibm-aix + ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) - echo romp-ibm-bsd4.4 - exit ;; + GUESS=romp-ibm-bsd4.4 + ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; + GUESS=rs6000-bull-bosx + ;; DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; + GUESS=m68k-bull-sysv3 + ;; 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; + GUESS=m68k-hp-bsd + ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; + GUESS=m68k-hp-bsd4.4 + ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') - case "$UNAME_MACHINE" in + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if test -x /usr/bin/getconf; then - sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) - sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) - case "$sc_cpu_version" in + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in + case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 @@ -714,7 +739,7 @@ EOF exit (0); } EOF - (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac @@ -739,12 +764,12 @@ EOF HP_ARCH=hppa64 fi fi - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; ia64:HP-UX:*:*) - HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') - echo ia64-hp-hpux"$HPUX_REV" - exit ;; + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; 3050*:HI-UX:*:*) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" @@ -772,38 +797,38 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; + GUESS=unknown-hitachi-hiuxwe2 + ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) - echo hppa1.1-hp-bsd - exit ;; + GUESS=hppa1.1-hp-bsd + ;; 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; + GUESS=hppa1.0-hp-bsd + ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; + GUESS=hppa1.0-hp-mpeix + ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) - echo hppa1.1-hp-osf - exit ;; + GUESS=hppa1.1-hp-osf + ;; hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; + GUESS=hppa1.0-hp-osf + ;; i*86:OSF1:*:*) if test -x /usr/sbin/sysversion ; then - echo "$UNAME_MACHINE"-unknown-osf1mk + GUESS=$UNAME_MACHINE-unknown-osf1mk else - echo "$UNAME_MACHINE"-unknown-osf1 + GUESS=$UNAME_MACHINE-unknown-osf1 fi - exit ;; + ;; parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; + GUESS=hppa1.1-hp-lites + ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; + GUESS=c1-convex-bsd + ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd @@ -811,17 +836,18 @@ EOF fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; + GUESS=c34-convex-bsd + ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; + GUESS=c38-convex-bsd + ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; + GUESS=c4-convex-bsd + ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ @@ -829,114 +855,135 @@ EOF -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) - FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') - FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') - FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; *:BSD/OS:*:*) - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; arm:FreeBSD:*:*) - UNAME_PROCESSOR=$(uname -p) + UNAME_PROCESSOR=`uname -p` set_cc_for_build if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi else - echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf fi - exit ;; + ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=$(/usr/bin/uname -p) - case "$UNAME_PROCESSOR" in + UNAME_PROCESSOR=`/usr/bin/uname -p` + case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" - exit ;; + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin - exit ;; + GUESS=$UNAME_MACHINE-pc-cygwin + ;; *:MINGW64*:*) - echo "$UNAME_MACHINE"-pc-mingw64 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; *:MINGW*:*) - echo "$UNAME_MACHINE"-pc-mingw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; *:MSYS*:*) - echo "$UNAME_MACHINE"-pc-msys - exit ;; + GUESS=$UNAME_MACHINE-pc-msys + ;; i*:PW*:*) - echo "$UNAME_MACHINE"-pc-pw32 - exit ;; + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; *:Interix*:*) - case "$UNAME_MACHINE" in + case $UNAME_MACHINE in x86) - echo i586-pc-interix"$UNAME_RELEASE" - exit ;; + GUESS=i586-pc-interix$UNAME_RELEASE + ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; IA64) - echo ia64-unknown-interix"$UNAME_RELEASE" - exit ;; + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; esac ;; i*:UWIN*:*) - echo "$UNAME_MACHINE"-pc-uwin - exit ;; + GUESS=$UNAME_MACHINE-pc-uwin + ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-pc-cygwin - exit ;; + GUESS=x86_64-pc-cygwin + ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; *:GNU:*:*) # the GNU system - echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" - exit ;; + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; *:GNU/*:*:*) # other systems with GNU libc and userland - echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" - exit ;; + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-pc-managarm-mlibc" + ;; + *:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" + ;; *:Minix:*:*) - echo "$UNAME_MACHINE"-unknown-minix - exit ;; + GUESS=$UNAME_MACHINE-unknown-minix + ;; aarch64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; alpha:Linux:*:*) - case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; @@ -947,63 +994,63 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - arc:Linux:*:* | arceb:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; arm*:Linux:*:*) set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi - exit ;; + ;; avr32*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; cris:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; crisv32:Linux:*:*) - echo "$UNAME_MACHINE"-axis-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; e2k:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; frv:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; hexagon:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:Linux:*:*) - echo "$UNAME_MACHINE"-pc-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; ia64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; k1om:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m32r*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; m68*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; mips:Linux:*:* | mips64:Linux:*:*) set_cc_for_build IS_GLIBC=0 @@ -1048,138 +1095,150 @@ EOF #endif #endif EOF - eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-"$LIBC" - exit ;; + GUESS=or1k-unknown-linux-$LIBC + ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; padre:Linux:*:*) - echo sparc-unknown-linux-"$LIBC" - exit ;; + GUESS=sparc-unknown-linux-$LIBC + ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-"$LIBC" - exit ;; + GUESS=hppa64-unknown-linux-$LIBC + ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level - case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; esac - exit ;; + ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64-unknown-linux-$LIBC + ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc-unknown-linux-$LIBC + ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpc64le-unknown-linux-$LIBC + ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-"$LIBC" - exit ;; + GUESS=powerpcle-unknown-linux-$LIBC + ;; riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; s390:Linux:*:* | s390x:Linux:*:*) - echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; sh64*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sh*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; tile*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; vax:Linux:*:*) - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; x86_64:Linux:*:*) set_cc_for_build + CPU=$UNAME_MACHINE LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then - if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ - (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_X32 >/dev/null - then - LIBCABI="$LIBC"x32 - fi + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __i386__ + ABI=x86 + #else + #ifdef __ILP32__ + ABI=x32 + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + x86) CPU=i686 ;; + x32) LIBCABI=${LIBC}x32 ;; + esac fi - echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" - exit ;; + GUESS=$CPU-pc-linux-$LIBCABI + ;; xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; + GUESS=i386-sequent-sysv4 + ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" - exit ;; + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo "$UNAME_MACHINE"-pc-os2-emx - exit ;; + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; i*86:XTS-300:*:STOP) - echo "$UNAME_MACHINE"-unknown-stop - exit ;; + GUESS=$UNAME_MACHINE-unknown-stop + ;; i*86:atheos:*:*) - echo "$UNAME_MACHINE"-unknown-atheos - exit ;; + GUESS=$UNAME_MACHINE-unknown-atheos + ;; i*86:syllable:*:*) - echo "$UNAME_MACHINE"-pc-syllable - exit ;; + GUESS=$UNAME_MACHINE-pc-syllable + ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; i*86:*DOS:*:*) - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; i*86:*:4.*:*) - UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi - exit ;; + ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. - case $(/bin/uname -X | grep "^Machine") in + case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" - exit ;; + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then - UNAME_REL=$(sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 @@ -1187,11 +1246,11 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else - echo "$UNAME_MACHINE"-pc-sysv32 + GUESS=$UNAME_MACHINE-pc-sysv32 fi - exit ;; + ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about @@ -1199,37 +1258,37 @@ EOF # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; + GUESS=i586-pc-msdosdjgpp + ;; Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; + GUESS=i386-pc-mach3 + ;; paragon:*:*:*) - echo i860-intel-osf1 - exit ;; + GUESS=i860-intel-osf1 + ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi - exit ;; + ;; mini*:CTIX:SYS*5:*) # "miniframe" - echo m68010-convergent-sysv - exit ;; + GUESS=m68010-convergent-sysv + ;; mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; + GUESS=m68k-convergent-sysv + ;; M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; + GUESS=m68k-diab-dnix + ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ - && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ @@ -1240,7 +1299,7 @@ EOF NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ - && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ @@ -1248,118 +1307,121 @@ EOF /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; + GUESS=m68k-atari-sysv4 + ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv"$UNAME_RELEASE" - exit ;; + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; + GUESS=mips-sni-sysv4 + ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=$( (uname -p) 2>/dev/null) - echo "$UNAME_MACHINE"-sni-sysv4 + UNAME_MACHINE=`(uname -p) 2>/dev/null` + GUESS=$UNAME_MACHINE-sni-sysv4 else - echo ns32k-sni-sysv + GUESS=ns32k-sni-sysv fi - exit ;; + ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says - echo i586-unisys-sysv4 - exit ;; + GUESS=i586-unisys-sysv4 + ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; + GUESS=hppa1.1-stratus-sysv4 + ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; + GUESS=i860-stratus-sysv4 + ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo "$UNAME_MACHINE"-stratus-vos - exit ;; + GUESS=$UNAME_MACHINE-stratus-vos + ;; *:VOS:*:*) # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; + GUESS=hppa1.1-stratus-vos + ;; mc68*:A/UX:*:*) - echo m68k-apple-aux"$UNAME_RELEASE" - exit ;; + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; + GUESS=mips-sony-newsos6 + ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if test -d /usr/nec; then - echo mips-nec-sysv"$UNAME_RELEASE" + GUESS=mips-nec-sysv$UNAME_RELEASE else - echo mips-unknown-sysv"$UNAME_RELEASE" + GUESS=mips-unknown-sysv$UNAME_RELEASE fi - exit ;; + ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; + GUESS=powerpc-be-beos + ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; + GUESS=powerpc-apple-beos + ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; + GUESS=i586-pc-beos + ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - x86_64:Haiku:*:*) - echo x86_64-unknown-haiku - exit ;; + GUESS=i586-pc-haiku + ;; + ppc:Haiku:*:*) # Haiku running on Apple PowerPC + GUESS=powerpc-apple-haiku + ;; + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) + GUESS=$UNAME_MACHINE-unknown-haiku + ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux"$UNAME_RELEASE" - exit ;; + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; arm64:Darwin:*:*) - echo aarch64-apple-darwin"$UNAME_RELEASE" - exit ;; + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; *:Darwin:*:*) - UNAME_PROCESSOR=$(uname -p) + UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac @@ -1393,109 +1455,119 @@ EOF # uname -m returns i386 or x86_64 UNAME_PROCESSOR=$UNAME_MACHINE fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=$(uname -p) + UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; *:QNX:*:4*) - echo i386-pc-qnx - exit ;; + GUESS=i386-pc-qnx + ;; NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; NSV-*:NONSTOP_KERNEL:*:*) - echo nsv-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk"$UNAME_RELEASE" - exit ;; + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; + GUESS=mips-compaq-nonstopux + ;; BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; + GUESS=bs2000-siemens-sysv + ;; DS/*:UNIX_System_V:*:*) - echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - # shellcheck disable=SC2154 - if test "$cputype" = 386; then + if test "${cputype-}" = 386; then UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype fi - echo "$UNAME_MACHINE"-unknown-plan9 - exit ;; + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; + GUESS=pdp10-unknown-tops10 + ;; *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; + GUESS=pdp10-unknown-tenex + ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; + GUESS=pdp10-dec-tops20 + ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; + GUESS=pdp10-xkl-tops20 + ;; *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; + GUESS=pdp10-unknown-tops20 + ;; *:ITS:*:*) - echo pdp10-unknown-its - exit ;; + GUESS=pdp10-unknown-its + ;; SEI:*:*:SEIUX) - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; *:DragonFly:*:*) - echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" - exit ;; + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; *:*VMS:*:*) - UNAME_MACHINE=$( (uname -p) 2>/dev/null) - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; + GUESS=i386-pc-xenix + ;; i*86:skyos:*:*) - echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" - exit ;; + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos - exit ;; + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; *:AROS:*:*) - echo "$UNAME_MACHINE"-unknown-aros - exit ;; + GUESS=$UNAME_MACHINE-unknown-aros + ;; x86_64:VMkernel:*:*) - echo "$UNAME_MACHINE"-unknown-esx - exit ;; + GUESS=$UNAME_MACHINE-unknown-esx + ;; amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; + GUESS=x86_64-unknown-onefs + ;; *:Unleashed:*:*) - echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" - exit ;; + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; esac +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + # No uname command or uname output not recognized. set_cc_for_build cat > "$dummy.c" </dev/null); + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else @@ -1627,7 +1699,7 @@ main () } EOF -$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. @@ -1635,7 +1707,7 @@ test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } echo "$0: unable to guess system type" >&2 -case "$UNAME_MACHINE:$UNAME_SYSTEM" in +case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 </dev/null || echo unknown) -uname -r = $( (uname -r) 2>/dev/null || echo unknown) -uname -s = $( (uname -s) 2>/dev/null || echo unknown) -uname -v = $( (uname -v) 2>/dev/null || echo unknown) +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` -/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) -/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` -hostinfo = $( (hostinfo) 2>/dev/null) -/bin/universe = $( (/bin/universe) 2>/dev/null) -/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) -/bin/arch = $( (/bin/arch) 2>/dev/null) -/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) -/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = "$UNAME_MACHINE" UNAME_RELEASE = "$UNAME_RELEASE" diff --git a/scripts/config.sub b/scripts/config.sub index 63c1f1c8b5..d6731d655c 100755 --- a/scripts/config.sub +++ b/scripts/config.sub @@ -1,12 +1,14 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2021 Free Software Foundation, Inc. +# Copyright 1992-2023 Free Software Foundation, Inc. -timestamp='2021-01-08' +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2023-01-01' # This file 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 +# 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 @@ -50,7 +52,14 @@ timestamp='2021-01-08' # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. -me=$(echo "$0" | sed -e 's,.*/,,') +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS @@ -67,7 +76,7 @@ Report bugs and patches to ." version="\ GNU config.sub ($timestamp) -Copyright 1992-2021 Free Software Foundation, Inc. +Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -112,9 +121,11 @@ esac # Split fields of configuration type # shellcheck disable=SC2162 +saved_IFS=$IFS IFS="-" read field1 field2 field3 field4 <&2 exit 1 @@ -1742,16 +1778,27 @@ esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. case $kernel-$os in - linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* ) + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) ;; uclinux-uclibc* ) ;; - -dietlibc* | -newlib* | -musl* | -uclibc* ) + managarm-mlibc* | managarm-kernel* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 exit 1 ;; + -kernel* ) + echo "Invalid configuration \`$1': \`$os' needs explicit kernel." 1>&2 + exit 1 + ;; + *-kernel* ) + echo "Invalid configuration \`$1': \`$kernel' does not support \`$os'." 1>&2 + exit 1 + ;; kfreebsd*-gnu* | kopensolaris*-gnu*) ;; vxworks-simlinux | vxworks-simwindows | vxworks-spe) diff --git a/scripts/mkpkg b/scripts/mkpkg index b477c80531..dd4f4492fe 100755 --- a/scripts/mkpkg +++ b/scripts/mkpkg @@ -2,7 +2,7 @@ # # SPDX-License-Identifier: ISC # -# Copyright (c) 2010-2020 Todd C. Miller +# Copyright (c) 2010-2023 Todd C. Miller # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -17,7 +17,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # # Build a binary package using polypkg -# Usage: mkpkg [--debug] [--flavor flavor] [--platform platform] [--osversion ver] +# Usage: mkpkg [--build-only] [--debug] [--flavor flavor] [--platform platform] [--osversion ver] # # Make sure IFS is set to space, tab, newline in that order. @@ -28,10 +28,11 @@ nl=' IFS=" $nl" # Parse arguments -usage="usage: mkpkg [--debug] [--flavor flavor] [--platform platform] [--osversion ver]" +usage="usage: mkpkg [--build-only] [--debug] [--flavor flavor] [--platform platform] [--osversion ver]" debug=0 flavor=vanilla crossbuild=false +build_packages=true; while test $# -gt 0; do case "$1" in --debug) @@ -80,6 +81,9 @@ while test $# -gt 0; do crossbuild=true configure_opts="${configure_opts}${configure_opts+$tab}$1" ;; + --build-only) + build_packages=false + ;; *) # Pass unknown options to configure configure_opts="${configure_opts}${configure_opts+$tab}$1" @@ -91,11 +95,15 @@ done scriptdir=`dirname $0` configure="${scriptdir}/../configure" -: ${osversion="`$scriptdir/pp --probe`"} -test -n "$osversion" || exit 1 +: ${osversion="`$scriptdir/pp --probe 2>/dev/null || echo unknown`"} osrelease=`echo "$osversion" | sed -e 's/^[^0-9]*//' -e 's/-.*$//'` : ${MAKE=make} +if [ $build_packages = true -a $osversion = unknown ]; then + echo "unable to determine platform" 1>&2 + exit 1 +fi + # If using GNU make, set number of jobs if ${MAKE} --version 2>&1 | grep GNU >/dev/null; then NJOBS=0 @@ -105,10 +113,10 @@ if ${MAKE} --version 2>&1 | grep GNU >/dev/null; then NJOBS=`sysctl -n hw.ncpu` ;; Linux) - if [ -r /proc/cpuinfo ]; then - for c in `sed -n 's/^cpu cores[ ]*: *//p' /proc/cpuinfo`; do - NJOBS=`expr $NJOBS + $c` - done + if [ -x /usr/bin/nproc ]; then + NJOBS=`/usr/bin/nproc` + elif [ -r /proc/cpuinfo ]; then + NJOBS=`grep ^processor /proc/cpuinfo | wc -l` fi ;; SunOS) @@ -136,9 +144,9 @@ fi if [ "$crossbuild" = "false" ]; then case "$osversion" in FreeBSD*|macos*) - # Use the system compiler on FreeBSD and macOS - if [ -z "$CC" -a -x /usr/bin/cc ]; then - CC=/usr/bin/cc; export CC + # Use clang, not gcc, on FreeBSD and macOS + if [ -z "$CC" ]; then + CC=clang; export CC fi ;; esac @@ -369,20 +377,34 @@ case "$osversion" in sdkvers=`echo "${osversion}" | sed -e 's/^macos\([0-9][0-9]\)\([0-9]*\)-.*$/\1.\2/' -e 's/\.$//'` # SDKs may be under Xcode.app or CommandLineTools (for non-Xcode) if [ -d "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs" ]; then - SDK_DIR="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs" + SDKS="/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs" elif [ -d "/Library/Developer/CommandLineTools/SDKs" ]; then - SDK_DIR="/Library/Developer/CommandLineTools/SDKs" + SDKS="/Library/Developer/CommandLineTools/SDKs" else echo "unable to find macOS SDKs directory" 1>&2 exit 1 fi - SDK_DIR="${SDK_DIR}/MacOSX${sdkvers}.sdk" - if [ -d "${SDK_DIR}" ]; then - SDK_FLAGS="-isysroot ${SDK_DIR} -mmacosx-version-min=${sdkvers}" - else - echo "unable to find SDKs directory for macOS $sdkvers" 1>&2 - exit 1 - fi + while :; do + SDK_DIR="${SDKS}/MacOSX${sdkvers}.sdk" + if [ -d "${SDK_DIR}" ]; then + SDK_FLAGS="-isysroot ${SDK_DIR} -mmacosx-version-min=${sdkvers}" + break + fi + case "$sdkvers" in + *.00) + # Try MacOSXMM.0.sdk + sdkvers=${sdkvers%0} + ;; + *.0) + # Try MacOSXMM.sdk + sdkvers=${sdkvers%.0} + ;; + *) + echo "missing $SDK_DIR" 1>&2 + exit 1 + ;; + esac + done fi export CFLAGS="-O2 -g $ARCH_FLAGS $SDK_FLAGS" export LDFLAGS="$ARCH_FLAGS $SDK_FLAGS" @@ -422,7 +444,7 @@ case "$osversion" in $configure_opts" PPVARS="${PPVARS}${PPVARS+$space}aix_freeware=true" ;; - FreeBSD*) + FreeBSD*|DragonFly*) # Encrypted remote I/O log support. with_openssl=true @@ -531,7 +553,9 @@ if [ -r Makefile ]; then fi ${configure} "$@" || exit $? ${MAKE} $make_opts || exit $? -${MAKE} $make_opts PPFLAGS="$PPFLAGS" PPVARS="$PPVARS" package +if [ $build_packages = true ]; then + ${MAKE} $make_opts PPFLAGS="$PPFLAGS" PPVARS="$PPVARS" package +fi exitval=$? test $debug -eq 0 && rm -rf destdir diff --git a/scripts/pp b/scripts/pp index f3eba3e1d8..855acc425b 100755 --- a/scripts/pp +++ b/scripts/pp @@ -1,6 +1,6 @@ #!/bin/sh -# Copyright 2021 One Identity LLC. ALL RIGHTS RESERVED -pp_revision="20211119" +# Copyright 2023 One Identity LLC. ALL RIGHTS RESERVED +pp_revision="20230127" # Copyright 2018 One Identity LLC. ALL RIGHTS RESERVED. # # Redistribution and use in source and binary forms, with or without @@ -3937,7 +3937,7 @@ pp_deb_check_required_programs () { needed= notfound= for prog in dpkg dpkg-deb install md5sum fakeroot do - if which $prog 2>/dev/null >/dev/null; then + if command -v $prog 2>/dev/null >/dev/null; then pp_debug "$prog: found" else pp_debug "$prog: not found" @@ -5569,6 +5569,8 @@ pp_rpm_detect_distro () { pp_rpm_distro=`sed -n \ -e 's/^Red Hat Linux.*release \([0-9][0-9\.]*\).*/rh\1/p' \ -e 's/^Red Hat Enterprise Linux.*release \([0-9][0-9\.]*\).*/rhel\1/p' \ + -e 's/^Rocky Linux.*release \([0-9][0-9\.]*\).*/rhel\1/p' \ + -e 's/^AlmaLinux.*release \([0-9][0-9\.]*\).*/rhel\1/p' \ -e 's/^CentOS.*release \([0-9][0-9\.]*\).*/centos\1/p' \ /etc/redhat-release` elif test -f /etc/SuSE-release; then @@ -5600,7 +5602,7 @@ pp_rpm_detect_distro () { pp_rpm_detect_rpmbuild () { local cmd for cmd in rpmbuild rpm; do - if `which $cmd > /dev/null 2>&1`; then + if command -v $cmd > /dev/null 2>&1; then echo $cmd return 0 fi @@ -7929,7 +7931,7 @@ pp_bsd_munge_text () { } pp_backend_bsd_detect () { - test x"$1" = x"FreeBSD" + test x"$1" = x"FreeBSD" -o x"$1" = x"DragonFly" } pp_backend_bsd_init () { @@ -7937,7 +7939,7 @@ pp_backend_bsd_init () { # Get the OS revision pp_bsd_detect_os - # Get the arch (i386/amd64) + # Get the arch (i386/x86_64) pp_bsd_detect_arch pp_bsd_name= @@ -7952,6 +7954,13 @@ pp_backend_bsd_init () { pp_bsd_desc= pp_bsd_message= + # FreeBSD uses package.txz, DragonFly uses package.pkg. + if [ "$pp_bsd_os" = "DragonFly" ]; then + pp_bsd_pkg_sfx=pkg + else + pp_bsd_pkg_sfx=txz + fi + # pp_bsd_category must be in array format comma separated # pp_bsd_category=[security,network] pp_bsd_category= @@ -7999,7 +8008,7 @@ pp_bsd_check_required_programs () { # list of programs FreeBSD needs in order to create a binary package for prog in ${pp_bsd_required_programs:-"pkg"} do - if which $prog 2>&1 > /dev/null; then + if command -v $prog 2>&1 > /dev/null; then pp_debug "$prog: found" else pp_debug "$prog: not found" @@ -8028,7 +8037,7 @@ pp_bsd_detect_os () { pp_bsd_detect_arch() { pp_bsd_platform="`uname -m`" case $pp_bsd_platform in - amd64) pp_bsd_platform_std=x86_64;; + amd64|x86_64) pp_bsd_platform_std=x86_64;; i386) pp_bsd_platform_std=i386;; *) pp_bsd_platform_std=unknown;; esac @@ -8203,8 +8212,8 @@ pp_bsd_make_data() { mkdir -p `dirname "$datadir$path"` fi - pp_debug "install -D $datadir -o $o -g $g -h sha256 -m ${m} -v $pp_destdir$p $datadir$path" - pp_bsd_fakeroot install -D $datadir -o $o -g $g -h sha256 -m ${m} -v $pp_destdir$p $datadir$path + pp_debug "install -D $datadir -o $o -g $g -m ${m} -v $pp_destdir$p $datadir$path" + pp_bsd_fakeroot install -D $datadir -o $o -g $g -m ${m} -v $pp_destdir$p $datadir$path echo " \"$path\": \"-\", \"$path\": {uname: $o, gname: $g, perm: ${m}}" >> $outfilelist ;; esac @@ -8358,12 +8367,12 @@ pp_backend_bsd() { pp_bsd_name () { typeset cmp="${1:-run}" - echo `pp_bsd_cmp_full_name $cmp`"-${pp_bsd_version:-$version}.txz" + echo `pp_bsd_cmp_full_name $cmp`"-${pp_bsd_version:-$version}.${pp_bsd_pkg_sfx}" } pp_backend_bsd_names () { for cmp in $pp_components; do - echo `pp_bsd_cmp_full_name $cmp`"-${pp_bsd_version:-$version}.txz" + echo `pp_bsd_cmp_full_name $cmp`"-${pp_bsd_version:-$version}.${pp_bsd_pkg_sfx}" done } @@ -8379,8 +8388,8 @@ pp_backend_bsd_probe () { pp_backend_bsd_vas_platforms() { case "${pp_bsd_platform_std}" in - x86_64) echo "FreeBSD-x86_64.txz FreeBSD-i386.txz";; - i386) echo "FreeBSD-i386.txz";; + x86_64) echo "FreeBSD-x86_64.${pp_bsd_pkg_sfx} FreeBSD-i386.${pp_bsd_pkg_sfx}";; + i386) echo "FreeBSD-i386.${pp_bsd_pkg_sfx}";; *) pp_die "unknown architecture $pp_bsd_platform_std";; esac } @@ -8960,10 +8969,18 @@ pp_systemd_service_install_common () { # we do this so we do not "orphan" the process. Because init started it and if we enable systemd # it will not know about this process and will not be able to stop it. if [ -x "/etc/init.d/$svc" ]; then - /etc/init.d/$svc status > /dev/null 2>&1 + output="$(/etc/init.d/$svc status 2>&1)" RUNNING=$? if [ $RUNNING -eq 0 ]; then - /etc/init.d/$svc stop > /dev/null 2>&1 + case "$output" in + *"not running"*) + # systemd is reporting the status (compatibility package is installed) + RUNNING=1 + ;; + *) # it is really running + /etc/init.d/$svc stop > /dev/null 2>&1 + ;; + esac fi else RUNNING=1 diff --git a/src/Makefile.in b/src/Makefile.in index bfa9415651..6a947da683 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -35,7 +35,7 @@ cross_compiling = @CROSS_COMPILING@ # Compiler & tools to use CC = @CC@ LIBTOOL = @LIBTOOL@ -GREP = @GREP@ +EGREP = @EGREP@ SED = @SED@ AWK = @AWK@ @@ -332,11 +332,9 @@ check-fuzzer: check: $(TEST_PROGS) check-fuzzer @if test X"$(cross_compiling)" != X"yes"; then \ - if locale -a 2>&1 | $(GREP) '^C.UTF-8$$' >/dev/null 2>&1; then \ - LC_ALL=C.UTF-8; export LC_ALL; \ - else \ - LC_ALL=C; export LC_ALL; \ - fi; \ + l=`locale -a 2>&1 | $(EGREP) -i '^C.UTF-?8$$'` || true; \ + test -n "$$l" || l="C"; \ + LC_ALL="$$l"; export LC_ALL; \ unset LANG || LANG=; \ unset LANGUAGE || LANGUAGE=; \ MALLOC_OPTIONS=S; export MALLOC_OPTIONS; \ diff --git a/src/exec_intercept.c b/src/exec_intercept.c index 423dc0dfbb..1846124499 100644 --- a/src/exec_intercept.c +++ b/src/exec_intercept.c @@ -361,34 +361,36 @@ update_command_info(char * const *old_command_info, const char *cmnd, */ bool intercept_check_policy(const char *command, int argc, char **argv, int envc, - char **envp, const char *runcwd, void *v) + char **envp, const char *runcwd, int *oldcwd, void *v) { struct intercept_closure *closure = v; char **command_info = NULL; char **command_info_copy = NULL; char **user_env_out = NULL; char **run_argv = NULL; - bool ret = true; int i, rc, saved_dir = -1; + bool ret = true; + struct stat sb; debug_decl(intercept_check_policy, SUDO_DEBUG_EXEC); - if (ISSET(closure->details->flags, CD_INTERCEPT)) { - /* Change to runcwd for the policy check if necessary. */ - if (*command != '/') { - if (runcwd == NULL || (saved_dir = open(".", O_RDONLY)) == -1 || - chdir(runcwd) == -1) { - if (runcwd == NULL) { - sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO, - "relative command path but no runcwd specified"); - } else if (saved_dir == -1) { - sudo_debug_printf( - SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO, - "unable to open current directory for reading"); - } else { - sudo_debug_printf( - SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO, - "unable to chdir for %s", runcwd); - } + /* Change to runcwd before the policy check if necessary. */ + if (*command != '/') { + if (runcwd == NULL || (saved_dir = open(".", O_RDONLY)) == -1 || + chdir(runcwd) == -1) { + if (runcwd == NULL) { + sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO, + "relative command path but no runcwd specified"); + } else if (saved_dir == -1) { + sudo_debug_printf( + SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO, + "unable to open current directory for reading"); + } else { + sudo_debug_printf( + SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO|SUDO_DEBUG_ERRNO, + "unable to chdir for %s", runcwd); + } + if (ISSET(closure->details->flags, CD_INTERCEPT)) { + /* Inability to change cwd is fatal in intercept mode. */ if (closure->errstr == NULL) closure->errstr = N_("command rejected by policy"); audit_reject(policy_plugin.name, SUDO_POLICY_PLUGIN, @@ -397,7 +399,19 @@ intercept_check_policy(const char *command, int argc, char **argv, int envc, goto done; } } + } + /* + * Short-circuit the policy check if the command doesn't exist. + * Otherwise, both sudo and the shell will report the error. + */ + if (stat(command, &sb) == -1) { + closure->errstr = NULL; + closure->state = POLICY_ERROR; + goto done; + } + + if (ISSET(closure->details->flags, CD_INTERCEPT)) { /* We don't currently have a good way to validate the environment. */ sudo_debug_set_active_instance(policy_plugin.debug_instance); rc = policy_plugin.u.policy->check_policy(argc, argv, NULL, @@ -504,28 +518,29 @@ intercept_check_policy(const char *command, int argc, char **argv, int envc, closure->errstr = N_("unable to allocate memory"); bad: - if (closure->errstr == NULL) - closure->errstr = N_("policy plugin error"); - audit_error(policy_plugin.name, SUDO_POLICY_PLUGIN, closure->errstr, - command_info ? command_info : closure->details->info); - closure->state = POLICY_ERROR; - ret = false; - -done: if (saved_dir != -1) { if (fchdir(saved_dir) == -1) { sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_ERRNO, "%s: unable to restore saved cwd", __func__); } close(saved_dir); + saved_dir = -1; } + if (closure->errstr == NULL) + closure->errstr = N_("policy plugin error"); + audit_error(policy_plugin.name, SUDO_POLICY_PLUGIN, closure->errstr, + command_info ? command_info : closure->details->info); + closure->state = POLICY_ERROR; + ret = false; +done: if (command_info_copy != NULL) { for (i = 0; command_info_copy[i] != NULL; i++) { free(command_info_copy[i]); } free(command_info_copy); } + *oldcwd = saved_dir; debug_return_bool(ret); } @@ -536,6 +551,7 @@ intercept_check_policy_req(PolicyCheckRequest *req, { char **argv = NULL; bool ret = false; + int oldcwd = -1; size_t n; debug_decl(intercept_check_policy_req, SUDO_DEBUG_EXEC); @@ -573,9 +589,17 @@ intercept_check_policy_req(PolicyCheckRequest *req, argv[n] = NULL; ret = intercept_check_policy(req->command, req->n_argv, argv, req->n_envp, - req->envp, req->cwd, closure); + req->envp, req->cwd, &oldcwd, closure); done: + if (oldcwd != -1) { + if (fchdir(oldcwd) == -1) { + sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_ERRNO, + "%s: unable to restore saved cwd", __func__); + } + close(oldcwd); + } + free(argv); debug_return_bool(ret); @@ -642,10 +666,10 @@ intercept_read(int fd, struct intercept_closure *closure) goto done; default: if (errno == EINTR || errno == EAGAIN) { - debug_return_bool(true); sudo_debug_printf( SUDO_DEBUG_WARN|SUDO_DEBUG_ERRNO|SUDO_DEBUG_LINENO, "reading intercept token"); + debug_return_bool(true); } sudo_warn("recv"); goto done; diff --git a/src/exec_intercept.h b/src/exec_intercept.h index baf429bb6c..ed145887c7 100644 --- a/src/exec_intercept.h +++ b/src/exec_intercept.h @@ -50,6 +50,6 @@ struct intercept_closure { }; void intercept_closure_reset(struct intercept_closure *closure); -bool intercept_check_policy(const char *command, int argc, char **argv, int envc, char **envp, const char *runcwd, void *closure); +bool intercept_check_policy(const char *command, int argc, char **argv, int envc, char **envp, const char *runcwd, int *oldcwd, void *closure); #endif /* SUDO_EXEC_INTERCEPT_H */ diff --git a/src/exec_monitor.c b/src/exec_monitor.c index 8c94182a4f..a92ed40992 100644 --- a/src/exec_monitor.c +++ b/src/exec_monitor.c @@ -282,12 +282,14 @@ mon_signal_cb(int signo, int what, void *v) * reboot that call kill(-1, SIGTERM) to kill all other processes. */ if (USER_SIGNALED(sc->siginfo) && sc->siginfo->si_pid != 0) { - pid_t si_pgrp = getpgid(sc->siginfo->si_pid); + pid_t si_pgrp; + + if (sc->siginfo->si_pid == mc->cmnd_pid) + debug_return; + si_pgrp = getpgid(sc->siginfo->si_pid); if (si_pgrp != -1) { if (si_pgrp == mc->cmnd_pgrp) debug_return; - } else if (sc->siginfo->si_pid == mc->cmnd_pid) { - debug_return; } } deliver_signal(mc, signo, false); diff --git a/src/exec_nopty.c b/src/exec_nopty.c index bd91e3ae6c..8122c6ab8e 100644 --- a/src/exec_nopty.c +++ b/src/exec_nopty.c @@ -122,6 +122,7 @@ signal_cb_nopty(int signo, int what, void *v) struct sudo_ev_siginfo_container *sc = v; struct exec_closure *ec = sc->closure; char signame[SIG2STR_MAX]; + pid_t si_pgrp; debug_decl(signal_cb_nopty, SUDO_DEBUG_EXEC); if (ec->cmnd_pid == -1) @@ -151,38 +152,40 @@ signal_cb_nopty(int signo, int what, void *v) case SIGQUIT: case SIGTSTP: /* - * Only forward user-generated signals not sent by a process in - * the command's own process group. Signals sent by the kernel - * may include SIGTSTP when the user presses ^Z. Curses programs - * often trap ^Z and send SIGTSTP to their own pgrp, so we don't - * want to send an extra SIGTSTP. + * Only forward user-generated signals not sent by a process other than + * the command itself or a member of the command's process group (but + * only when either sudo or the command is the process group leader). + * Signals sent by the kernel may include SIGTSTP when the user presses + * ^Z. Curses programs often trap ^Z and send SIGTSTP to their own + * process group, so we don't want to send an extra SIGTSTP. */ if (!USER_SIGNALED(sc->siginfo)) debug_return; if (sc->siginfo->si_pid != 0) { - pid_t si_pgrp = getpgid(sc->siginfo->si_pid); + if (sc->siginfo->si_pid == ec->cmnd_pid) + debug_return; + si_pgrp = getpgid(sc->siginfo->si_pid); if (si_pgrp != -1) { - if (si_pgrp == ec->ppgrp || si_pgrp == ec->cmnd_pid) + if (si_pgrp == ec->cmnd_pid || si_pgrp == ec->sudo_pid) debug_return; - } else if (sc->siginfo->si_pid == ec->cmnd_pid) { - debug_return; } } break; default: /* - * Do not forward signals sent by a process in the command's process - * group, as we don't want the command to indirectly kill itself. - * For example, this can happen with some versions of reboot that - * call kill(-1, SIGTERM) to kill all other processes. + * Do not forward signals sent by the command itself or a member of the + * command's process group (but only when either sudo or the command is + * the process group leader). We don't want the command to indirectly + * kill itself. For example, this can happen with some versions of + * reboot that call kill(-1, SIGTERM) to kill all other processes. */ if (USER_SIGNALED(sc->siginfo) && sc->siginfo->si_pid != 0) { - pid_t si_pgrp = getpgid(sc->siginfo->si_pid); + if (sc->siginfo->si_pid == ec->cmnd_pid) + debug_return; + si_pgrp = getpgid(sc->siginfo->si_pid); if (si_pgrp != -1) { - if (si_pgrp == ec->ppgrp || si_pgrp == ec->cmnd_pid) + if (si_pgrp == ec->cmnd_pid || si_pgrp == ec->sudo_pid) debug_return; - } else if (sc->siginfo->si_pid == ec->cmnd_pid) { - debug_return; } } break; @@ -210,6 +213,7 @@ fill_exec_closure(struct exec_closure *ec, debug_decl(fill_exec_closure, SUDO_DEBUG_EXEC); /* Fill in the non-event part of the closure. */ + ec->sudo_pid = getpid(); ec->ppgrp = getpgrp(); ec->cstat = cstat; ec->details = details; @@ -370,7 +374,7 @@ read_callback(int fd, int what, void *v) sudo_debug_printf(SUDO_DEBUG_INFO, "read %zd bytes from fd %d", n, fd); if (!iob->action(iob->buf + iob->len, n, iob)) { - terminate_command(iob->ec->cmnd_pid, true); + terminate_command(iob->ec->cmnd_pid, false); iob->ec->cmnd_pid = -1; } iob->len += n; @@ -667,7 +671,7 @@ exec_nopty(struct command_details *details, struct command_status *cstat) } } if (rc == -1) - terminate_command(ec.cmnd_pid, true); + terminate_command(ec.cmnd_pid, false); } /* Enable any I/O log events. */ @@ -686,7 +690,7 @@ exec_nopty(struct command_details *details, struct command_status *cstat) /* error from callback */ sudo_debug_printf(SUDO_DEBUG_ERROR, "event loop exited prematurely"); /* kill command */ - terminate_command(ec.cmnd_pid, true); + terminate_command(ec.cmnd_pid, false); ec.cmnd_pid = -1; } @@ -753,8 +757,10 @@ handle_sigchld_nopty(struct exec_closure *ec) } /* If the main command is suspended, suspend sudo too. */ - if (pid == ec->cmnd_pid) - suspend_sudo_nopty(ec, signo, ec->ppgrp, ec->cmnd_pid); + if (pid == ec->cmnd_pid) { + suspend_sudo_nopty(ec, signo, ec->sudo_pid, ec->ppgrp, + ec->cmnd_pid); + } } else { if (WIFSIGNALED(status)) { if (sig2str(WTERMSIG(status), signame) == -1) { diff --git a/src/exec_preload.c b/src/exec_preload.c index d90fc63225..f82de7ebe9 100644 --- a/src/exec_preload.c +++ b/src/exec_preload.c @@ -63,8 +63,10 @@ fmtstr(sudo_alloc_fn_t alloc_fn, sudo_free_fn_t free_fn, const char *ofmt, ...) for (fmt = ofmt; *fmt != '\0'; ) { if (fmt[0] == '%') { switch (fmt[1]) { - case '%': case 'c': + (void)va_arg(ap, int); + FALLTHROUGH; + case '%': size++; fmt += 2; continue; diff --git a/src/exec_ptrace.c b/src/exec_ptrace.c index 208a75f887..cbb4158eec 100644 --- a/src/exec_ptrace.c +++ b/src/exec_ptrace.c @@ -971,8 +971,8 @@ static char * get_execve_info(pid_t pid, struct sudo_ptrace_regs *regs, char **pathname_out, int *argc_out, char ***argv_out, int *envc_out, char ***envp_out) { - char *pathname, **argv, **envp, *argbuf = NULL; - unsigned long path_addr, argv_addr, envp_addr; + char *argbuf, **argv, **envp, *pathname = NULL; + unsigned long argv_addr, envp_addr, path_addr; size_t bufsize, len, off = 0; int i, argc, envc = 0; debug_decl(get_execve_info, SUDO_DEBUG_EXEC); @@ -992,11 +992,8 @@ get_execve_info(pid_t pid, struct sudo_ptrace_regs *regs, char **pathname_out, "%s: %d: path 0x%lx, argv 0x%lx, envp 0x%lx", __func__, (int)pid, path_addr, argv_addr, envp_addr); - /* Read the pathname. */ - if (path_addr == 0) { - /* execve(2) will fail with EINVAL */ - pathname = NULL; - } else { + /* Read the pathname, if not NULL. */ + if (path_addr != 0) { len = ptrace_read_string(pid, path_addr, argbuf, bufsize); if (len == (size_t)-1) { sudo_debug_printf( @@ -1004,7 +1001,7 @@ get_execve_info(pid_t pid, struct sudo_ptrace_regs *regs, char **pathname_out, "unable to read execve pathname for process %d", (int)pid); goto bad; } - pathname = argbuf; + /* Defer setting pathname until after all reallocations are done. */ off = len; } @@ -1038,6 +1035,10 @@ get_execve_info(pid_t pid, struct sudo_ptrace_regs *regs, char **pathname_out, goto bad; } + /* Set pathname now that argbuf has been fully allocated. */ + if (path_addr != 0) + pathname = argbuf; + /* Convert offsets in argv and envp to pointers. */ argv = (char **)(argbuf + (unsigned long)argv); for (i = 0; i < argc; i++) { @@ -1697,8 +1698,7 @@ ptrace_intercept_execve(pid_t pid, struct intercept_closure *closure) char cwd[PATH_MAX]; unsigned long msg; bool ret = false; - struct stat sb; - int i; + int i, oldcwd = -1; debug_decl(ptrace_intercept_execve, SUDO_DEBUG_EXEC); /* Do not check the policy if we are executing the initial command. */ @@ -1783,16 +1783,6 @@ ptrace_intercept_execve(pid_t pid, struct intercept_closure *closure) goto done; } - /* - * Short-circuit the policy check if the command doesn't exist. - * Otherwise, both sudo and the shell will report the error. - */ - if (stat(pathname, &sb) == -1) { - ptrace_fail_syscall(pid, ®s, errno); - ret = true; - goto done; - } - /* We can only pass the pathname to exececute via argv[0] (plugin API). */ argv[0] = pathname; if (argc == 0) { @@ -1806,8 +1796,9 @@ ptrace_intercept_execve(pid_t pid, struct intercept_closure *closure) sudo_debug_printf(SUDO_DEBUG_INFO, "%s: %d: checking policy for %s", __func__, (int)pid, pathname); if (!intercept_check_policy(pathname, argc, argv, envc, envp, cwd, - closure)) { - sudo_warnx("%s", U_(closure->errstr)); + &oldcwd, closure)) { + if (closure->errstr != NULL) + sudo_warnx("%s", U_(closure->errstr)); } switch (closure->state) { @@ -1930,15 +1921,25 @@ ptrace_intercept_execve(pid_t pid, struct intercept_closure *closure) } } break; - default: + case POLICY_REJECT: /* If rejected, fake the syscall and set return to EACCES */ - ptrace_fail_syscall(pid, ®s, EACCES); + errno = EACCES; + FALLTHROUGH; + default: + ptrace_fail_syscall(pid, ®s, errno); break; } ret = true; done: + if (oldcwd != -1) { + if (fchdir(oldcwd) == -1) { + sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_ERRNO, + "%s: unable to restore saved cwd", __func__); + } + close(oldcwd); + } free(buf); intercept_closure_reset(closure); diff --git a/src/exec_ptrace.h b/src/exec_ptrace.h index b35572c7bc..0828b4131b 100644 --- a/src/exec_ptrace.h +++ b/src/exec_ptrace.h @@ -22,16 +22,23 @@ #include #include #include -#include #include #include #include +/* Older kernel headers may be missing some EM_* defines in linux/elf.h. */ +#include + /* Older systems may not support execveat(2). */ #ifndef __NR_execveat # define __NR_execveat -1 #endif +/* In case userland elf.h doesn't define NT_ARM_SYSTEM_CALL. */ +#if defined(__aarch64__) && !defined(NT_ARM_SYSTEM_CALL) +# define NT_ARM_SYSTEM_CALL 0x404 +#endif + /* In case userland doesn't define __X32_SYSCALL_BIT. */ #if defined(__x86_64__) && !defined(__X32_SYSCALL_BIT) # define __X32_SYSCALL_BIT 0x40000000 diff --git a/src/exec_pty.c b/src/exec_pty.c index d8235fd857..ed8fa0f3de 100644 --- a/src/exec_pty.c +++ b/src/exec_pty.c @@ -1,7 +1,7 @@ /* * SPDX-License-Identifier: ISC * - * Copyright (c) 2009-2022 Todd C. Miller + * Copyright (c) 2009-2023 Todd C. Miller * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -73,8 +73,10 @@ pty_cleanup(void) { debug_decl(cleanup, SUDO_DEBUG_EXEC); - if (io_fds[SFD_USERTTY] != -1) - sudo_term_restore(io_fds[SFD_USERTTY], false); + if (ttymode != TERM_COOKED) { + if (!sudo_term_restore(io_fds[SFD_USERTTY], false)) + sudo_warn("%s", U_("unable to restore terminal settings")); + } if (utmp_user != NULL) utmp_logout(ptyname, 0); @@ -206,8 +208,10 @@ suspend_sudo_pty(struct exec_closure *ec, int signo) del_io_events(true); /* Restore original tty mode before suspending. */ - if (ttymode != TERM_COOKED) - sudo_term_restore(io_fds[SFD_USERTTY], false); + if (ttymode != TERM_COOKED) { + if (!sudo_term_restore(io_fds[SFD_USERTTY], false)) + sudo_warn("%s", U_("unable to restore terminal settings")); + } /* Log the suspend event. */ log_suspend(ec, signo); @@ -224,9 +228,25 @@ suspend_sudo_pty(struct exec_closure *ec, int signo) if (sudo_sigaction(signo, &sa, &osa) != 0) sudo_warn(U_("unable to set handler for signal %d"), signo); } - sudo_debug_printf(SUDO_DEBUG_INFO, "kill parent SIG%s", signame); - if (killpg(ec->ppgrp, signo) != 0) - sudo_warn("killpg(%d, SIG%s)", (int)ec->ppgrp, signame); + /* + * We stop sudo's process group, even if sudo is not the process + * group leader. If we only send the signal to sudo itself, + * the shell will not notice if it is not in monitor mode. + * This can happen when sudo is run from a shell script, for + * example. In this case we need to signal the shell itself. + * If the process group leader is no longer present, we must kill + * the command since there will be no one to resume us. + */ + sudo_debug_printf(SUDO_DEBUG_INFO, "killpg(%d, SIG%s) [parent]", + (int)ec->ppgrp, signame); + if ((ec->ppgrp != ec->sudo_pid && kill(ec->ppgrp, 0) == -1) || + killpg(ec->ppgrp, signo) == -1) { + sudo_debug_printf(SUDO_DEBUG_ERROR, + "no parent to suspend, terminating command."); + terminate_command(ec->cmnd_pid, true); + ec->cmnd_pid = -1; + break; + } /* Log the resume event. */ log_suspend(ec, SIGCONT); @@ -466,7 +486,7 @@ write_callback(int fd, int what, void *v) * We already closed the follower so reads from the leader will not block. */ static void -pty_finish(struct command_status *cstat) +pty_finish(struct exec_closure *ec, struct command_status *cstat) { int flags; debug_decl(pty_finish, SUDO_DEBUG_EXEC); @@ -483,8 +503,14 @@ pty_finish(struct command_status *cstat) free_io_bufs(); /* Restore terminal settings. */ - if (io_fds[SFD_USERTTY] != -1) - sudo_term_restore(io_fds[SFD_USERTTY], false); + if (ttymode != TERM_COOKED) { + /* Only restore the terminal if sudo is the foreground process. */ + const pid_t tcpgrp = tcgetpgrp(io_fds[SFD_USERTTY]); + if (tcpgrp == ec->ppgrp) { + if (!sudo_term_restore(io_fds[SFD_USERTTY], false)) + sudo_warn("%s", U_("unable to restore terminal settings")); + } + } /* Update utmp */ if (utmp_user != NULL) @@ -761,18 +787,21 @@ signal_cb_pty(int signo, int what, void *v) break; default: /* - * Do not forward signals sent by a process in the command's process - * group, as we don't want the command to indirectly kill itself. - * For example, this can happen with some versions of reboot that - * call kill(-1, SIGTERM) to kill all other processes. + * Do not forward signals sent by the command itself or a member of the + * command's process group (but only when either sudo or the command is + * the process group leader). We don't want the command to indirectly + * kill itself. For example, this can happen with some versions of + * reboot that call kill(-1, SIGTERM) to kill all other processes. */ if (USER_SIGNALED(sc->siginfo) && sc->siginfo->si_pid != 0) { - pid_t si_pgrp = getpgid(sc->siginfo->si_pid); + pid_t si_pgrp; + + if (sc->siginfo->si_pid == ec->cmnd_pid) + debug_return; + si_pgrp = getpgid(sc->siginfo->si_pid); if (si_pgrp != -1) { - if (si_pgrp == ec->ppgrp || si_pgrp == ec->cmnd_pid) + if (si_pgrp == ec->cmnd_pid || si_pgrp == ec->sudo_pid) debug_return; - } else if (sc->siginfo->si_pid == ec->cmnd_pid) { - debug_return; } } /* Schedule signal to be forwarded to the command. */ @@ -846,13 +875,15 @@ fwdchannel_cb(int sock, int what, void *v) */ static void fill_exec_closure(struct exec_closure *ec, struct command_status *cstat, - struct command_details *details, pid_t ppgrp, int backchannel) + struct command_details *details, pid_t sudo_pid, pid_t ppgrp, + int backchannel) { debug_decl(fill_exec_closure, SUDO_DEBUG_EXEC); /* Fill in the non-event part of the closure. */ - ec->cmnd_pid = -1; + ec->sudo_pid = sudo_pid; ec->ppgrp = ppgrp; + ec->cmnd_pid = -1; ec->cstat = cstat; ec->details = details; ec->rows = user_details.ts_rows; @@ -976,7 +1007,7 @@ exec_pty(struct command_details *details, struct command_status *cstat) sigset_t set, oset; struct sigaction sa; struct stat sb; - pid_t ppgrp; + pid_t ppgrp, sudo_pid; debug_decl(exec_pty, SUDO_DEBUG_EXEC); /* @@ -1031,6 +1062,7 @@ exec_pty(struct command_details *details, struct command_status *cstat) */ init_ttyblock(); ppgrp = getpgrp(); /* parent's pgrp, so child can signal us */ + sudo_pid = getpid(); /* Determine whether any of std{in,out,err} should be logged. */ TAILQ_FOREACH(plugin, &io_plugins, entries) { @@ -1064,6 +1096,8 @@ exec_pty(struct command_details *details, struct command_status *cstat) /* Are we the foreground process? */ foreground = tcgetpgrp(io_fds[SFD_USERTTY]) == ppgrp; + sudo_debug_printf(SUDO_DEBUG_INFO, "sudo is running in the %s", + foreground ? "foreground" : "background"); } /* @@ -1090,6 +1124,16 @@ exec_pty(struct command_details *details, struct command_status *cstat) log_stdin, read_callback, write_callback, &ec, &iobufs); io_fds[SFD_STDIN] = io_pipe[STDIN_FILENO][0]; } + + if (foreground && ppgrp != sudo_pid) { + /* + * If sudo is not the process group leader and stdin is not + * a tty we may be running as a background job via a shell + * script. Start the command in the background to avoid + * changing the terminal mode from a background process. + */ + SET(details->flags, CD_EXEC_BG); + } } if (io_fds[SFD_STDOUT] == -1 || !isatty(STDOUT_FILENO)) { if (!interpose[STDOUT_FILENO]) { @@ -1158,7 +1202,7 @@ exec_pty(struct command_details *details, struct command_status *cstat) /* Check for early termination or suspend signals before we fork. */ if (sudo_terminated(cstat)) { sigprocmask(SIG_SETMASK, &oset, NULL); - debug_return_int(true); + debug_return_bool(true); } ec.monitor_pid = sudo_debug_fork(); @@ -1236,7 +1280,7 @@ exec_pty(struct command_details *details, struct command_status *cstat) * Fill in exec closure, allocate event base, signal events and * the backchannel event. */ - fill_exec_closure(&ec, cstat, details, ppgrp, sv[0]); + fill_exec_closure(&ec, cstat, details, sudo_pid, ppgrp, sv[0]); /* Create event and closure for intercept mode. */ if (ISSET(details->flags, CD_INTERCEPT|CD_LOG_SUBCMDS)) { @@ -1291,7 +1335,7 @@ exec_pty(struct command_details *details, struct command_status *cstat) } while (evloop_retries-- > 0); /* Flush any remaining output, free I/O bufs and events, do logout. */ - pty_finish(cstat); + pty_finish(&ec, cstat); /* Free things up. */ free_exec_closure(&ec); diff --git a/src/load_plugins.c b/src/load_plugins.c index 5734602998..4fe2eb8619 100644 --- a/src/load_plugins.c +++ b/src/load_plugins.c @@ -34,114 +34,55 @@ #include "sudo_plugin_int.h" #include "sudo_dso.h" -/* We always use the same name for the sudoers plugin, regardless of the OS */ -#define SUDOERS_PLUGIN "sudoers.so" - #ifdef ENABLE_SUDO_PLUGIN_API -static int -sudo_stat_plugin(struct plugin_info *info, char *fullpath, - size_t pathsize, struct stat *sb) +static bool +sudo_qualify_plugin(struct plugin_info *info, char *fullpath, size_t pathsize) { - int status = -1; - size_t len; + const char *plugin_dir = sudo_conf_plugin_dir_path(); + int len; debug_decl(sudo_stat_plugin, SUDO_DEBUG_PLUGIN); if (info->path[0] == '/') { if (strlcpy(fullpath, info->path, pathsize) >= pathsize) { errno = ENAMETOOLONG; - goto done; + goto bad; } - status = stat(fullpath, sb); } else { #ifdef STATIC_SUDOERS_PLUGIN /* Check static symbols. */ - if (strcmp(info->path, SUDOERS_PLUGIN) == 0) { + if (strcmp(info->path, _PATH_SUDOERS_PLUGIN) == 0) { if (strlcpy(fullpath, info->path, pathsize) >= pathsize) { errno = ENAMETOOLONG; - goto done; + goto bad; } - /* Plugin is static, fake up struct stat. */ - memset(sb, 0, sizeof(*sb)); - sb->st_uid = ROOT_UID; - sb->st_mode = S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH; - status = 0; - goto done; } #endif /* STATIC_SUDOERS_PLUGIN */ - if (sudo_conf_plugin_dir_path() == NULL) { + if (plugin_dir == NULL) { errno = ENOENT; - goto done; + goto bad; } - - len = snprintf(fullpath, pathsize, "%s%s", sudo_conf_plugin_dir_path(), - info->path); - if (len >= pathsize) { + len = snprintf(fullpath, pathsize, "%s%s", plugin_dir, info->path); + if (len < 0 || (size_t)len >= pathsize) { errno = ENAMETOOLONG; - goto done; + goto bad; } - status = stat(fullpath, sb); } - if (status == -1) { - char *newpath = sudo_stat_multiarch(fullpath, sb); - if (newpath != NULL) { - len = strlcpy(fullpath, newpath, pathsize); - free(newpath); - if (len >= pathsize) { - errno = ENAMETOOLONG; - goto done; - } - status = 0; - } - } -done: - debug_return_int(status); -} - -static bool -sudo_check_plugin(struct plugin_info *info, char *fullpath, size_t pathsize) -{ - struct stat sb; - bool ret = false; - debug_decl(sudo_check_plugin, SUDO_DEBUG_PLUGIN); - - if (sudo_stat_plugin(info, fullpath, pathsize, &sb) != 0) { - sudo_warnx(U_("error in %s, line %d while loading plugin \"%s\""), - _PATH_SUDO_CONF, info->lineno, info->symbol_name); - if (info->path[0] == '/') { - sudo_warn("%s", info->path); - } else { - sudo_warn("%s%s", - sudo_conf_plugin_dir_path() ? sudo_conf_plugin_dir_path() : "", - info->path); - } - goto done; - } - - if (!sudo_conf_developer_mode()) { - if (sb.st_uid != ROOT_UID) { - sudo_warnx(U_("error in %s, line %d while loading plugin \"%s\""), - _PATH_SUDO_CONF, info->lineno, info->symbol_name); - sudo_warnx(U_("%s must be owned by uid %d"), fullpath, ROOT_UID); - goto done; - } - if ((sb.st_mode & (S_IWGRP|S_IWOTH)) != 0) { - sudo_warnx(U_("error in %s, line %d while loading plugin \"%s\""), - _PATH_SUDO_CONF, info->lineno, info->symbol_name); - sudo_warnx(U_("%s must be only be writable by owner"), fullpath); - goto done; - } - } - ret = true; - -done: - debug_return_bool(ret); + debug_return_bool(true); +bad: + sudo_warnx(U_("error in %s, line %d while loading plugin \"%s\""), + _PATH_SUDO_CONF, info->lineno, info->symbol_name); + if (info->path[0] != '/' && plugin_dir != NULL) + sudo_warn("%s%s", plugin_dir, info->path); + else + sudo_warn("%s", info->path); + debug_return_bool(false); } #else static bool -sudo_check_plugin(struct plugin_info *info, char *fullpath, size_t pathsize) +sudo_qualify_plugin(struct plugin_info *info, char *fullpath, size_t pathsize) { - debug_decl(sudo_check_plugin, SUDO_DEBUG_PLUGIN); + debug_decl(sudo_qualify_plugin, SUDO_DEBUG_PLUGIN); (void)strlcpy(fullpath, info->path, pathsize); debug_return_bool(true); } @@ -267,8 +208,8 @@ sudo_load_plugin(struct plugin_info *info, bool quiet) bool ret = false; debug_decl(sudo_load_plugin, SUDO_DEBUG_PLUGIN); - /* Check plugin owner/mode and fill in path */ - if (!sudo_check_plugin(info, path, sizeof(path))) + /* Fill in path from info and plugin dir. */ + if (!sudo_qualify_plugin(info, path, sizeof(path))) goto done; /* Open plugin and map in symbol */ @@ -452,7 +393,7 @@ sudo_load_sudoers_plugin(const char *symbol_name, bool optional) goto done; } info->symbol_name = strdup(symbol_name); - info->path = strdup(SUDOERS_PLUGIN); + info->path = strdup(_PATH_SUDOERS_PLUGIN); if (info->symbol_name == NULL || info->path == NULL) { sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory")); free_plugin_info(info); diff --git a/src/net_ifs.c b/src/net_ifs.c index eff6c8e890..68c21453b6 100644 --- a/src/net_ifs.c +++ b/src/net_ifs.c @@ -683,13 +683,14 @@ get_net_ifs(char **addrinfo_out) * Get the size of the interface buffer (if possible). * We over-allocate a bit in case interfaces come up afterward. */ + i = 0; # if defined(SIOCGSIZIFCONF) /* AIX */ if (ioctl(sock, SIOCGSIZIFCONF, &i) != -1) { buflen = i + (sizeof(struct ifreq) * 4); } else # elif defined(SIOCGIFANUM) - /* SCO OpenServer 5 */ + /* SCO OpenServer 5/6 */ if (ioctl(sock, SIOCGIFANUM, &i) != -1) { buflen = (i + 4) * sizeof(struct ifreq); } else diff --git a/src/parse_args.c b/src/parse_args.c index 56f207e8f4..5282cc3808 100644 --- a/src/parse_args.c +++ b/src/parse_args.c @@ -47,12 +47,12 @@ int tgetpass_flags; /* * Local functions. */ -static sudo_noreturn void help(void); -static sudo_noreturn void usage_excl(void); -static sudo_noreturn void usage_excl_ticket(void); +sudo_noreturn static void help(void); +sudo_noreturn static void usage_excl(void); +sudo_noreturn static void usage_excl_ticket(void); /* - * Mapping of command line flags to name/value settings. + * Mapping of command line options to name/value settings. * Do not reorder, indexes must match ARG_ defines in sudo.h. */ static struct sudo_settings sudo_settings[] = { @@ -278,7 +278,7 @@ parse_args(int argc, char **argv, int *old_optind, int *nargc, char ***nargv, /* Returns true if next option is an environment variable */ #define is_envar (optind < argc && argv[optind][0] != '/' && \ - strchr(argv[optind], '=') != NULL) + argv[optind][0] != '=' && strchr(argv[optind], '=') != NULL) /* Space for environment variables is lazy allocated. */ memset(&extra_env, 0, sizeof(extra_env)); diff --git a/src/preload.c b/src/preload.c index 5bfd9fd87e..907ebd5a82 100644 --- a/src/preload.c +++ b/src/preload.c @@ -64,7 +64,7 @@ static struct sudo_preload_symbol sudo_sudoers_plugin_symbols[] = { */ static struct sudo_preload_table sudo_preload_table[] = { { (char *)0, SUDO_DSO_DEFAULT, sudo_rtld_default_symbols }, - { "sudoers.so", &sudo_sudoers_plugin_symbols, sudo_sudoers_plugin_symbols }, + { _PATH_SUDOERS_PLUGIN, &sudo_sudoers_plugin_symbols, sudo_sudoers_plugin_symbols }, { (char *)0, (void *)0, (struct sudo_preload_symbol *)0 } }; diff --git a/src/regress/intercept/test_ptrace.c b/src/regress/intercept/test_ptrace.c index e31e3c0476..72d4b2ccac 100644 --- a/src/regress/intercept/test_ptrace.c +++ b/src/regress/intercept/test_ptrace.c @@ -50,7 +50,7 @@ intercept_closure_reset(struct intercept_closure *closure) bool intercept_check_policy(const char *command, int argc, char **argv, int envc, - char **envp, const char *runcwd, void *v) + char **envp, const char *runcwd, int *oldcwd, void *v) { struct intercept_closure *closure = v; struct stat sb1, sb2; @@ -67,6 +67,7 @@ intercept_check_policy(const char *command, int argc, char **argv, int envc, sudo_debug_printf(SUDO_DEBUG_DIAG, "allowed %s", command); closure->state = POLICY_TEST; } + *oldcwd = -1; debug_return_bool(true); } @@ -103,6 +104,13 @@ sudo_sigaction(int signo, struct sigaction *sa, struct sigaction *osa) return sigaction(signo, sa, osa); } +/* STUB */ +void +log_suspend(struct exec_closure *ec, int signo) +{ + return; +} + int main(int argc, char *argv[]) { @@ -113,7 +121,7 @@ main(int argc, char *argv[]) const char *errstr; sigset_t blocked, empty; struct sigaction sa; - pid_t child, pid, ppgrp; + pid_t child, my_pid, pid, my_pgrp; int ch, status; debug_decl_vars(main, SUDO_DEBUG_MAIN); @@ -165,7 +173,8 @@ main(int argc, char *argv[]) sigaction(SIGUSR1, &sa, NULL); /* Fork a shell. */ - ppgrp = getpgrp(); + my_pid = getpid(); + my_pgrp = getpgrp(); child = fork(); switch (child) { case -1: @@ -219,7 +228,8 @@ main(int argc, char *argv[]) } else if (WIFSTOPPED(status)) { if (exec_ptrace_stopped(pid, status, &closure)) { if (pid == child) { - suspend_sudo_nopty(NULL, WSTOPSIG(status), ppgrp, child); + suspend_sudo_nopty(NULL, WSTOPSIG(status), my_pid, + my_pgrp, child); if (kill(child, SIGCONT) != 0) sudo_warn("kill(%d, SIGCONT)", (int)child); } diff --git a/src/regress/noexec/check_noexec.c b/src/regress/noexec/check_noexec.c index 4e0a402e84..bad25e09c9 100644 --- a/src/regress/noexec/check_noexec.c +++ b/src/regress/noexec/check_noexec.c @@ -179,7 +179,7 @@ try_wordexp(void) } #endif -static sudo_noreturn void +sudo_noreturn static void usage(void) { fprintf(stderr, "usage: %s [-v] rexec | /path/to/sudo_noexec.so\n", diff --git a/src/regress/ttyname/check_ttyname.c b/src/regress/ttyname/check_ttyname.c index 05c8c68c6f..7efcd06df2 100644 --- a/src/regress/ttyname/check_ttyname.c +++ b/src/regress/ttyname/check_ttyname.c @@ -91,6 +91,7 @@ main(int argc, char *argv[]) #if defined(HAVE_KINFO_PROC2_NETBSD) || \ defined(HAVE_KINFO_PROC_OPENBSD) || \ defined(HAVE_KINFO_PROC_FREEBSD) || \ + defined(HAVE_KINFO_PROC_DFLY) || \ defined(HAVE_KINFO_PROC_44BSD) || \ defined(HAVE__TTYNAME_DEV) || defined(HAVE_STRUCT_PSINFO_PR_TTYDEV) || \ defined(HAVE_PSTAT_GETPROC) || defined(__linux__) diff --git a/src/sudo.c b/src/sudo.c index 2888d23a59..a8a18bbb50 100644 --- a/src/sudo.c +++ b/src/sudo.c @@ -287,7 +287,8 @@ main(int argc, char *argv[], char *envp[]) /* Setup command details and run command/edit. */ command_info_to_details(command_info, &command_details); command_details.tty = user_details.tty; - command_details.argv = argv_out; + command_details.argv = nargv; + command_details.argc = nargc; command_details.envp = run_envp; command_details.evbase = sudo_event_base; if (ISSET(sudo_mode, MODE_LOGIN_SHELL)) @@ -355,7 +356,7 @@ os_init_common(int argc, char *argv[], char *envp[]) static void fix_fds(void) { - int miss[3], devnull = -1; + int miss[3]; debug_decl(fix_fds, SUDO_DEBUG_UTIL); /* @@ -366,7 +367,8 @@ fix_fds(void) miss[STDOUT_FILENO] = fcntl(STDOUT_FILENO, F_GETFL, 0) == -1; miss[STDERR_FILENO] = fcntl(STDERR_FILENO, F_GETFL, 0) == -1; if (miss[STDIN_FILENO] || miss[STDOUT_FILENO] || miss[STDERR_FILENO]) { - devnull = open(_PATH_DEVNULL, O_RDWR, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); + int devnull = + open(_PATH_DEVNULL, O_RDWR, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); if (devnull == -1) sudo_fatal(U_("unable to open %s"), _PATH_DEVNULL); if (miss[STDIN_FILENO] && dup2(devnull, STDIN_FILENO) == -1) @@ -832,6 +834,14 @@ command_info_to_details(char * const info[], struct command_details *details) SET_FLAG("sudoedit=", CD_SUDOEDIT) SET_FLAG("sudoedit_checkdir=", CD_SUDOEDIT_CHECKDIR) SET_FLAG("sudoedit_follow=", CD_SUDOEDIT_FOLLOW) + if (strncmp("sudoedit_nfiles=", info[i], sizeof("sudoedit_nfiles=") - 1) == 0) { + cp = info[i] + sizeof("sudoedit_nfiles=") - 1; + details->nfiles = sudo_strtonum(cp, 1, INT_MAX, + &errstr); + if (errstr != NULL) + sudo_fatalx(U_("%s: %s"), info[i], U_(errstr)); + break; + } break; case 't': if (strncmp("timeout=", info[i], sizeof("timeout=") - 1) == 0) { @@ -1105,7 +1115,7 @@ format_plugin_settings(struct plugin_container *plugin) goto bad; } } - plugin_settings[++i] = NULL; + plugin_settings[i + 1] = NULL; /* Add to list of vectors to be garbage collected at exit. */ if (!gc_add(GC_VECTOR, plugin_settings)) diff --git a/src/sudo.h b/src/sudo.h index bbf874fc88..795662adfc 100644 --- a/src/sudo.h +++ b/src/sudo.h @@ -189,11 +189,13 @@ TAILQ_HEAD(preserved_fd_list, preserved_fd); struct command_details { struct sudo_cred cred; mode_t umask; + int argc; int priority; int timeout; int closefrom; int flags; int execfd; + int nfiles; struct preserved_fd_list preserved_fds; struct passwd *pw; const char *command; diff --git a/src/sudo_edit.c b/src/sudo_edit.c index c62644e076..21ac97f2e4 100644 --- a/src/sudo_edit.c +++ b/src/sudo_edit.c @@ -628,9 +628,10 @@ int sudo_edit(struct command_details *command_details) { struct command_details saved_command_details; - char **nargv = NULL, **ap, **files = NULL; + char **nargv = NULL, **files = NULL; + int nfiles = command_details->nfiles; int errors, i, ac, nargc, ret; - int editor_argc = 0, nfiles = 0; + int editor_argc = 0; struct timespec times[2]; struct tempfile *tf = NULL; debug_decl(sudo_edit, SUDO_DEBUG_EDIT); @@ -650,17 +651,31 @@ sudo_edit(struct command_details *command_details) if (!set_tmpdir(&user_details.cred)) goto cleanup; - /* - * The user's editor must be separated from the files to be - * edited by a "--" option. - */ - for (ap = command_details->argv; *ap != NULL; ap++) { - if (files) - nfiles++; - else if (strcmp(*ap, "--") == 0) - files = ap + 1; - else - editor_argc++; + if (nfiles > 0) { + /* + * The plugin specified the number of files to edit, use it. + */ + editor_argc = command_details->argc - nfiles; + if (editor_argc < 2 || strcmp(command_details->argv[editor_argc - 1], "--") != 0) { + sudo_warnx("%s", U_("plugin error: invalid file list for sudoedit")); + goto cleanup; + } + + /* We don't include the "--" when running the user's editor. */ + files = &command_details->argv[editor_argc--]; + } else { + /* + * Compute the number of files to edit by looking for the "--" + * option which separate the editor from the files. + */ + for (i = 0; command_details->argv[i] != NULL; i++) { + if (strcmp(command_details->argv[i], "--") == 0) { + editor_argc = i; + files = &command_details->argv[i + 1]; + nfiles = command_details->argc - (i + 1); + break; + } + } } if (nfiles == 0) { sudo_warnx("%s", U_("plugin error: missing file list for sudoedit")); @@ -717,6 +732,7 @@ sudo_edit(struct command_details *command_details) command_details->cred = user_details.cred; command_details->cred.euid = user_details.cred.uid; command_details->cred.egid = user_details.cred.gid; + command_details->argc = nargc; command_details->argv = nargv; ret = run_command(command_details); if (sudo_gettime_real(×[1]) == -1) { @@ -726,6 +742,7 @@ sudo_edit(struct command_details *command_details) /* Restore saved command_details. */ command_details->cred = saved_command_details.cred; + command_details->argc = saved_command_details.argc; command_details->argv = saved_command_details.argv; /* Copy contents of temp files to real ones. */ diff --git a/src/sudo_exec.h b/src/sudo_exec.h index a75d6f17f0..656735c018 100644 --- a/src/sudo_exec.h +++ b/src/sudo_exec.h @@ -74,6 +74,7 @@ struct exec_closure { struct sudo_event *sigwinch_event; struct command_status *cstat; void *intercept; + pid_t sudo_pid; pid_t monitor_pid; pid_t cmnd_pid; pid_t ppgrp; @@ -232,6 +233,6 @@ bool set_exec_filter(void); int exec_ptrace_seize(pid_t child); /* suspend_nopty.c */ -void suspend_sudo_nopty(struct exec_closure *ec, int signo, pid_t ppgrp, pid_t cmnd_pid); +void suspend_sudo_nopty(struct exec_closure *ec, int signo, pid_t my_pid, pid_t my_pgrp, pid_t cmnd_pid); #endif /* SUDO_EXEC_H */ diff --git a/src/sudo_intercept.c b/src/sudo_intercept.c index 7c2a2d3e56..5db3f53014 100644 --- a/src/sudo_intercept.c +++ b/src/sudo_intercept.c @@ -96,7 +96,7 @@ copy_vector(char * const *src) for (i = 0; i < len; i++) { copy[i] = sudo_mmap_strdup(src[i]); if (copy[i] == NULL) { - sudo_mmap_free(copy); + free_vector(copy); debug_return_ptr(NULL); } } diff --git a/src/sudo_usage.h.in b/src/sudo_usage.h.in index 9b85a85800..c020e24d4e 100644 --- a/src/sudo_usage.h.in +++ b/src/sudo_usage.h.in @@ -27,8 +27,8 @@ #define SUDO_USAGE0 " -h | -V" #define SUDO_USAGE1 " -h | -K | -k | -V" #define SUDO_USAGE2 " -v [-ABkNnS] @BSDAUTH_USAGE@[-g group] [-h host] [-p prompt] [-u user]" -#define SUDO_USAGE3 " -l [-ABkNnS] @BSDAUTH_USAGE@[-g group] [-h host] [-p prompt] [-U user] [-u user] [command]" -#define SUDO_USAGE4 " [-ABbEHkNnPS] @BSDAUTH_USAGE@@SELINUX_USAGE@[-C num] [-D directory] @LOGINCAP_USAGE@[-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] [VAR=value] [-i|-s] []" +#define SUDO_USAGE3 " -l [-ABkNnS] @BSDAUTH_USAGE@[-g group] [-h host] [-p prompt] [-U user] [-u user] [command [arg ...]]" +#define SUDO_USAGE4 " [-ABbEHkNnPS] @BSDAUTH_USAGE@@SELINUX_USAGE@[-C num] [-D directory] @LOGINCAP_USAGE@[-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] [VAR=value] [-i | -s] [command [arg ...]]" #define SUDO_USAGE5 " -e [-ABkNnS] @BSDAUTH_USAGE@@SELINUX_USAGE@[-C num] @LOGINCAP_USAGE@[-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] file ..." /* diff --git a/src/suspend_nopty.c b/src/suspend_nopty.c index 896b7e2fa3..1cfe0c2e99 100644 --- a/src/suspend_nopty.c +++ b/src/suspend_nopty.c @@ -34,8 +34,8 @@ #include "sudo_exec.h" void -suspend_sudo_nopty(struct exec_closure *ec, int signo, pid_t ppgrp, - pid_t cmnd_pid) +suspend_sudo_nopty(struct exec_closure *ec, int signo, pid_t my_pid, + pid_t my_pgrp, pid_t cmnd_pid) { struct sigaction sa, osa; pid_t saved_pgrp = -1; @@ -67,9 +67,9 @@ suspend_sudo_nopty(struct exec_closure *ec, int signo, pid_t ppgrp, * pgrp and let it continue. */ if (signo == SIGTTOU || signo == SIGTTIN) { - if (saved_pgrp == ppgrp) { + if (saved_pgrp == my_pgrp) { pid_t cmnd_pgrp = getpgid(cmnd_pid); - if (cmnd_pgrp != ppgrp) { + if (cmnd_pgrp != my_pgrp) { if (tcsetpgrp_nobg(fd, cmnd_pgrp) == 0) { if (killpg(cmnd_pgrp, SIGCONT) != 0) sudo_warn("kill(%d, SIGCONT)", (int)cmnd_pgrp); @@ -92,8 +92,8 @@ suspend_sudo_nopty(struct exec_closure *ec, int signo, pid_t ppgrp, if (sudo_sigaction(SIGTSTP, &sa, &osa) != 0) sudo_warn(U_("unable to set handler for signal %d"), SIGTSTP); } - if (kill(getpid(), signo) != 0) - sudo_warn("kill(%d, %d)", (int)getpid(), signo); + if (kill(my_pid, signo) != 0) + sudo_warn("kill(%d, %d)", (int)my_pid, signo); if (signo == SIGTSTP) { if (sudo_sigaction(SIGTSTP, &osa, NULL) != 0) sudo_warn(U_("unable to restore handler for signal %d"), SIGTSTP); @@ -110,7 +110,7 @@ suspend_sudo_nopty(struct exec_closure *ec, int signo, pid_t ppgrp, * It is possible that we are no longer the foreground process, * use tcsetpgrp_nobg() to prevent sudo from receiving SIGTTOU. */ - if (saved_pgrp != ppgrp) + if (saved_pgrp != my_pgrp) tcsetpgrp_nobg(fd, saved_pgrp); close(fd); } diff --git a/src/tgetpass.c b/src/tgetpass.c index e99aecd2cc..935afac7c8 100644 --- a/src/tgetpass.c +++ b/src/tgetpass.c @@ -247,7 +247,8 @@ tgetpass(const char *prompt, int timeout, int flags, /* Restore old tty settings. */ if (!ISSET(flags, TGP_ECHO)) { /* Restore old tty settings if possible. */ - (void) sudo_term_restore(input, true); + if (!sudo_term_restore(input, true)) + sudo_warn("%s", U_("unable to restore terminal settings")); } if (ttyfd != -1) (void) close(ttyfd); diff --git a/src/ttyname.c b/src/ttyname.c index db5fb7155c..12432a507b 100644 --- a/src/ttyname.c +++ b/src/ttyname.c @@ -46,7 +46,7 @@ #include #if defined(HAVE_KINFO_PROC2_NETBSD) || defined (HAVE_KINFO_PROC_OPENBSD) || defined(HAVE_KINFO_PROC_44BSD) # include -#elif defined(HAVE_KINFO_PROC_FREEBSD) +#elif defined(HAVE_KINFO_PROC_FREEBSD) || defined(HAVE_KINFO_PROC_DFLY) # include # include # include @@ -80,6 +80,11 @@ # define sudo_kinfo_proc kinfo_proc # define sudo_kp_tdev ki_tdev # define sudo_kp_namelen 4 +#elif defined(HAVE_KINFO_PROC_DFLY) +# define SUDO_KERN_PROC KERN_PROC +# define sudo_kinfo_proc kinfo_proc +# define sudo_kp_tdev kp_tdev +# define sudo_kp_namelen 4 #elif defined(HAVE_KINFO_PROC_44BSD) # define SUDO_KERN_PROC KERN_PROC # define sudo_kinfo_proc kinfo_proc