From: Bdale Garbee Date: Sun, 23 Oct 2011 05:41:42 +0000 (-0600) Subject: Imported Upstream version 1.8.3 X-Git-Tag: upstream/1.8.3^0 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=6ba3f54741e413f12fdc27fbc8d1ba85f94c64a2;p=debian%2Fsudo Imported Upstream version 1.8.3 --- diff --git a/ChangeLog b/ChangeLog index 3383f48..98e4a39 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,8 +1,341 @@ +2011-10-21 Todd C. Miller + + * .hgtags: + Added tag SUDO_1_8_3 for changeset 82bec4d3a203 + [6c953ef6f577] [tip] <1.8> + + * Update Japanese sudoers translation from translationproject.org + [82bec4d3a203] [SUDO_1_8_3] <1.8> + +2011-10-12 Todd C. Miller + + * configure, configure.in: + Override and ignore the --disable-static option. Sudo already runs + libtool with -tag=disable-static where applicable and we need non- + PIC objects to build the executables. + [dff177464029] <1.8> + +2011-10-10 Todd C. Miller + + * NEWS: + Add sudoedit fix + [3238dc7e4fb2] <1.8> + + * plugins/sudoers/po/sudoers.pot: + regen pot files + [7981d6cbf1ab] <1.8> + + * Ignore set_logname (which is now the default) for sudoedit since we + want the LOGNAME, USER and USERNAME environment variables to refer + to the calling user since that is who the editor runs as. This + allows the editor to find the user's startup files. Fixes bugzilla + #515 + [3b9486e5fddb] <1.8> + + * Instead of trying to grow the buffer in make_grlist_item(), simply + increase the total length, free the old buffer and allocate a new + one. This is less error prone and saves us from having to adjust + all the pointers in the buffer. This code path is only taken when + there are groups longer than the length of the user field in struct + utmp or utmpx, which should be quite rare. + [cb7c5ac834b5] <1.8> + + * Add Italian translation for sudo from translationproject.org + [c7876fccbc38] <1.8> + + * NEWS: + Japanese translation for sudo and sudoers from + translationproject.org + [9945a3ef7ff7] <1.8> + +2011-10-07 Todd C. Miller + + * sudoreplay depends on timestr.lo too; from Mike Frysinger + [ad9ae493205f] <1.8> + +2011-10-04 Todd C. Miller + + * plugins/sudoers/po/sudoers.pot: + Regen sudoers pot file. + [2c4d99361994] <1.8> + + * NEWS: + Update with latest sudo 1.8.3 news + [4e7f59d339d4] <1.8> + + * ldap_start_tls_s() on Debian (at least) sets the effective and saved + uids to the same value as the real uid. This prevents sudo from + setting the uid or gid later on. As a workaround, we now set perms + to root during sudoers_policy_open(). + [eb4c4f15833a] <1.8> + + * Better warning message on setuid() failure for the setreuid() + version of set_perms(). + [308c72f601e4] <1.8> + +2011-10-02 Todd C. Miller + + * NEWS: + Combine new translations in NEWS item + [0aa07471a5e6] <1.8> + +2011-09-27 Todd C. Miller + + * Delref auth_pw at the end of check_user() instead of getting a ref + twice. + [1c882f2fb46c] <1.8> + + * Make sudo_auth_{init,cleanup} return TRUE on success and check for + sudo_auth_init() return value in check_user(). + [573bf35ecac9] <1.8> + + * Do not return without restoring permissions. + [2444a0b96469] <1.8> + + * plugins/sudoers/po/sudoers.pot, src/po/sudo.pot: + regen pot files + [d286bce8dbb1] <1.8> + + * NEWS: + Update for latest release candidate + [63d184ba6263] <1.8> + + * plugins/sudoers/po/sudoers.pot, src/po/sudo.pot: + regen pot files + [ac3ec1315df7] <1.8> + + * Modify the authentication API such that the init and cleanup + functions are always called, regardless of whether or not we are + going to verify a password. This is needed for proper PAM session + support. + [ea281ca46d94] <1.8> + + * Add missing dependency for getspwgen other depends. + [9c124272910d] <1.8> + + * Fix a PAM_USER mismatch in session open/close. We update PAM_USER + to the target user immediately before setting resource limits, which + is after the monitor process has forked (so it has the old value). + Also, if the user did not authenticate, there is no pamh in the + monitor so we need to init pam here too. This means we end up + calling pam_start() twice, which should be fixed, but at least the + session is always properly closed now. + [d0866ee5f190] <1.8> + + * Add check for old being NULL in utmp_setid(); from Steven McDonald + [30cc283ac2b4] <1.8> + +2011-09-25 Todd C. Miller + + * If the invoking user cannot be resolved by uid fake the struct + passwd and store it in the cache so we can delref it on exit. + [19d44f44d45d] <1.8> + +2011-09-24 Todd C. Miller + + * Don't error out if the group plugin cannot be loaded, just warn. + [e91d9912c9a0] <1.8> + +2011-09-23 Todd C. Miller + + * Quiet a false positive found by several static analysis tools. These + tools don't know that log_error() does not return (it longjmps to + error_jmp which returns to the sudo front-end). + [3cc319e31ed6] <1.8> + +2011-09-22 Todd C. Miller + + * Add Italian translation for sudo from translationproject.org Regen + .mo files + [c0b27f9d7e57] <1.8> + + * .hgtags: + Added tag SUDO_1_8_2 for changeset 3682e51af1d0 + [f0be566e9ea2] <1.8> + +2011-09-21 Todd C. Miller + + * Update to current reality and add bit about ssh auth + [48dcb86ce9be] <1.8> + + * Make "verbose" static; fixes a namespace clash with + pam_ssh_agent_auth (and it doesn't need to be extern these days). + [b60fdd82de94] <1.8> + + * configure, configure.in: + FreeBSD has libutil.h not util.h + [c03b121e0193] <1.8> + + * configure, configure.in: + Define _BSD_SOURCE on FreeBSD, OpenBSD and DragonflyBSD + [002e3e0bb173] <1.8> + + * Update po files from translationproject.org + [2b36af902213] <1.8> + +2011-09-16 Todd C. Miller + + * NEWS: + Mention DEREF support + [dfeb152f1686] <1.8> + + * plugins/sudoers/po/sudoers.pot: + sync pot files + [1fba22e927a3] <1.8> + + * doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in: + Add support for DEREF in ldap.conf. + [fe1cf6ad0add] <1.8> + + * Makefile.in: + install target should depend on ChangeLog too, not just install-doc + [f54e2ab633b8] <1.8> + + * NEWS, configure.in, doc/sudoers.cat, doc/sudoers.man.in: + Only iolog_file (not iolog_dir) supports mktemp-style suffixes. + [44a25099594e] <1.8> + + * configure.in, plugins/sudoers/po/sudoers.pot, src/po/sudo.pot: + regen pot files + [e14ee85cf49b] <1.8> + + * configure, configure.in: + Fix some square brackets in case statements that needed to be + doubled up. While here, use $OSMAJOR when it makes sense. + [853c6e5f994c] <1.8> + + * Fix a crash in make_grlist_item() on 64-bit machines with strict + alignment. + [e877c89ae32f] <1.8> + + * Remove list_options() function that is no longer used now that "sudo + -L" is gone. + [f31543c80b98] <1.8> + + * configure, configure.in: + Error message if user tries --with-CC + [0ed7558b8924] <1.8> + + * configure, configure.in: + Check for -libmldap too when looking for ldap libs, which is the + Tivoli Directory Server client library. + [831e32d1453c] <1.8> + + * plugins/sudoers/po/sudoers.pot, src/po/sudo.pot: + regen pot files for 1.8.3 + [df2fb085cff2] <1.8> + + * NEWS, configure, configure.in, doc/sudo.cat, doc/sudo.man.in, + doc/sudo_plugin.cat, doc/sudo_plugin.man.in, doc/sudoers.cat, + doc/sudoers.ldap.cat, doc/sudoers.ldap.man.in, doc/sudoers.man.in, + doc/sudoreplay.cat, doc/sudoreplay.man.in, doc/visudo.cat, + doc/visudo.man.in: + Update for version 1.8.3 + [38cf153add0a] <1.8> + +2011-09-09 Todd C. Miller + + * Honor NOPASSWD tag for denied commands too. + [f473c443ad54] <1.8> + + * INSTALL, configure, configure.in: + Remove --with-CC option; it doesn't work correctly now that we use + libtool. Users can get the same effect by setting the CC + environment variable when running configure. + [4f04869d74fd] <1.8> + +2011-08-31 Todd C. Miller + + * configure, configure.in: + Assume all modern systems support fstat(2). + [0422b19dced3] <1.8> + +2011-08-30 Todd C. Miller + + * configure, configure.in: + Add configure test for missing errno declaration and only declare it + ourselves if it is missing. + [6d26974f7e16] <1.8> + + * Include errno.h before sudo.h to avoid conflicting with the system + definition of errno. + [8000bdc0968f] <1.8> + +2011-08-29 Todd C. Miller + + * Only print individual check status when there is a failure. + [bbdd669e7615] <1.8> + + * Add calls to setprogname() for test programs. + [c721f3466a3a] <1.8> + + * configure, configure.in: + Add -Wall and -Werror after all tests so they don't cause failures. + [20d75ce40086] <1.8> + + * Actually run check_addr in the check target + [dcd96ef0dc57] <1.8> + + * Split out address matching into its own file and add regression + tests for it. + [863f28589c24] <1.8> + +2011-08-27 Todd C. Miller + + * Fix matching a network number with netmask when the network number + is not the first address in the CIDR block. + [719942c986e9] <1.8> + +2011-08-26 Todd C. Miller + + * Don't assume all editors support the +linenumber command line + argument, use a whitelist of known good editors. + [d8d884af3b05] <1.8> + +2011-08-23 Todd C. Miller + + * Silence compiler warnings on Solaris with gcc 3.4.3 + [8047cdb5d6a1] <1.8> + + * Fix building on RHEL 3 + [6bb0464a7450] <1.8> + + * INSTALL, configure, configure.in: + Add --enable-werror configure option. + [aa40fd459836] <1.8> + + * setgroups() proto lives in grp.h on RHEL4, perhaps others. + [92f98cbaebf0] <1.8> + + * configure, configure.in: + Use PAM by default on AIX 6 and higher. + [7ef53d5ac819] <1.8> + +2011-08-22 Todd C. Miller + + * Add new Esperanto translation from translationproject.org + [109ed683b885] <1.8> + +2011-08-19 Todd C. Miller + + * Quiet an innocuous valgrind warning. + [fc453e49f9dd] <1.8> + +2011-08-18 Todd C. Miller + + * Fix expansion of strftime() escapes in log_dir and add a regress + test that exhibited the problem. + [784e60d21f11] <1.8> + + * plugins/sudoers/po/sudoers.pot, src/po/sudo.pot: + Fix "make check" return value. + [d3608efd8da6] <1.8> + 2011-08-17 Todd C. Miller * plugins/sudoers/po/sudoers.pot: Regen pot files - [3682e51af1d0] [tip] <1.8> + [3682e51af1d0] [SUDO_1_8_2] <1.8> * Makefile.in: Fix logic inversion in pot file up to date check. diff --git a/INSTALL b/INSTALL index 6597087..a2c9cb4 100644 --- a/INSTALL +++ b/INSTALL @@ -99,9 +99,6 @@ Directory and file names: Find the sources in DIR [configure dir or ..] Special features/options: - --with-CC=PATH - Specifies path to C compiler you wish to use. - --with-incpath=DIR Adds the specified directory (or directories) to CPPFLAGS so configure and the compiler will look there for include @@ -630,6 +627,9 @@ The following options are also configurable at runtime: --enable-warnings Enable compiler warnings when building sudo with gcc. + --enable-werror + Enable the -Werror compiler option when building sudo with gcc. + --enable-admin-flag Enable the creation of an Ubuntu-style admin flag file the first time sudo is run. @@ -712,14 +712,15 @@ Solaris 2.x: CD. You can also get them from various places on the net, including http://www.sunfreeware.com/ NOTE: sudo will *not* build with the sun C compiler in BSD - compatibility mode (/usr/ucb/cc). Sudo is designed to - compile with the standard C compiler (or gcc) and will - not build correctly with /usr/ucb/cc. You can use the - `--with-CC' option to point `configure' to the non-ucb - compiler if it is not the first cc in your path. Some - sites link /usr/ucb/cc to gcc; configure will not notice - this and still refuse to use /usr/ucb/cc, so make sure gcc - is also in your path if your site is setup this way. + compatibility mode (/usr/ucb/cc). Sudo is designed to + compile with the standard C compiler (or gcc) and will + not build correctly with /usr/ucb/cc. You can set the + CC environment variable to the non-ucb compiler when + running `configure' if it is not the first cc in your + path. Some sites link /usr/ucb/cc to gcc; configure will + not notice this and still refuse to use /usr/ucb/cc, so + make sure gcc is also in your path if your site is setup + this way. Also: Older versions of Solaris come with a broken syslogd. If you have having problems with sudo logging you should make sure you have the latest syslogd patch installed. diff --git a/MANIFEST b/MANIFEST index b670813..f7c1f90 100644 --- a/MANIFEST +++ b/MANIFEST @@ -178,6 +178,7 @@ plugins/sudoers/logging.c plugins/sudoers/logging.h plugins/sudoers/logwrap.c plugins/sudoers/match.c +plugins/sudoers/match_addr.c plugins/sudoers/mkdefaults plugins/sudoers/parse.c plugins/sudoers/parse.h @@ -185,10 +186,14 @@ plugins/sudoers/plugin_error.c plugins/sudoers/po/README plugins/sudoers/po/da.mo plugins/sudoers/po/da.po +plugins/sudoers/po/eo.mo +plugins/sudoers/po/eo.po plugins/sudoers/po/eu.mo plugins/sudoers/po/eu.po plugins/sudoers/po/fi.mo plugins/sudoers/po/fi.po +plugins/sudoers/po/ja.mo +plugins/sudoers/po/ja.po plugins/sudoers/po/pl.mo plugins/sudoers/po/pl.po plugins/sudoers/po/sudoers.pot @@ -204,6 +209,8 @@ plugins/sudoers/regress/iolog_path/data plugins/sudoers/regress/logging/check_wrap.c plugins/sudoers/regress/logging/check_wrap.in plugins/sudoers/regress/logging/check_wrap.out.ok +plugins/sudoers/regress/parser/check_addr.c +plugins/sudoers/regress/parser/check_addr.in plugins/sudoers/regress/parser/check_fill.c plugins/sudoers/regress/sudoers/test1.in plugins/sudoers/regress/sudoers/test1.out.ok @@ -263,10 +270,16 @@ src/parse_args.c src/po/README src/po/da.mo src/po/da.po +src/po/eo.mo +src/po/eo.po src/po/eu.mo src/po/eu.po src/po/fi.mo src/po/fi.po +src/po/it.mo +src/po/it.po +src/po/ja.mo +src/po/ja.po src/po/pl.mo src/po/pl.po src/po/ru.mo diff --git a/Makefile.in b/Makefile.in index 1f5f713..d367fd2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -99,7 +99,7 @@ install-doc: config.status ChangeLog exit $$?; \ done -install: config.status pre-install install-nls +install: config.status ChangeLog pre-install install-nls for d in $(SUBDIRS); \ do (cd $$d && exec $(MAKE) $@) && continue; \ exit $$?; \ diff --git a/NEWS b/NEWS index abcbcc9..dcbbd03 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,50 @@ +What's new in Sudo 1.8.3? + + * Fixed expansion of strftime() escape sequences in the "log_dir" + sudoers setting. + + * Esperanto, Italian and Japanese translations from translationproject.org. + + * Sudo will now use PAM by default on AIX 6 and higher. + + * Added --enable-werror configure option for gcc's -Werror flag. + + * Visudo no longer assumes all editors support the +linenumber + command line argument. It now uses a whitelist of editors known + to support the option. + + * Fixed matching of network addresses when a netmask is specified + but the address is not the first one in the CIDR block. + + * The configure script now check whether or not errno.h declares + the errno variable. Previously, sudo would always declare errno + itself for older systems that don't declare it in errno.h. + + * The NOPASSWD tag is now honored for denied commands too, which + matches historic sudo behavior (prior to sudo 1.7.0). + + * Sudo now honors the "DEREF" setting in ldap.conf which controls + how alias dereferencing is done during an LDAP search. + + * A symbol conflict with the pam_ssh_agent_auth PAM module that + would cause a crash been resolved. + + * The inability to load a group provider plugin is no longer + a fatal error. + + * A potential crash in the utmp handling code has been fixed. + + * Two PAM session issues have been resolved. In previous versions + of sudo, the PAM session was opened as one user and closed as + another. Additionally, if no authentication was performed, the + PAM session would never be closed. + + * Sudo will now work correctly with LDAP-based sudoers using TLS + or SSL on Debian systems. + + * The LOGNAME, USER and USERNAME environment variables are preserved + correctly again in sudoedit mode. + What's new in Sudo 1.8.2? * Sudo, visudo, sudoreplay and the sudoers plug-in now have natural diff --git a/common/setgroups.c b/common/setgroups.c index c469d20..2c42816 100644 --- a/common/setgroups.c +++ b/common/setgroups.c @@ -32,6 +32,7 @@ # include #endif /* HAVE_UNISTD_H */ #include +#include #include #include "missing.h" diff --git a/compat/Makefile.in b/compat/Makefile.in index 5d971c6..09a02b2 100644 --- a/compat/Makefile.in +++ b/compat/Makefile.in @@ -146,7 +146,7 @@ glob.lo: $(srcdir)/glob.c $(top_builddir)/config.h $(incdir)/missing.h \ $(top_srcdir)/compat/glob.h $(top_srcdir)/compat/charclass.h $(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/glob.c globtest.o: $(srcdir)/regress/glob/globtest.c $(top_builddir)/config.h \ - $(top_srcdir)/compat/glob.h + $(top_srcdir)/compat/glob.h $(incdir)/missing.h $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/regress/glob/globtest.c isblank.lo: $(srcdir)/isblank.c $(top_builddir)/config.h $(incdir)/missing.h $(LIBTOOL) --mode=compile $(CC) -c -o $@ $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/isblank.c diff --git a/compat/regress/glob/globtest.c b/compat/regress/glob/globtest.c index 0c966fe..70de67c 100644 --- a/compat/regress/glob/globtest.c +++ b/compat/regress/glob/globtest.c @@ -21,11 +21,9 @@ #endif #include -#define MAX_RESULTS 256 +#include "missing.h" -#ifndef errno -extern int errno; -#endif +#define MAX_RESULTS 256 struct gl_entry { int flags; diff --git a/config.h.in b/config.h.in index a0c7045..7a9c248 100644 --- a/config.h.in +++ b/config.h.in @@ -79,6 +79,10 @@ /* 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. + */ +#undef HAVE_DECL_ERRNO + /* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you don't. */ #undef HAVE_DECL_SYS_SIGLIST @@ -125,9 +129,6 @@ /* Define to 1 if you have the `freeifaddrs' function. */ #undef HAVE_FREEIFADDRS -/* Define to 1 if you have the `fstat' function. */ -#undef HAVE_FSTAT - /* Define to 1 if you have the `futime' function. */ #undef HAVE_FUTIME @@ -313,6 +314,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H +/* Define to 1 if you have the header file. */ +#undef HAVE_LIBUTIL_H + /* Define to 1 to enable Linux audit support. */ #undef HAVE_LINUX_AUDIT diff --git a/configure b/configure index aa7b4c8..3f89ae3 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for sudo 1.8.2. +# Generated by GNU Autoconf 2.68 for sudo 1.8.3. # # Report bugs to . # @@ -570,8 +570,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='sudo' PACKAGE_TARNAME='sudo' -PACKAGE_VERSION='1.8.2' -PACKAGE_STRING='sudo 1.8.2' +PACKAGE_VERSION='1.8.3' +PACKAGE_STRING='sudo 1.8.3' PACKAGE_BUGREPORT='http://www.sudo.ws/bugs/' PACKAGE_URL='' @@ -874,6 +874,7 @@ enable_env_debug enable_zlib enable_env_reset enable_warnings +enable_werror enable_admin_flag enable_nls with_selinux @@ -1445,7 +1446,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.8.2 to adapt to many kinds of systems. +\`configure' configures sudo 1.8.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1510,7 +1511,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sudo 1.8.2:";; + short | recursive ) echo "Configuration of sudo 1.8.3:";; esac cat <<\_ACEOF @@ -1534,6 +1535,7 @@ Optional Features: --enable-zlib[=PATH] Whether to enable or disable zlib --enable-env-reset Whether to enable environment resetting by default. --enable-warnings Whether to enable compiler warnings + --enable-werror Whether to enable the -Werror compiler option --enable-admin-flag Whether to create a Ubuntu-style admin flag file --disable-nls Disable natural language support using gettext --enable-gss-krb5-ccache-name @@ -1726,7 +1728,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sudo configure 1.8.2 +sudo configure 1.8.3 generated by GNU Autoconf 2.68 Copyright (C) 2010 Free Software Foundation, Inc. @@ -2430,7 +2432,7 @@ cat >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.8.2, which was +It was created by sudo $as_me 1.8.3, which was generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2991,11 +2993,7 @@ fi # Check whether --with-CC was given. if test "${with_CC+set}" = set; then : withval=$with_CC; case $with_CC in - yes) as_fn_error $? "\"must give --with-CC an argument.\"" "$LINENO" 5 - ;; - no) as_fn_error $? "\"illegal argument: --without-CC.\"" "$LINENO" 5 - ;; - *) CC=$with_CC + *) as_fn_error $? "the --with-CC option is no longer supported, please set the CC environment variable instead." "$LINENO" 5 ;; esac fi @@ -5492,10 +5490,7 @@ fi # Check whether --enable-warnings was given. if test "${enable_warnings+set}" = set; then : enableval=$enable_warnings; case "$enableval" in - yes) if test X"$with_devel" != X"yes" -a -n "$GCC"; then - CFLAGS="${CFLAGS} -Wall" - fi - ;; + yes) ;; no) ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring unknown argument to --enable-warnings: $enableval" >&5 $as_echo "$as_me: WARNING: Ignoring unknown argument to --enable-warnings: $enableval" >&2;} @@ -5505,6 +5500,19 @@ $as_echo "$as_me: WARNING: Ignoring unknown argument to --enable-warnings: $enab fi +# Check whether --enable-werror was given. +if test "${enable_werror+set}" = set; then : + enableval=$enable_werror; case "$enableval" in + yes) ;; + no) ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring unknown argument to --enable-werror: $enableval" >&5 +$as_echo "$as_me: WARNING: Ignoring unknown argument to --enable-werror: $enableval" >&2;} + ;; + esac + +fi + + # Check whether --enable-admin-flag was given. if test "${enable_admin_flag+set}" = set; then : enableval=$enable_admin_flag; case "$enableval" in @@ -5981,6 +5989,12 @@ 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 + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring --disable-static, sudo does not install static libs" >&5 +$as_echo "$as_me: WARNING: Ignoring --disable-static, sudo does not install static libs" >&2;} + enable_static=yes +fi + ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then @@ -13478,10 +13492,6 @@ $as_echo "$with_noexec" >&6; } NOEXECFILE="sudo_noexec$_shrext" NOEXECDIR="`echo $with_noexec|sed 's:^\(.*\)/[^/]*:\1:'`" -if test X"$with_devel" = X"yes" -a -n "$GCC"; then - CFLAGS="${CFLAGS} -Wall" -fi - # Extract the first word of "uname", so it can be a program name with args. set dummy uname; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -13749,9 +13759,14 @@ rm -f core conftest.err conftest.$ac_objext \ fi LDFLAGS="$O_LDFLAGS" - # Use authenticate(3) as the default authentication method - if test X"$with_aixauth" = X""; then - for ac_func in authenticate + # On AIX 6 and higher default to PAM, else default to LAM + if test $OSMAJOR -ge 6; then + if test X"$with_pam" = X""; then + AUTH_EXCL_DEF="PAM" + fi + else + if test X"$with_aixauth" = X""; then + for ac_func in authenticate do : ac_fn_c_check_func "$LINENO" "authenticate" "ac_cv_func_authenticate" if test "x$ac_cv_func_authenticate" = xyes; then : @@ -13762,6 +13777,7 @@ _ACEOF fi done + fi fi # AIX analog of nsswitch.conf, enabled by default @@ -13793,10 +13809,10 @@ fi done - # LDR_PRELOAD is supported in AIX 5.3 and later - case "$OSREV" in - 1-4.*) with_noexec=no ;; - esac + # LDR_PRELOAD is only supported in AIX 5.3 and later + if test $OSMAJOR -lt 5; then + with_noexec=no + fi # AIX-specific functions for ac_func in getuserattr setauthdb @@ -13848,7 +13864,7 @@ $as_echo "$sudo_cv_var_hpccbundled" >&6; } # Build PA-RISC1.1 objects for better portability case "$host_cpu" in - hppa2-9*) + hppa[2-9]*) _CFLAGS="$CFLAGS" if test -n "$GCC"; then portable_flag="-march=1.1" @@ -13892,7 +13908,7 @@ $as_echo "$sudo_cv_var_daportable" >&6; } esac case "$host" in - *-*-hpux1-8.*) + *-*-hpux[1-8].*) $as_echo "#define BROKEN_SYSLOG 1" >>confdefs.h ;; @@ -14178,17 +14194,7 @@ fi ;; *-*-bsdi*) SKIP_SETREUID=yes - # Use shlicc for BSD/OS [23].x unless asked to do otherwise - if test "${with_CC+set}" != set -a "$ac_cv_prog_CC" = gcc; then - case "$OSMAJOR" in - 2|3) { $as_echo "$as_me:${as_lineno-$LINENO}: using shlicc as CC" >&5 -$as_echo "$as_me: using shlicc as CC" >&6;} - ac_cv_prog_CC=shlicc - CC="$ac_cv_prog_CC" - ;; - esac - fi - # Check for newer BSD auth API (just check for >= 3.0?) + # Check for newer BSD auth API if test -z "$with_bsdauth"; then for ac_func in auth_challenge do : @@ -14211,6 +14217,7 @@ done SKIP_SETREUID=yes ;; esac + OSDEFS="${OSDEFS} -D_BSD_SOURCE" if test "${with_skey-'no'}" = "yes"; then SUDOERS_LIBS="${SUDOERS_LIBS} -lmd" fi @@ -14220,25 +14227,22 @@ done ;; *-*-*openbsd*) # OpenBSD has a real setreuid(2) starting with 3.3 but - # we will use setreuid(2) instead. + # we will use setresuid(2) instead. SKIP_SETREUID=yes + OSDEFS="${OSDEFS} -D_BSD_SOURCE" CHECKSHADOW="false" # OpenBSD >= 3.0 supports BSD auth if test -z "$with_bsdauth"; then - case "$OSREV" in - 0-2.*) - ;; - *) + if test "$OSMAJOR" -ge 3; then AUTH_EXCL_DEF="BSD_AUTH" - ;; - esac + fi fi : ${with_logincap='maybe'} ;; *-*-*netbsd*) # NetBSD has a real setreuid(2) starting with 1.3.2 case "$OSREV" in - 0.9*|1.012*|1.3|1.3.1) + 0.9*|1.[012]*|1.3|1.3.1) SKIP_SETREUID=yes ;; esac @@ -14247,6 +14251,7 @@ done : ${with_logincap='maybe'} ;; *-*-dragonfly*) + OSDEFS="${OSDEFS} -D_BSD_SOURCE" if test "${with_skey-'no'}" = "yes"; then SUDOERS_LIBS="${SUDOERS_LIBS} -lmd" fi @@ -16252,7 +16257,7 @@ $as_echo "#define HAVE_GETGROUPS 1" >>confdefs.h fi LIBS=$ac_save_LIBS -for ac_func in strrchr sysconf tzset strftime fstat \ +for ac_func in strrchr sysconf tzset strftime \ regcomp setlocale nl_langinfo getaddrinfo mbr_check_membership \ setrlimit64 sysctl do : @@ -16346,7 +16351,7 @@ if test "x$ac_cv_func_openpty" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_OPENPTY 1 _ACEOF - for ac_header in util.h pty.h + for ac_header in libutil.h util.h pty.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -16399,7 +16404,7 @@ fi $as_echo "$ac_cv_lib_util_openpty" >&6; } if test "x$ac_cv_lib_util_openpty" = xyes; then : - for ac_header in util.h pty.h + for ac_header in libutil.h util.h pty.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" @@ -17743,6 +17748,22 @@ if test X"$enable_zlib" = X"builtin"; then fi +ac_fn_c_check_decl "$LINENO" "errno" "ac_cv_have_decl_errno" " +$ac_includes_default +#include + +" +if test "x$ac_cv_have_decl_errno" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_ERRNO $ac_have_decl +_ACEOF + + for ac_func in strsignal do : ac_fn_c_check_func "$LINENO" "strsignal" "ac_cv_func_strsignal" @@ -19432,6 +19453,32 @@ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done + if test "$found" = "no"; then + LDAP_LIBS="" + LIBS="$_LIBS" + for l in -libmldap -lidsldif; do + LIBS="${LIBS} $l" + LDAP_LIBS="${LDAP_LIBS} $l" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include +int +main () +{ +(void)ldap_init(0, 0) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + found=yes; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + fi if test "$found" = "no"; then LIBS="${_LIBS} -lldap" LDAP_LIBS="-lldap" @@ -19986,6 +20033,15 @@ if test -n "$LIBS"; then done fi +if test -n "$GCC"; then + if test X"$enable_warnings" = X"yes" -o X"$with_devel" = X"yes"; then + CFLAGS="${CFLAGS} -Wall" + fi + if test X"$enable_werror" = X"yes"; then + CFLAGS="${CFLAGS} -Werror" + fi +fi + test "$exec_prefix" = "NONE" && exec_prefix='$(prefix)' if test X"$with_noexec" != X"no" -o X"$with_selinux" != X"no"; then @@ -20559,7 +20615,7 @@ 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.8.2, which was +This file was extended by sudo $as_me 1.8.3, which was generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20625,7 +20681,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -sudo config.status 1.8.2 +sudo config.status 1.8.3 configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" diff --git a/configure.in b/configure.in index 7212ba8..9de75a6 100644 --- a/configure.in +++ b/configure.in @@ -3,7 +3,7 @@ dnl Process this file with GNU autoconf to produce a configure script. dnl dnl Copyright (c) 1994-1996,1998-2011 Todd C. Miller dnl -AC_INIT([sudo], [1.8.2], [http://www.sudo.ws/bugs/], [sudo]) +AC_INIT([sudo], [1.8.3], [http://www.sudo.ws/bugs/], [sudo]) AC_CONFIG_HEADER([config.h pathnames.h]) dnl dnl Note: this must come after AC_INIT @@ -224,11 +224,7 @@ esac]) AC_ARG_WITH(CC, [AS_HELP_STRING([--with-CC], [C compiler to use])], [case $with_CC in - yes) AC_MSG_ERROR(["must give --with-CC an argument."]) - ;; - no) AC_MSG_ERROR(["illegal argument: --without-CC."]) - ;; - *) CC=$with_CC + *) AC_MSG_ERROR([the --with-CC option is no longer supported, please set the CC environment variable instead.]) ;; esac]) @@ -1294,16 +1290,23 @@ fi AC_ARG_ENABLE(warnings, [AS_HELP_STRING([--enable-warnings], [Whether to enable compiler warnings])], [ case "$enableval" in - yes) if test X"$with_devel" != X"yes" -a -n "$GCC"; then - CFLAGS="${CFLAGS} -Wall" - fi - ;; + yes) ;; no) ;; *) AC_MSG_WARN([Ignoring unknown argument to --enable-warnings: $enableval]) ;; esac ]) +AC_ARG_ENABLE(werror, +[AS_HELP_STRING([--enable-werror], [Whether to enable the -Werror compiler option])], +[ case "$enableval" in + yes) ;; + no) ;; + *) AC_MSG_WARN([Ignoring unknown argument to --enable-werror: $enableval]) + ;; + esac +]) + AC_ARG_ENABLE(admin-flag, [AS_HELP_STRING([--enable-admin-flag], [Whether to create a Ubuntu-style admin flag file])], [ case "$enableval" in @@ -1357,6 +1360,15 @@ if test "x$ac_cv_prog_cc_c89" = "xno"; then 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 + AC_MSG_WARN([Ignoring --disable-static, sudo does not install static libs]) + enable_static=yes +fi + dnl dnl Libtool setup, we require libtool 2.2.6b or higher dnl @@ -1394,13 +1406,6 @@ AC_MSG_RESULT($with_noexec) NOEXECFILE="sudo_noexec$_shrext" NOEXECDIR="`echo $with_noexec|sed 's:^\(.*\)/[[^/]]*:\1:'`" -dnl -dnl It is now safe to modify CFLAGS and CPPFLAGS -dnl -if test X"$with_devel" = X"yes" -a -n "$GCC"; then - CFLAGS="${CFLAGS} -Wall" -fi - dnl dnl Find programs we use dnl @@ -1511,9 +1516,15 @@ case "$host" in fi LDFLAGS="$O_LDFLAGS" - # Use authenticate(3) as the default authentication method - if test X"$with_aixauth" = X""; then - AC_CHECK_FUNCS(authenticate, [AUTH_EXCL_DEF="AIX_AUTH"]) + # On AIX 6 and higher default to PAM, else default to LAM + if test $OSMAJOR -ge 6; then + if test X"$with_pam" = X""; then + AUTH_EXCL_DEF="PAM" + fi + else + if test X"$with_aixauth" = X""; then + AC_CHECK_FUNCS(authenticate, [AUTH_EXCL_DEF="AIX_AUTH"]) + fi fi # AIX analog of nsswitch.conf, enabled by default @@ -1531,10 +1542,10 @@ case "$host" in # For implementing getgrouplist() AC_CHECK_FUNCS(getgrset) - # LDR_PRELOAD is supported in AIX 5.3 and later - case "$OSREV" in - [1-4].*) with_noexec=no ;; - esac + # LDR_PRELOAD is only supported in AIX 5.3 and later + if test $OSMAJOR -lt 5; then + with_noexec=no + fi # AIX-specific functions AC_CHECK_FUNCS(getuserattr setauthdb) @@ -1569,7 +1580,7 @@ case "$host" in # Build PA-RISC1.1 objects for better portability case "$host_cpu" in - hppa[2-9]*) + hppa[[2-9]]*) _CFLAGS="$CFLAGS" if test -n "$GCC"; then portable_flag="-march=1.1" @@ -1593,7 +1604,7 @@ case "$host" in esac case "$host" in - *-*-hpux[1-8].*) + *-*-hpux[[1-8]].*) AC_DEFINE(BROKEN_SYSLOG) ;; *-*-hpux9.*) @@ -1770,16 +1781,7 @@ case "$host" in ;; *-*-bsdi*) SKIP_SETREUID=yes - # Use shlicc for BSD/OS [23].x unless asked to do otherwise - if test "${with_CC+set}" != set -a "$ac_cv_prog_CC" = gcc; then - case "$OSMAJOR" in - 2|3) AC_MSG_NOTICE([using shlicc as CC]) - ac_cv_prog_CC=shlicc - CC="$ac_cv_prog_CC" - ;; - esac - fi - # Check for newer BSD auth API (just check for >= 3.0?) + # Check for newer BSD auth API if test -z "$with_bsdauth"; then AC_CHECK_FUNCS(auth_challenge, [AUTH_EXCL_DEF="BSD_AUTH"]) fi @@ -1792,6 +1794,7 @@ case "$host" in SKIP_SETREUID=yes ;; esac + OSDEFS="${OSDEFS} -D_BSD_SOURCE" if test "${with_skey-'no'}" = "yes"; then SUDOERS_LIBS="${SUDOERS_LIBS} -lmd" fi @@ -1801,25 +1804,22 @@ case "$host" in ;; *-*-*openbsd*) # OpenBSD has a real setreuid(2) starting with 3.3 but - # we will use setreuid(2) instead. + # we will use setresuid(2) instead. SKIP_SETREUID=yes + OSDEFS="${OSDEFS} -D_BSD_SOURCE" CHECKSHADOW="false" # OpenBSD >= 3.0 supports BSD auth if test -z "$with_bsdauth"; then - case "$OSREV" in - [0-2].*) - ;; - *) + if test "$OSMAJOR" -ge 3; then AUTH_EXCL_DEF="BSD_AUTH" - ;; - esac + fi fi : ${with_logincap='maybe'} ;; *-*-*netbsd*) # NetBSD has a real setreuid(2) starting with 1.3.2 case "$OSREV" in - 0.9*|1.[012]*|1.3|1.3.1) + 0.9*|1.[[012]]*|1.3|1.3.1) SKIP_SETREUID=yes ;; esac @@ -1828,6 +1828,7 @@ case "$host" in : ${with_logincap='maybe'} ;; *-*-dragonfly*) + OSDEFS="${OSDEFS} -D_BSD_SOURCE" if test "${with_skey-'no'}" = "yes"; then SUDOERS_LIBS="${SUDOERS_LIBS} -lmd" fi @@ -2080,7 +2081,7 @@ dnl dnl Function checks dnl AC_FUNC_GETGROUPS -AC_CHECK_FUNCS(strrchr sysconf tzset strftime fstat \ +AC_CHECK_FUNCS(strrchr sysconf tzset strftime \ regcomp setlocale nl_langinfo getaddrinfo mbr_check_membership \ setrlimit64 sysctl) AC_REPLACE_FUNCS(getgrouplist) @@ -2094,9 +2095,9 @@ if test "$utmp_style" = "LEGACY"; then AC_CHECK_FUNCS(getttyent ttyslot, [break]) fi -AC_CHECK_FUNCS(openpty, [AC_CHECK_HEADERS(util.h pty.h, [break])], [ +AC_CHECK_FUNCS(openpty, [AC_CHECK_HEADERS(libutil.h util.h pty.h, [break])], [ AC_CHECK_LIB(util, openpty, [ - AC_CHECK_HEADERS(util.h pty.h, [break]) + AC_CHECK_HEADERS(libutil.h util.h pty.h, [break]) case "$SUDO_LIBS" in *-lutil*) ;; *) SUDO_LIBS="${SUDO_LIBS} -lutil";; @@ -2293,6 +2294,14 @@ if test X"$enable_zlib" = X"builtin"; then AC_CONFIG_FILES([zlib/Makefile]) fi +dnl +dnl Check for errno declaration in errno.h +dnl +AC_CHECK_DECLS([errno], [], [], [ +AC_INCLUDES_DEFAULT +#include +]) + dnl dnl Check for strsignal() or sys_siglist dnl @@ -2848,6 +2857,17 @@ if test ${with_ldap-'no'} != "no"; then #include #include ]], [[(void)ldap_init(0, 0)]])], [found=yes; break]) done + if test "$found" = "no"; then + LDAP_LIBS="" + LIBS="$_LIBS" + for l in -libmldap -lidsldif; do + LIBS="${LIBS} $l" + LDAP_LIBS="${LDAP_LIBS} $l" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include + #include + #include ]], [[(void)ldap_init(0, 0)]])], [found=yes; break]) + done + fi dnl if nothing linked just try with -lldap if test "$found" = "no"; then LIBS="${_LIBS} -lldap" @@ -3009,6 +3029,18 @@ if test -n "$LIBS"; then done fi +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 + CFLAGS="${CFLAGS} -Wall" + fi + if test X"$enable_werror" = X"yes"; then + CFLAGS="${CFLAGS} -Werror" + fi +fi + dnl dnl Set exec_prefix dnl diff --git a/doc/TROUBLESHOOTING b/doc/TROUBLESHOOTING index 9ed1817..d1cd728 100644 --- a/doc/TROUBLESHOOTING +++ b/doc/TROUBLESHOOTING @@ -27,7 +27,7 @@ A) Sudo must be setuid root to do its work. You need to do something like Q) Sudo never gives me a chance to enter a password using PAM, it just says 'Sorry, try again.' three times and exits. -A) You didn't setup PAM to work with sudo. On Redhat Linux or Fedora +A) You didn't setup PAM to work with sudo. On RedHat Linux or Fedora Core this generally means installing sample.pam as /etc/pam.d/sudo. See the sample.pam file for hints on what to use for other Linux systems. @@ -55,14 +55,20 @@ A) Make sure you have an entry in your syslog.conf file to save Q) When sudo asks me for my password it never accepts what I enter even though I know I entered my password correctly. -A) If your system uses shadow passwords, it is possible that sudo - didn't detect this. Take a look at the generated config.h file - and verify that the C function used for shadow password lookups - was detected. For instance, for SVR4-style shadow passwords, - HAVE_GETSPNAM should be defined (you can search for the string - "shadow passwords" in config.h with your editor). Note that - there is no define for 4.4BSD-based shadow passwords since that - just uses the standard getpw* routines. +A) If you are not using pam and your system uses shadow passwords, + it is possible that sudo didn't properly detect that shadow + passwords are in use. Take a look at the generated config.h + file and verify that the C function used for shadow password + look ups was detected. For instance, for SVR4-style shadow + passwords, HAVE_GETSPNAM should be defined (you can search for + the string "shadow passwords" in config.h with your editor). + Note that there is no define for 4.4BSD-based shadow passwords + since that just uses the standard getpw* routines. + +Q) Can sudo use the ssh agent for authentication instead of asking + for the user's Unix password? +A) Not directly, but you can use a PAM module like pam_ssh_agent_auth + or pam_ssh for this purpose. Q) I don't want the sudoers file in /etc, how can I specify where it should go? @@ -72,21 +78,25 @@ A) Use the --sysconfdir option to configure. Ie: Q) Can I put the sudoers file in NIS/NIS+ or do I have to have a copy on each machine? A) There is no support for making an NIS/NIS+ map/table out of - the sudoers file at this time. A good way to distribute the - sudoers file is via rdist(1). It is also possible to NFS-mount - the sudoers file. + the sudoers file at this time. You can distribute the sudoers + file via rsync or rdist. It is also possible to NFS-mount the + sudoers file. If you use LDAP at your site you may be interested + in sudo's LDAP sudoers support, see the README.LDAP file and the + sudoers.ldap manual. Q) I don't run sendmail on my machine. Does this mean that I cannot use sudo? -A) No, you just need to run use the --without-sendmail argument to configure - or add "!mailerpath" to the Defaults line in /etc/sudoers. +A) No, you just need to disable mailing with a line like: + Defaults !mailerpath + in your sudoers file or run configure with the --without-sendmail + option. Q) When I run visudo it uses vi as the editor and I hate vi. How can I make it use another editor? -A) Your best bet is to run configure with the --with-env-editor switch. - This will make visudo use the editor specified by the user's - EDITOR environment variable. Alternately, you can run configure - with the --with-editor=/path/to/another/editor. +A) You can specify the editor to use in visudo in the sudoers file. + See the "editor" and "env_editor" entries in the sudoers manual. + The defaults can also be set at configure time using the + --with-editor and --with-env-editor configure options. Q) Sudo appears to be removing some variables from my environment, why? A) Sudo removes the following "dangerous" environment variables @@ -120,13 +130,14 @@ A) Sudo removes the following "dangerous" environment variables DLC_ACE (SecurID only) Q) How can I keep sudo from asking for a password? -A) To specify this on a per-user (and per-command) basis, use the 'NOPASSWD' - tag right before the command list in sudoers. See the sudoers man page - and sample.sudoers for details. To disable passwords completely, - run configure with the --without-passwd option or add "!authenticate" - to the Defaults line in /etc/sudoers. You can also turn off authentication - on a per-user or per-host basis using a user or host-specific Defaults - entry in sudoers. +A) To specify this on a per-user (and per-command) basis, use the + 'NOPASSWD' tag right before the command list in sudoers. See + the sudoers man page and sample.sudoers for details. To disable + passwords completely, add !authenticate" to the Defaults line + in /etc/sudoers. You can also turn off authentication on a + per-user or per-host basis using a user or host-specific Defaults + entry in sudoers. To hard-code the global default, you can + configure with the --without-passwd option. Q) When I run configure, it dies with the following error: "no acceptable cc found in $PATH". @@ -184,7 +195,7 @@ A) The default user sudo tries to run things as is always root, even if work around this using the 'runas_default' option in sudoers. For example: Defaults:bob runas_default=oracle - would achieve the desired result ofr the preceding sudoers fragment. + would achieve the desired result for the preceding sudoers fragment. Q) When I try to run sudo via ssh, I get the error: sudo: no tty present and no askpass program specified diff --git a/doc/sudo.cat b/doc/sudo.cat index 30a6aca..ed8a69e 100644 --- a/doc/sudo.cat +++ b/doc/sudo.cat @@ -547,4 +547,4 @@ DDIISSCCLLAAIIMMEERR -1.8.2 August 17, 2011 SUDO(1m) +1.8.3 September 16, 2011 SUDO(1m) diff --git a/doc/sudo.man.in b/doc/sudo.man.in index 435e305..c36d63b 100644 --- a/doc/sudo.man.in +++ b/doc/sudo.man.in @@ -149,7 +149,7 @@ .\" ======================================================================== .\" .IX Title "SUDO @mansectsu@" -.TH SUDO @mansectsu@ "August 17, 2011" "1.8.2" "MAINTENANCE COMMANDS" +.TH SUDO @mansectsu@ "September 16, 2011" "1.8.3" "MAINTENANCE COMMANDS" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff --git a/doc/sudo_plugin.cat b/doc/sudo_plugin.cat index 2638092..20cba64 100644 --- a/doc/sudo_plugin.cat +++ b/doc/sudo_plugin.cat @@ -1030,4 +1030,4 @@ DDIISSCCLLAAIIMMEERR -1.8.2 May 22, 2011 SUDO_PLUGIN(1m) +1.8.3 September 16, 2011 SUDO_PLUGIN(1m) diff --git a/doc/sudo_plugin.man.in b/doc/sudo_plugin.man.in index 2fe44c6..7a161ab 100644 --- a/doc/sudo_plugin.man.in +++ b/doc/sudo_plugin.man.in @@ -139,7 +139,7 @@ .\" ======================================================================== .\" .IX Title "SUDO_PLUGIN @mansectsu@" -.TH SUDO_PLUGIN @mansectsu@ "May 22, 2011" "1.8.2" "MAINTENANCE COMMANDS" +.TH SUDO_PLUGIN @mansectsu@ "September 16, 2011" "1.8.3" "MAINTENANCE COMMANDS" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff --git a/doc/sudoers.cat b/doc/sudoers.cat index 8026596..2459758 100644 --- a/doc/sudoers.cat +++ b/doc/sudoers.cat @@ -1068,10 +1068,6 @@ SSUUDDOOEERRSS OOPPTTIIOONNSS To include a literal `%' character, the string `%%' should be used. - Path names that end in six or more Xs will have the Xs - replaced with a unique combination of digits and - letters, similar to the _m_k_t_e_m_p_(_) function. - iolog_file The path name, relative to _i_o_l_o_g___d_i_r, in which to store input/output logs when the _l_o_g___i_n_p_u_t or _l_o_g___o_u_t_p_u_t options are enabled or when the LOG_INPUT or LOG_OUTPUT @@ -1082,6 +1078,11 @@ SSUUDDOOEERRSS OOPPTTIIOONNSS See the _i_o_l_o_g___d_i_r option above for a list of supported percent (`%') escape sequences. + In addition to the escape sequences, path names that + end in six or more Xs will have the Xs replaced with a + unique combination of digits and letters, similar to + the _m_k_t_e_m_p_(_) function. + mailsub Subject of the mail sent to the _m_a_i_l_t_o user. The escape %h will expand to the host name of the machine. Default is *** SECURITY information for %h ***. @@ -1682,4 +1683,4 @@ DDIISSCCLLAAIIMMEERR -1.8.2 August 17, 2011 SUDOERS(4) +1.8.3 September 16, 2011 SUDOERS(4) diff --git a/doc/sudoers.ldap.cat b/doc/sudoers.ldap.cat index 89e122a..2b5e854 100644 --- a/doc/sudoers.ldap.cat +++ b/doc/sudoers.ldap.cat @@ -458,6 +458,10 @@ DDEESSCCRRIIPPTTIIOONN The path to the Kerberos 5 credential cache to use when authenticating with the remote server. + DDEERREEFF never/searching/finding/always + How alias dereferencing is to be performed when searching. See the + _l_d_a_p_._c_o_n_f(4) manual for a full description of this option. + See the ldap.conf entry in the EXAMPLES section. CCoonnffiigguurriinngg nnsssswwiittcchh..ccoonnff @@ -742,4 +746,4 @@ DDIISSCCLLAAIIMMEERR -1.8.2 August 17, 2011 SUDOERS.LDAP(4) +1.8.3 September 16, 2011 SUDOERS.LDAP(4) diff --git a/doc/sudoers.ldap.man.in b/doc/sudoers.ldap.man.in index 215713d..7732d38 100644 --- a/doc/sudoers.ldap.man.in +++ b/doc/sudoers.ldap.man.in @@ -140,7 +140,7 @@ .\" ======================================================================== .\" .IX Title "SUDOERS.LDAP @mansectform@" -.TH SUDOERS.LDAP @mansectform@ "August 17, 2011" "1.8.2" "MAINTENANCE COMMANDS" +.TH SUDOERS.LDAP @mansectform@ "September 16, 2011" "1.8.3" "MAINTENANCE COMMANDS" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -607,6 +607,10 @@ The \s-1SASL\s0 user name to use when \fB\s-1ROOTUSE_SASL\s0\fR is enabled. .IX Item "KRB5_CCNAME file name" The path to the Kerberos 5 credential cache to use when authenticating with the remote server. +.IP "\fB\s-1DEREF\s0\fR never/searching/finding/always" 4 +.IX Item "DEREF never/searching/finding/always" +How alias dereferencing is to be performed when searching. See the +\&\fIldap.conf\fR\|(@mansectform@) manual for a full description of this option. .PP See the \f(CW\*(C`ldap.conf\*(C'\fR entry in the \s-1EXAMPLES\s0 section. .SS "Configuring nsswitch.conf" diff --git a/doc/sudoers.ldap.pod b/doc/sudoers.ldap.pod index b12c6e6..88c6015 100644 --- a/doc/sudoers.ldap.pod +++ b/doc/sudoers.ldap.pod @@ -536,6 +536,11 @@ SASL programmer's manual for details. The path to the Kerberos 5 credential cache to use when authenticating with the remote server. +=item B never/searching/finding/always + +How alias dereferencing is to be performed when searching. See the +L manual for a full description of this option. + =back See the C entry in the L section. diff --git a/doc/sudoers.man.in b/doc/sudoers.man.in index faea227..59e9a31 100644 --- a/doc/sudoers.man.in +++ b/doc/sudoers.man.in @@ -148,7 +148,7 @@ .\" ======================================================================== .\" .IX Title "SUDOERS @mansectform@" -.TH SUDOERS @mansectform@ "August 17, 2011" "1.8.2" "MAINTENANCE COMMANDS" +.TH SUDOERS @mansectform@ "September 16, 2011" "1.8.3" "MAINTENANCE COMMANDS" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -1315,10 +1315,6 @@ function will be expanded. .Sp To include a literal `\f(CW\*(C`%\*(C'\fR' character, the string `\f(CW\*(C`%%\*(C'\fR' should be used. -.Sp -Path names that end in six or more \f(CW\*(C`X\*(C'\fRs will have the \f(CW\*(C`X\*(C'\fRs replaced -with a unique combination of digits and letters, similar to the -\&\fImktemp()\fR function. .RE .IP "iolog_file" 16 .IX Item "iolog_file" @@ -1330,6 +1326,10 @@ The default is \f(CW"%{seq}"\fR. .Sp See the \fIiolog_dir\fR option above for a list of supported percent (`\f(CW\*(C`%\*(C'\fR') escape sequences. +.Sp +In addition to the escape sequences, path names that end in six or +more \f(CW\*(C`X\*(C'\fRs will have the \f(CW\*(C`X\*(C'\fRs replaced with a unique combination +of digits and letters, similar to the \fImktemp()\fR function. .IP "mailsub" 16 .IX Item "mailsub" Subject of the mail sent to the \fImailto\fR user. The escape \f(CW%h\fR diff --git a/doc/sudoers.pod b/doc/sudoers.pod index b2257ca..0ecb74c 100644 --- a/doc/sudoers.pod +++ b/doc/sudoers.pod @@ -1233,10 +1233,6 @@ function will be expanded. To include a literal `C<%>' character, the string `C<%%>' should be used. -Path names that end in six or more Cs will have the Cs replaced -with a unique combination of digits and letters, similar to the -mktemp() function. - =item iolog_file The path name, relative to I, in which to store input/output @@ -1248,6 +1244,10 @@ The default is C<"%{seq}">. See the I option above for a list of supported percent (`C<%>') escape sequences. +In addition to the escape sequences, path names that end in six or +more Cs will have the Cs replaced with a unique combination +of digits and letters, similar to the mktemp() function. + =item mailsub Subject of the mail sent to the I user. The escape C<%h> diff --git a/doc/sudoreplay.cat b/doc/sudoreplay.cat index f04f5fa..f8751eb 100644 --- a/doc/sudoreplay.cat +++ b/doc/sudoreplay.cat @@ -260,4 +260,4 @@ DDIISSCCLLAAIIMMEERR -1.8.2 May 22, 2011 SUDOREPLAY(1m) +1.8.3 September 16, 2011 SUDOREPLAY(1m) diff --git a/doc/sudoreplay.man.in b/doc/sudoreplay.man.in index f821d76..fcce5ef 100644 --- a/doc/sudoreplay.man.in +++ b/doc/sudoreplay.man.in @@ -139,7 +139,7 @@ .\" ======================================================================== .\" .IX Title "SUDOREPLAY @mansectsu@" -.TH SUDOREPLAY @mansectsu@ "May 22, 2011" "1.8.2" "MAINTENANCE COMMANDS" +.TH SUDOREPLAY @mansectsu@ "September 16, 2011" "1.8.3" "MAINTENANCE COMMANDS" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff --git a/doc/visudo.cat b/doc/visudo.cat index ad117f3..e66435d 100644 --- a/doc/visudo.cat +++ b/doc/visudo.cat @@ -149,4 +149,4 @@ DDIISSCCLLAAIIMMEERR -1.8.2 August 17, 2011 VISUDO(1m) +1.8.3 September 16, 2011 VISUDO(1m) diff --git a/doc/visudo.man.in b/doc/visudo.man.in index a711ea7..0aaa96c 100644 --- a/doc/visudo.man.in +++ b/doc/visudo.man.in @@ -144,7 +144,7 @@ .\" ======================================================================== .\" .IX Title "VISUDO @mansectsu@" -.TH VISUDO @mansectsu@ "August 17, 2011" "1.8.2" "MAINTENANCE COMMANDS" +.TH VISUDO @mansectsu@ "September 16, 2011" "1.8.3" "MAINTENANCE COMMANDS" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff --git a/include/missing.h b/include/missing.h index e7eae3e..7ac9588 100644 --- a/include/missing.h +++ b/include/missing.h @@ -202,6 +202,13 @@ void setprogname(const char *); #endif /* HAVE___PROGNAME */ #endif /* !HAVE_GETPROGNAME */ +/* + * Declare errno if errno.h doesn't do it for us. + */ +#if defined(HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO +extern int errno; +#endif /* !HAVE_DECL_ERRNO */ + #ifndef timevalclear # define timevalclear(tv) ((tv)->tv_sec = (tv)->tv_usec = 0) #endif diff --git a/mkdep.pl b/mkdep.pl index cc228c2..67acbd4 100755 --- a/mkdep.pl +++ b/mkdep.pl @@ -52,7 +52,7 @@ sub mkdep { $makefile =~ s:\@SUDO_OBJS\@:preload.o selinux.o sesh.o sudo_noexec.lo:; $makefile =~ s:\@SUDOERS_OBJS\@:bsm_audit.lo linux_audit.lo ldap.lo plugin_error.lo:; # XXX - fill in AUTH_OBJS from contents of the auth dir instead - $makefile =~ s:\@AUTH_OBJS\@:afs.lo aix_auth.lo bsdauth.lo dce.lo fwtk.lo kerb4.lo kerb5.lo pam.lo passwd.lo rfc1938.lo secureware.lo securid.lo securid5.lo sia.lo:; + $makefile =~ s:\@AUTH_OBJS\@:afs.lo aix_auth.lo bsdauth.lo dce.lo fwtk.lo getspwuid.lo kerb4.lo kerb5.lo pam.lo passwd.lo rfc1938.lo secureware.lo securid.lo securid5.lo sia.lo:; $makefile =~ s:\@LTLIBOBJS\@:closefrom.lo dlopen.lo fnmatch.lo getcwd.lo getgrouplist.lo getline.lo getprogname.lo glob.lo isblank.lo memrchr.lo mksiglist.lo mktemp.lo nanosleep.lo setenv.lo siglist.lo snprintf.lo strlcat.lo strlcpy.lo strsignal.lo unsetenv.lo utimes.lo globtest.o fnm_test.o:; # Parse OBJS lines diff --git a/mkpkg b/mkpkg index d2aec97..ad4eca3 100755 --- a/mkpkg +++ b/mkpkg @@ -121,6 +121,10 @@ fi case "$osversion" in centos*|rhel*) prefix=/usr + if [ $osrelease -ge 40 ]; then + # RHEL 4 and up support SELinux + configure_opts="${configure_opts}${configure_opts+$tab}--with-selinux" + fi if [ $osrelease -ge 50 ]; then # RHEL 5 and up build pies, have audit support and use a # separate PAM config file for "sudo -i". @@ -140,7 +144,6 @@ case "$osversion" in --with-ignore-dot --with-tty-tickets --with-ldap - --with-selinux --with-passprompt=[sudo] password for %p: $configure_opts" ;; diff --git a/plugins/sudoers/Makefile.in b/plugins/sudoers/Makefile.in index e22abfa..3a0cddc 100644 --- a/plugins/sudoers/Makefile.in +++ b/plugins/sudoers/Makefile.in @@ -106,12 +106,13 @@ SHELL = @SHELL@ PROGS = sudoers.la visudo sudoreplay testsudoers -TEST_PROGS = check_iolog_path check_fill check_wrap +TEST_PROGS = check_iolog_path check_fill check_wrap check_addr AUTH_OBJS = sudo_auth.lo @AUTH_OBJS@ LIBPARSESUDOERS_OBJS = alias.lo audit.lo defaults.lo gram.lo match.lo \ - pwutil.lo timestr.lo toke.lo toke_util.lo redblack.lo + match_addr.lo pwutil.lo timestr.lo toke.lo \ + toke_util.lo redblack.lo SUDOERS_OBJS = $(AUTH_OBJS) boottime.lo check.lo env.lo goodpath.lo \ group_plugin.lo find_path.lo interfaces.lo logging.lo \ @@ -125,11 +126,13 @@ REPLAY_OBJS = getdate.o sudoreplay.o error.o TEST_OBJS = interfaces.o testsudoers.o tsgetgrpw.o error.o group_plugin.o \ net_ifs.o -CHECK_IOLOG_PATH_OBJS = check_iolog_path.o error.o iolog_path.o pwutil.o \ - redblack.o +CHECK_ADDR_OBJS = check_addr.o match_addr.o interfaces.o error.o CHECK_FILL_OBJS = check_fill.o toke_util.o error.o +CHECK_IOLOG_PATH_OBJS = check_iolog_path.o error.o iolog_path.o pwutil.o \ + redblack.o + CHECK_WRAP_OBJS = check_wrap.o logwrap.o error.o LIBOBJDIR = $(top_builddir)/@ac_config_libobj_dir@/ @@ -164,12 +167,15 @@ sudoers.la: $(SUDOERS_OBJS) $(LT_LIBS) libparsesudoers.la visudo: libparsesudoers.la $(VISUDO_OBJS) $(LT_LIBS) $(LIBTOOL) --mode=link $(CC) -o $@ $(VISUDO_OBJS) $(LDFLAGS) libparsesudoers.la $(LIBS) $(NET_LIBS) -sudoreplay: $(REPLAY_OBJS) $(LT_LIBS) +sudoreplay: timestr.lo $(REPLAY_OBJS) $(LT_LIBS) $(LIBTOOL) --mode=link $(CC) -o $@ $(REPLAY_OBJS) $(LDFLAGS) timestr.lo $(REPLAY_LIBS) $(LIBS) testsudoers: libparsesudoers.la $(TEST_OBJS) $(LT_LIBS) $(LIBTOOL) --mode=link $(CC) -o $@ $(TEST_OBJS) $(LDFLAGS) libparsesudoers.la $(LIBS) $(NET_LIBS) @LIBDL@ +check_addr: $(CHECK_ADDR_OBJS) $(LT_LIBS) + $(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_ADDR_OBJS) $(LDFLAGS) $(LIBS) + check_iolog_path: $(CHECK_IOLOG_PATH_OBJS) $(LT_LIBS) $(LIBTOOL) --mode=link $(CC) -o $@ $(CHECK_IOLOG_PATH_OBJS) $(LDFLAGS) $(LIBS) @@ -257,10 +263,12 @@ uninstall: check: $(TEST_PROGS) visudo testsudoers @-rval=0; \ - ./check_iolog_path $(srcdir)/regress/iolog_path/data; \ + ./check_addr $(srcdir)/regress/parser/check_addr.in; \ rval=`expr $$rval + $$?`; \ ./check_fill; \ rval=`expr $$rval + $$?`; \ + ./check_iolog_path $(srcdir)/regress/iolog_path/data; \ + rval=`expr $$rval + $$?`; \ ./check_wrap $(srcdir)/regress/logging/check_wrap.in > check_wrap.out; \ diff check_wrap.out $(srcdir)/regress/logging/check_wrap.out.ok; \ rval=`expr $$rval + $$?`; \ @@ -292,7 +300,8 @@ check: $(TEST_PROGS) visudo testsudoers total=`expr $$total + 1`; \ done; \ echo "$$dirbase: $$passed/$$total tests passed; $$failed/$$total tests failed"; \ - rval=$$failed; passed=0; failed=0; total=0; \ + rval=`expr $$rval + $$failed`; \ + passed=0; failed=0; total=0; \ for t in $(srcdir)/regress/*/*.sh; do \ dir=`dirname $$t`; \ dirbase=`basename $$dir`; \ @@ -382,6 +391,14 @@ check.lo: $(srcdir)/check.c $(top_builddir)/config.h $(srcdir)/sudoers.h \ $(srcdir)/defaults.h $(srcdir)/def_data.h $(srcdir)/logging.h \ $(srcdir)/sudo_nss.h $(incdir)/sudo_plugin.h $(incdir)/gettext.h $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/check.c +check_addr.o: $(srcdir)/regress/parser/check_addr.c $(top_builddir)/config.h \ + $(srcdir)/sudoers.h $(top_builddir)/pathnames.h \ + $(incdir)/missing.h $(incdir)/error.h $(incdir)/alloc.h \ + $(incdir)/list.h $(incdir)/fileops.h $(srcdir)/defaults.h \ + $(srcdir)/def_data.h $(srcdir)/logging.h $(srcdir)/sudo_nss.h \ + $(incdir)/sudo_plugin.h $(incdir)/gettext.h $(srcdir)/parse.h \ + $(srcdir)/interfaces.h + $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/regress/parser/check_addr.c check_fill.o: $(srcdir)/regress/parser/check_fill.c $(top_builddir)/config.h \ $(incdir)/list.h $(srcdir)/parse.h $(srcdir)/toke.h \ $(srcdir)/gram.h @@ -437,6 +454,13 @@ fwtk.lo: $(authdir)/fwtk.c $(top_builddir)/config.h $(srcdir)/sudoers.h \ getdate.o: $(devdir)/getdate.c $(top_builddir)/config.h \ $(top_builddir)/config.h $(incdir)/missing.h $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(devdir)/getdate.c +getspwuid.lo: $(srcdir)/getspwuid.c $(top_builddir)/config.h \ + $(srcdir)/sudoers.h $(top_builddir)/pathnames.h \ + $(incdir)/missing.h $(incdir)/error.h $(incdir)/alloc.h \ + $(incdir)/list.h $(incdir)/fileops.h $(srcdir)/defaults.h \ + $(srcdir)/def_data.h $(srcdir)/logging.h $(srcdir)/sudo_nss.h \ + $(incdir)/sudo_plugin.h $(incdir)/gettext.h + $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/getspwuid.c goodpath.lo: $(srcdir)/goodpath.c $(top_builddir)/config.h $(srcdir)/sudoers.h \ $(top_builddir)/pathnames.h $(incdir)/missing.h $(incdir)/error.h \ $(incdir)/alloc.h $(incdir)/list.h $(incdir)/fileops.h \ @@ -524,9 +548,18 @@ match.lo: $(srcdir)/match.c $(top_builddir)/config.h $(srcdir)/sudoers.h \ $(incdir)/alloc.h $(incdir)/list.h $(incdir)/fileops.h \ $(srcdir)/defaults.h $(srcdir)/def_data.h $(srcdir)/logging.h \ $(srcdir)/sudo_nss.h $(incdir)/sudo_plugin.h $(incdir)/gettext.h \ - $(srcdir)/interfaces.h $(srcdir)/parse.h $(srcdir)/gram.h \ - $(top_srcdir)/compat/fnmatch.h $(top_srcdir)/compat/glob.h + $(srcdir)/parse.h $(srcdir)/gram.h $(top_srcdir)/compat/fnmatch.h \ + $(top_srcdir)/compat/glob.h $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/match.c +match_addr.lo: $(srcdir)/match_addr.c $(top_builddir)/config.h \ + $(srcdir)/sudoers.h $(top_builddir)/pathnames.h \ + $(incdir)/missing.h $(incdir)/error.h $(incdir)/alloc.h \ + $(incdir)/list.h $(incdir)/fileops.h $(srcdir)/defaults.h \ + $(srcdir)/def_data.h $(srcdir)/logging.h $(srcdir)/sudo_nss.h \ + $(incdir)/sudo_plugin.h $(incdir)/gettext.h \ + $(srcdir)/interfaces.h + $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/match_addr.c +match_addr.o: match_addr.lo net_ifs.o: $(top_srcdir)/src/net_ifs.c $(top_builddir)/config.h \ $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \ $(incdir)/gettext.h @@ -626,8 +659,8 @@ sudoers.lo: $(srcdir)/sudoers.c $(top_builddir)/config.h $(srcdir)/sudoers.h \ $(incdir)/alloc.h $(incdir)/list.h $(incdir)/fileops.h \ $(srcdir)/defaults.h $(srcdir)/def_data.h $(srcdir)/logging.h \ $(srcdir)/sudo_nss.h $(incdir)/sudo_plugin.h $(incdir)/gettext.h \ - $(incdir)/lbuf.h $(srcdir)/interfaces.h \ - $(srcdir)/sudoers_version.h $(srcdir)/auth/sudo_auth.h + $(srcdir)/interfaces.h $(srcdir)/sudoers_version.h \ + $(srcdir)/auth/sudo_auth.h $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/sudoers.c sudoreplay.o: $(srcdir)/sudoreplay.c $(top_builddir)/config.h \ $(top_srcdir)/compat/timespec.h $(top_builddir)/pathnames.h \ diff --git a/plugins/sudoers/alias.c b/plugins/sudoers/alias.c index 0b2ad0e..20f2645 100644 --- a/plugins/sudoers/alias.c +++ b/plugins/sudoers/alias.c @@ -39,12 +39,12 @@ #ifdef HAVE_UNISTD_H # include #endif /* HAVE_UNISTD_H */ +#include #include "sudoers.h" #include "parse.h" #include "redblack.h" #include -#include /* * Globals diff --git a/plugins/sudoers/auth/API b/plugins/sudoers/auth/API index 24bd510..62c21d0 100644 --- a/plugins/sudoers/auth/API +++ b/plugins/sudoers/auth/API @@ -12,7 +12,7 @@ typedef struct sudo_auth { char *name; /* name of the method in string form */ void *data; /* method-specific data pointer */ - int (*init)(struct passwd *pw, char **prompt, sudo_auth *auth); + int (*init)(struct passwd *pw, sudo_auth *auth); int (*setup)(struct passwd *pw, char **prompt, sudo_auth *auth); int (*verify)(struct passwd *pw, char *p, sudo_auth *auth); int (*cleanup)(struct passwd *pw, sudo_auth *auth); @@ -64,11 +64,10 @@ The member functions can return the following values: The functions in the struct are as follows: - int init(struct passwd *pw, char **prompt, sudo_auth *auth) + int init(struct passwd *pw, sudo_auth *auth) Function to do any one-time initialization for the auth method. All of the "init" functions are run before anything - else. A pointer to the prompt string may be used to add - method-specific info to the prompt. + else. int setup(struct passwd *pw, char **prompt, sudo_auth *auth) Function to do method-specific setup. All the "setup" diff --git a/plugins/sudoers/auth/bsdauth.c b/plugins/sudoers/auth/bsdauth.c index ac32a1e..60616e2 100644 --- a/plugins/sudoers/auth/bsdauth.c +++ b/plugins/sudoers/auth/bsdauth.c @@ -54,7 +54,7 @@ extern char *login_style; /* from sudo.c */ int -bsdauth_init(struct passwd *pw, char **promptp, sudo_auth *auth) +bsdauth_init(struct passwd *pw, sudo_auth *auth) { static auth_session_t *as; extern login_cap_t *lc; /* from sudo.c */ diff --git a/plugins/sudoers/auth/fwtk.c b/plugins/sudoers/auth/fwtk.c index a6e45b2..ebab915 100644 --- a/plugins/sudoers/auth/fwtk.c +++ b/plugins/sudoers/auth/fwtk.c @@ -50,7 +50,7 @@ #include "sudo_auth.h" int -fwtk_init(struct passwd *pw, char **promptp, sudo_auth *auth) +fwtk_init(struct passwd *pw, sudo_auth *auth) { static Cfg *confp; /* Configuration entry struct */ char resp[128]; /* Response from the server */ diff --git a/plugins/sudoers/auth/kerb4.c b/plugins/sudoers/auth/kerb4.c index 176d6a7..c16739a 100644 --- a/plugins/sudoers/auth/kerb4.c +++ b/plugins/sudoers/auth/kerb4.c @@ -48,7 +48,7 @@ #include "sudo_auth.h" int -kerb4_init(struct passwd *pw, char **promptp, sudo_auth *auth) +kerb4_init(struct passwd *pw, sudo_auth *auth) { static char realm[REALM_SZ]; diff --git a/plugins/sudoers/auth/kerb5.c b/plugins/sudoers/auth/kerb5.c index d12e11f..f94865d 100644 --- a/plugins/sudoers/auth/kerb5.c +++ b/plugins/sudoers/auth/kerb5.c @@ -88,14 +88,49 @@ krb5_get_init_creds_opt_free(krb5_get_init_creds_opt *opts) #endif int -kerb5_init(struct passwd *pw, char **promptp, sudo_auth *auth) +kerb5_setup(struct passwd *pw, char **promptp, sudo_auth *auth) +{ + static char *krb5_prompt; + + if (krb5_prompt == NULL) { + krb5_context sudo_context; + krb5_principal princ; + char *pname; + krb5_error_code error; + + sudo_context = ((sudo_krb5_datap) auth->data)->sudo_context; + princ = ((sudo_krb5_datap) auth->data)->princ; + + /* + * Really, we need to tell the caller not to prompt for password. The + * API does not currently provide this unless the auth is standalone. + */ + if ((error = krb5_unparse_name(sudo_context, princ, &pname))) { + log_error(NO_EXIT|NO_MAIL, + _("%s: unable to unparse princ ('%s'): %s"), auth->name, + pw->pw_name, error_message(error)); + return AUTH_FAILURE; + } + + /* Only rewrite prompt if user didn't specify their own. */ + /*if (!strcmp(prompt, PASSPROMPT)) { */ + easprintf(&krb5_prompt, "Password for %s: ", pname); + /*}*/ + free(pname); + } + *promptp = krb5_prompt; + + return AUTH_SUCCESS; +} + +int +kerb5_init(struct passwd *pw, sudo_auth *auth) { krb5_context sudo_context; krb5_ccache ccache; krb5_principal princ; krb5_error_code error; char cache_name[64]; - char *pname; auth->data = (void *) &sudo_krb5_data; /* Stash all our data here */ @@ -117,25 +152,6 @@ kerb5_init(struct passwd *pw, char **promptp, sudo_auth *auth) } princ = sudo_krb5_data.princ; - /* - * Really, we need to tell the caller not to prompt for password. - * The API does not currently provide this unless the auth is standalone. - */ -#if 1 - if ((error = krb5_unparse_name(sudo_context, princ, &pname))) { - log_error(NO_EXIT|NO_MAIL, - _("%s: unable to unparse princ ('%s'): %s"), auth->name, - pw->pw_name, error_message(error)); - return AUTH_FAILURE; - } - - /* Only rewrite prompt if user didn't specify their own. */ - /*if (!strcmp(prompt, PASSPROMPT)) { */ - easprintf(promptp, "Password for %s: ", pname); - /*}*/ - free(pname); -#endif - (void) snprintf(cache_name, sizeof(cache_name), "MEMORY:sudocc_%ld", (long) getpid()); if ((error = krb5_cc_resolve(sudo_context, cache_name, diff --git a/plugins/sudoers/auth/pam.c b/plugins/sudoers/auth/pam.c index d66e302..70e916e 100644 --- a/plugins/sudoers/auth/pam.c +++ b/plugins/sudoers/auth/pam.c @@ -80,7 +80,7 @@ static int gotintr; static pam_handle_t *pamh; int -pam_init(struct passwd *pw, char **promptp, sudo_auth *auth) +pam_init(struct passwd *pw, sudo_auth *auth) { static struct pam_conv pam_conv; static int pam_status; @@ -184,10 +184,11 @@ pam_cleanup(struct passwd *pw, sudo_auth *auth) int *pam_status = (int *) auth->data; /* If successful, we can't close the session until pam_end_session() */ - if (auth->status == AUTH_SUCCESS) + if (*pam_status == AUTH_SUCCESS) return AUTH_SUCCESS; *pam_status = pam_end(pamh, *pam_status | PAM_DATA_SILENT); + pamh = NULL; return *pam_status == PAM_SUCCESS ? AUTH_SUCCESS : AUTH_FAILURE; } @@ -209,10 +210,6 @@ pam_begin_session(struct passwd *pw, sudo_auth *auth) goto done; } - /* If the user did not have to authenticate there is no pam handle yet. */ - if (pamh == NULL) - pam_init(pw, NULL, NULL); - /* * Update PAM_USER to reference the user we are running the command * as, as opposed to the user we authenticated as. @@ -242,16 +239,23 @@ done: } int -pam_end_session(sudo_auth *auth) +pam_end_session(struct passwd *pw, sudo_auth *auth) { int status = PAM_SUCCESS; - if (pamh) { + if (pamh != NULL) { #ifndef NO_PAM_SESSION + /* + * Update PAM_USER to reference the user we are running the command + * as to match the call to pam_open_session(). + */ + (void) pam_set_item(pamh, PAM_USER, pw->pw_name); (void) pam_close_session(pamh, PAM_SILENT); #endif status = pam_end(pamh, PAM_SUCCESS | PAM_DATA_SILENT); + pamh = NULL; } + return status == PAM_SUCCESS ? AUTH_SUCCESS : AUTH_FAILURE; } diff --git a/plugins/sudoers/auth/passwd.c b/plugins/sudoers/auth/passwd.c index ee0e4d3..1316acd 100644 --- a/plugins/sudoers/auth/passwd.c +++ b/plugins/sudoers/auth/passwd.c @@ -49,7 +49,7 @@ #define HAS_AGEINFO(p, l) (l == 18 && p[DESLEN] == ',') int -passwd_init(struct passwd *pw, char **promptp, sudo_auth *auth) +passwd_init(struct passwd *pw, sudo_auth *auth) { #ifdef HAVE_SKEYACCESS if (skeyaccess(pw, user_tty, NULL, NULL) == 0) diff --git a/plugins/sudoers/auth/secureware.c b/plugins/sudoers/auth/secureware.c index 221889d..8a08da7 100644 --- a/plugins/sudoers/auth/secureware.c +++ b/plugins/sudoers/auth/secureware.c @@ -53,7 +53,7 @@ #include "sudo_auth.h" int -secureware_init(struct passwd *pw, char **promptp, sudo_auth *auth) +secureware_init(struct passwd *pw, sudo_auth *auth) { #ifdef __alpha extern int crypt_type; diff --git a/plugins/sudoers/auth/securid.c b/plugins/sudoers/auth/securid.c index 0f53511..2c3796c 100644 --- a/plugins/sudoers/auth/securid.c +++ b/plugins/sudoers/auth/securid.c @@ -56,7 +56,7 @@ union config_record configure; int -securid_init(struct passwd *pw, char **promptp, sudo_auth *auth) +securid_init(struct passwd *pw, sudo_auth *auth) { static struct SD_CLIENT sd_dat; /* SecurID data block */ diff --git a/plugins/sudoers/auth/securid5.c b/plugins/sudoers/auth/securid5.c index 45513c9..cf022d2 100644 --- a/plugins/sudoers/auth/securid5.c +++ b/plugins/sudoers/auth/securid5.c @@ -59,7 +59,6 @@ * securid_init - Initialises communications with ACE server * Arguments in: * pw - UNUSED - * promptp - UNUSED * auth - sudo authentication structure * * Results out: @@ -68,7 +67,7 @@ * success. */ int -securid_init(struct passwd *pw, char **promptp, sudo_auth *auth) +securid_init(struct passwd *pw, sudo_auth *auth) { static SDI_HANDLE sd_dat; /* SecurID handle */ diff --git a/plugins/sudoers/auth/sudo_auth.c b/plugins/sudoers/auth/sudo_auth.c index f82b5cb..cd04083 100644 --- a/plugins/sudoers/auth/sudo_auth.c +++ b/plugins/sudoers/auth/sudo_auth.c @@ -86,7 +86,7 @@ static sudo_auth auth_switch[] = { AUTH_ENTRY("kerb4", 0, kerb4_init, NULL, kerb4_verify, NULL, NULL, NULL) #endif #ifdef HAVE_KERB5 - AUTH_ENTRY("kerb5", 0, kerb5_init, NULL, kerb5_verify, kerb5_cleanup, NULL, NULL) + AUTH_ENTRY("kerb5", 0, kerb5_init, kerb5_setup, kerb5_verify, kerb5_cleanup, NULL, NULL) #endif #ifdef HAVE_SKEY AUTH_ENTRY("S/Key", 0, NULL, rfc1938_setup, rfc1938_verify, NULL, NULL, NULL) @@ -97,35 +97,20 @@ static sudo_auth auth_switch[] = { AUTH_ENTRY(NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL) }; +static int standalone; + extern char **NewArgv; /* XXX - for auditing */ static void pass_warn(void); int -verify_user(struct passwd *pw, char *prompt) +sudo_auth_init(struct passwd *pw) { - int counter = def_passwd_tries + 1; - int success = AUTH_FAILURE; - int flags, status, standalone, rval; - char *p; sudo_auth *auth; - sigaction_t sa, osa; - - /* Enable suspend during password entry. */ - sigemptyset(&sa.sa_mask); - sa.sa_flags = SA_RESTART; - sa.sa_handler = SIG_DFL; - (void) sigaction(SIGTSTP, &sa, &osa); + int status = AUTH_SUCCESS; - /* Make sure we have at least one auth method. */ - if (auth_switch[0].name == NULL) { - audit_failure(NewArgv, "no authentication methods"); - log_error(0, - _("There are no authentication methods compiled into sudo! " - "If you want to turn off authentication, use the " - "--disable-authentication configure option.")); - return -1; - } + if (auth_switch[0].name == NULL) + return TRUE; /* Make sure we haven't mixed standalone and shared auth methods. */ standalone = IS_STANDALONE(&auth_switch[0]); @@ -146,18 +131,76 @@ verify_user(struct passwd *pw, char *prompt) if (NEEDS_USER(auth)) set_perms(PERM_USER); - status = (auth->init)(pw, &prompt, auth); + status = (auth->init)(pw, auth); + + if (NEEDS_USER(auth)) + restore_perms(); + if (status == AUTH_FAILURE) SET(auth->flags, FLAG_DISABLED); - else if (status == AUTH_FATAL) { /* XXX log */ + else if (status == AUTH_FATAL) { + /* XXX log */ audit_failure(NewArgv, "authentication failure"); - return -1; /* assume error msg already printed */ + break; /* assume error msg already printed */ } + } + } + return status == AUTH_FATAL ? -1 : TRUE; +} + +int +sudo_auth_cleanup(struct passwd *pw) +{ + sudo_auth *auth; + int status = AUTH_SUCCESS; + + /* Call cleanup routines. */ + for (auth = auth_switch; auth->name; auth++) { + if (auth->cleanup && !IS_DISABLED(auth)) { + if (NEEDS_USER(auth)) + set_perms(PERM_USER); + + status = (auth->cleanup)(pw, auth); if (NEEDS_USER(auth)) restore_perms(); + + if (status == AUTH_FATAL) { + /* XXX log */ + audit_failure(NewArgv, "authentication failure"); + break; /* assume error msg already printed */ + } } } + return status == AUTH_FATAL ? -1 : TRUE; +} + +int +verify_user(struct passwd *pw, char *prompt) +{ + int counter = def_passwd_tries + 1; + int success = AUTH_FAILURE; + int flags, status, rval; + char *p; + sudo_auth *auth; + sigaction_t sa, osa; + + /* Enable suspend during password entry. */ + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_RESTART; + sa.sa_handler = SIG_DFL; + (void) sigaction(SIGTSTP, &sa, &osa); + + /* Make sure we have at least one auth method. */ + /* XXX - check FLAG_DISABLED too */ + if (auth_switch[0].name == NULL) { + audit_failure(NewArgv, "no authentication methods"); + log_error(0, + _("There are no authentication methods compiled into sudo! " + "If you want to turn off authentication, use the " + "--disable-authentication configure option.")); + return -1; + } while (--counter) { /* Do any per-method setup and unconfigure the method if needed */ @@ -167,15 +210,17 @@ verify_user(struct passwd *pw, char *prompt) set_perms(PERM_USER); status = (auth->setup)(pw, &prompt, auth); + + if (NEEDS_USER(auth)) + restore_perms(); + if (status == AUTH_FAILURE) SET(auth->flags, FLAG_DISABLED); - else if (status == AUTH_FATAL) {/* XXX log */ + else if (status == AUTH_FATAL) { + /* XXX log */ audit_failure(NewArgv, "authentication failure"); return -1; /* assume error msg already printed */ } - - if (NEEDS_USER(auth)) - restore_perms(); } } @@ -203,31 +248,14 @@ verify_user(struct passwd *pw, char *prompt) restore_perms(); if (auth->status != AUTH_FAILURE) - goto cleanup; + goto done; } if (!standalone) zero_bytes(p, strlen(p)); pass_warn(); } -cleanup: - /* Call cleanup routines. */ - for (auth = auth_switch; auth->name; auth++) { - if (auth->cleanup && !IS_DISABLED(auth)) { - if (NEEDS_USER(auth)) - set_perms(PERM_USER); - - status = (auth->cleanup)(pw, auth); - if (status == AUTH_FATAL) { /* XXX log */ - audit_failure(NewArgv, "authentication failure"); - return -1; /* assume error msg already printed */ - } - - if (NEEDS_USER(auth)) - restore_perms(); - } - } - +done: switch (success) { case AUTH_SUCCESS: (void) sigaction(SIGTSTP, &osa, NULL); @@ -257,7 +285,8 @@ cleanup: return rval; } -int auth_begin_session(struct passwd *pw) +int +sudo_auth_begin_session(struct passwd *pw) { sudo_auth *auth; int status; @@ -265,7 +294,8 @@ int auth_begin_session(struct passwd *pw) for (auth = auth_switch; auth->name; auth++) { if (auth->begin_session && !IS_DISABLED(auth)) { status = (auth->begin_session)(pw, auth); - if (status == AUTH_FATAL) { /* XXX log */ + if (status == AUTH_FATAL) { + /* XXX log */ audit_failure(NewArgv, "authentication failure"); return -1; /* assume error msg already printed */ } @@ -274,15 +304,17 @@ int auth_begin_session(struct passwd *pw) return TRUE; } -int auth_end_session(void) +int +sudo_auth_end_session(struct passwd *pw) { sudo_auth *auth; int status; for (auth = auth_switch; auth->name; auth++) { if (auth->end_session && !IS_DISABLED(auth)) { - status = (auth->end_session)(auth); - if (status == AUTH_FATAL) { /* XXX log */ + status = (auth->end_session)(pw, auth); + if (status == AUTH_FATAL) { + /* XXX log */ return -1; /* assume error msg already printed */ } } diff --git a/plugins/sudoers/auth/sudo_auth.h b/plugins/sudoers/auth/sudo_auth.h index 91124bf..995edb7 100644 --- a/plugins/sudoers/auth/sudo_auth.h +++ b/plugins/sudoers/auth/sudo_auth.h @@ -28,12 +28,12 @@ typedef struct sudo_auth { int status; /* status from verify routine */ char *name; /* name of the method as a string */ void *data; /* method-specific data pointer */ - int (*init)(struct passwd *pw, char **prompt, struct sudo_auth *auth); + int (*init)(struct passwd *pw, struct sudo_auth *auth); int (*setup)(struct passwd *pw, char **prompt, struct sudo_auth *auth); int (*verify)(struct passwd *pw, char *p, struct sudo_auth *auth); int (*cleanup)(struct passwd *pw, struct sudo_auth *auth); int (*begin_session)(struct passwd *pw, struct sudo_auth *auth); - int (*end_session)(struct sudo_auth *auth); + int (*end_session)(struct passwd *pw, struct sudo_auth *auth); } sudo_auth; /* Values for sudo_auth.flags. */ @@ -55,40 +55,41 @@ char *auth_getpass(const char *prompt, int timeout, int type); extern sudo_conv_t sudo_conv; /* Prototypes for standalone methods */ -int fwtk_init(struct passwd *pw, char **prompt, sudo_auth *auth); +int fwtk_init(struct passwd *pw, sudo_auth *auth); int fwtk_verify(struct passwd *pw, char *prompt, sudo_auth *auth); int fwtk_cleanup(struct passwd *pw, sudo_auth *auth); -int pam_init(struct passwd *pw, char **prompt, sudo_auth *auth); +int pam_init(struct passwd *pw, sudo_auth *auth); int pam_verify(struct passwd *pw, char *prompt, sudo_auth *auth); int pam_cleanup(struct passwd *pw, sudo_auth *auth); int pam_begin_session(struct passwd *pw, sudo_auth *auth); -int pam_end_session(sudo_auth *auth); +int pam_end_session(struct passwd *pw, sudo_auth *auth); int sia_setup(struct passwd *pw, char **prompt, sudo_auth *auth); int sia_verify(struct passwd *pw, char *prompt, sudo_auth *auth); int sia_cleanup(struct passwd *pw, sudo_auth *auth); int aixauth_verify(struct passwd *pw, char *pass, sudo_auth *auth); int aixauth_cleanup(struct passwd *pw, sudo_auth *auth); -int bsdauth_init(struct passwd *pw, char **prompt, sudo_auth *auth); +int bsdauth_init(struct passwd *pw, sudo_auth *auth); int bsdauth_verify(struct passwd *pw, char *prompt, sudo_auth *auth); int bsdauth_cleanup(struct passwd *pw, sudo_auth *auth); /* Prototypes for normal methods */ -int passwd_init(struct passwd *pw, char **prompt, sudo_auth *auth); +int passwd_init(struct passwd *pw, sudo_auth *auth); int passwd_verify(struct passwd *pw, char *pass, sudo_auth *auth); int passwd_cleanup(struct passwd *pw, sudo_auth *auth); -int secureware_init(struct passwd *pw, char **prompt, sudo_auth *auth); +int secureware_init(struct passwd *pw, sudo_auth *auth); int secureware_verify(struct passwd *pw, char *pass, sudo_auth *auth); int secureware_cleanup(struct passwd *pw, sudo_auth *auth); int rfc1938_setup(struct passwd *pw, char **prompt, sudo_auth *auth); int rfc1938_verify(struct passwd *pw, char *pass, sudo_auth *auth); int afs_verify(struct passwd *pw, char *pass, sudo_auth *auth); int dce_verify(struct passwd *pw, char *pass, sudo_auth *auth); -int kerb4_init(struct passwd *pw, char **prompt, sudo_auth *auth); +int kerb4_init(struct passwd *pw, sudo_auth *auth); int kerb4_verify(struct passwd *pw, char *pass, sudo_auth *auth); -int kerb5_init(struct passwd *pw, char **prompt, sudo_auth *auth); +int kerb5_init(struct passwd *pw, sudo_auth *auth); +int kerb5_setup(struct passwd *pw, char **prompt, sudo_auth *auth); int kerb5_verify(struct passwd *pw, char *pass, sudo_auth *auth); int kerb5_cleanup(struct passwd *pw, sudo_auth *auth); -int securid_init(struct passwd *pw, char **prompt, sudo_auth *auth); +int securid_init(struct passwd *pw, sudo_auth *auth); int securid_setup(struct passwd *pw, char **prompt, sudo_auth *auth); int securid_verify(struct passwd *pw, char *pass, sudo_auth *auth); diff --git a/plugins/sudoers/check.c b/plugins/sudoers/check.c index 6a36105..4be3b0b 100644 --- a/plugins/sudoers/check.c +++ b/plugins/sudoers/check.c @@ -98,6 +98,7 @@ static struct passwd *get_authpw(void); int check_user(int validated, int mode) { + struct passwd *auth_pw; char *timestampdir = NULL; char *timestampfile = NULL; char *prompt; @@ -113,6 +114,13 @@ check_user(int validated, int mode) ctim_get(&sb, &tty_info.ctime); } + /* Init authentication system regardless of whether we need a password. */ + auth_pw = get_authpw(); + if (sudo_auth_init(auth_pw) == -1) { + rval = -1; + goto done; + } + /* Always prompt for a password when -k was specified with the command. */ if (ISSET(mode, MODE_IGNORE_TICKET)) { SET(validated, FLAG_CHECK_USER); @@ -124,22 +132,23 @@ check_user(int validated, int mode) if (user_uid == 0 || (user_uid == runas_pw->pw_uid && (!runas_gr || user_in_group(sudo_user.pw, runas_gr->gr_name))) || user_is_exempt()) - return TRUE; + goto done; } - if (build_timestamp(×tampdir, ×tampfile) == -1) - return -1; + if (build_timestamp(×tampdir, ×tampfile) == -1) { + rval = -1; + goto done; + } status = timestamp_status(timestampdir, timestampfile, user_name, TS_MAKE_DIRS); if (status != TS_CURRENT || ISSET(validated, FLAG_CHECK_USER)) { - struct passwd *auth_pw; - /* Bail out if we are non-interactive and a password is required */ if (ISSET(mode, MODE_NONINTERACTIVE)) { warningx(_("sorry, a password is required to run %s"), getprogname()); - return -1; + rval = -1; + goto done; } /* XXX - should not lecture if askpass helper is being used. */ @@ -149,9 +158,7 @@ check_user(int validated, int mode) prompt = expand_prompt(user_prompt ? user_prompt : def_passprompt, user_name, user_shost); - auth_pw = get_authpw(); rval = verify_user(auth_pw, prompt); - pw_delref(auth_pw); } /* Only update timestamp if user was validated. */ if (rval == TRUE && ISSET(validated, VALIDATE_OK) && @@ -160,6 +167,10 @@ check_user(int validated, int mode) efree(timestampdir); efree(timestampfile); +done: + sudo_auth_cleanup(auth_pw); + pw_delref(auth_pw); + return rval; } diff --git a/plugins/sudoers/defaults.c b/plugins/sudoers/defaults.c index e449b1c..dd404f5 100644 --- a/plugins/sudoers/defaults.c +++ b/plugins/sudoers/defaults.c @@ -184,42 +184,6 @@ dump_defaults(void) } } -/* - * List each option along with its description. - */ -void -list_options(void) -{ - struct sudo_defs_types *cur; - char *p, *desc; - - sudo_printf(SUDO_CONV_INFO_MSG, - _("Available options in a sudoers ``Defaults'' line:\n\n")); - for (cur = sudo_defs_table; cur->name; cur++) { - if (cur->desc) { - desc = _(cur->desc); - switch (cur->type & T_MASK) { - case T_FLAG: - sudo_printf(SUDO_CONV_INFO_MSG, - _("%s: %s\n"), cur->name, desc); - break; - default: - p = strrchr(desc, ':'); - if (p) { - while (p > desc && isspace((unsigned char)p[-1])) - p--; - sudo_printf(SUDO_CONV_INFO_MSG, _("%s: %.*s\n"), - cur->name, (int) (p - desc), desc); - } else { - sudo_printf(SUDO_CONV_INFO_MSG, - _("%s: %s\n"), cur->name, desc); - } - break; - } - } - } -} - /* * Sets/clears an entry in the defaults structure * If a variable that takes a value is used in a boolean diff --git a/plugins/sudoers/defaults.h b/plugins/sudoers/defaults.h index 711a7ad..05e2b6f 100644 --- a/plugins/sudoers/defaults.h +++ b/plugins/sudoers/defaults.h @@ -107,7 +107,6 @@ struct sudo_defs_types { */ void dump_default(void); void init_defaults(void); -void list_options(void); int set_default(char *, char *, int); int update_defaults(int); diff --git a/plugins/sudoers/env.c b/plugins/sudoers/env.c index 6d65718..d7c1582 100644 --- a/plugins/sudoers/env.c +++ b/plugins/sudoers/env.c @@ -586,8 +586,13 @@ rebuild_env(void) SET(didvar, DID_PATH); } - /* Set $USER, $LOGNAME and $USERNAME to target if "set_logname" is true. */ - if (def_set_logname && !ISSET(sudo_mode, MODE_LOGIN_SHELL)) { + /* + * Set $USER, $LOGNAME and $USERNAME to target if "set_logname" is not + * disabled. We skip this if we are running a login shell (because + * they have already been set them) or sudoedit (because we want the + * editor to find the user's startup files). + */ + if (def_set_logname && !ISSET(sudo_mode, MODE_LOGIN_SHELL|MODE_EDIT)) { if (!ISSET(didvar, KEPT_LOGNAME)) sudo_setenv("LOGNAME", runas_pw->pw_name, TRUE); if (!ISSET(didvar, KEPT_USER)) diff --git a/plugins/sudoers/gram.c b/plugins/sudoers/gram.c index 51cf588..8c0a73d 100644 --- a/plugins/sudoers/gram.c +++ b/plugins/sudoers/gram.c @@ -83,9 +83,9 @@ */ extern int sudolineno; extern char *sudoers; -int parse_error; +static int verbose = FALSE; +int parse_error = FALSE; int pedantic = FALSE; -int verbose = FALSE; int errorlineno = -1; char *errorfile = NULL; diff --git a/plugins/sudoers/gram.y b/plugins/sudoers/gram.y index 0ec084e..f3f0aac 100644 --- a/plugins/sudoers/gram.y +++ b/plugins/sudoers/gram.y @@ -71,9 +71,9 @@ */ extern int sudolineno; extern char *sudoers; -int parse_error; +static int verbose = FALSE; +int parse_error = FALSE; int pedantic = FALSE; -int verbose = FALSE; int errorlineno = -1; char *errorfile = NULL; diff --git a/plugins/sudoers/iolog_path.c b/plugins/sudoers/iolog_path.c index 7a4ee7e..0f1044f 100644 --- a/plugins/sudoers/iolog_path.c +++ b/plugins/sudoers/iolog_path.c @@ -147,35 +147,47 @@ fill_command(char *str, size_t strsize) return strlcpy(str, user_base, strsize); } +/* + * Concatenate dir + file, expanding any escape sequences. + * Returns the concatenated path and sets slashp point to + * the path separator between the expanded dir and file. + */ char * expand_iolog_path(const char *prefix, const char *dir, const char *file, char **slashp) { - size_t plen = 0, psize = 1024; - char *path, *dst; - const char *src = dir, *ep; - int pass, strfit = FALSE; + size_t len, prelen = 0; + char *dst, *dst0, *path, *pathend, tmpbuf[PATH_MAX]; + const char *endbrace, *src = dir; + int pass, strfit; - /* Concatenate dir + file -> path, expanding any escape sequences. */ - dst = path = emalloc(psize); + /* Expanded path must be <= PATH_MAX */ + if (prefix != NULL) + prelen = strlen(prefix); + dst = path = emalloc(prelen + PATH_MAX); *path = '\0'; + pathend = path + prelen + PATH_MAX; + + /* Copy prefix, if present. */ + if (prefix != NULL) { + memcpy(path, prefix, prelen); + dst += prelen; + *dst = '\0'; + } /* Trim leading slashes from file component. */ while (*file == '/') file++; - if (prefix != NULL) { - plen = strlcpy(path, prefix, psize); - dst += plen; - } for (pass = 0; pass < 3; pass++) { + strfit = FALSE; switch (pass) { case 0: src = dir; break; case 1: /* Trim trailing slashes from dir component. */ - while (dst > path && dst[-1] == '/') + while (dst - path - 1 > prelen && dst[-1] == '/') dst--; if (slashp) *slashp = dst; @@ -185,30 +197,25 @@ expand_iolog_path(const char *prefix, const char *dir, const char *file, src = file; break; } + dst0 = dst; for (; *src != '\0'; src++) { if (src[0] == '%') { if (src[1] == '{') { - ep = strchr(src + 2, '}'); - if (ep != NULL) { + endbrace = strchr(src + 2, '}'); + if (endbrace != NULL) { struct path_escape *esc; - size_t len = (size_t)(ep - src - 2); + len = (size_t)(endbrace - src - 2); for (esc = escapes; esc->name != NULL; esc++) { if (strncmp(src + 2, esc->name, len) == 0 && esc->name[len] == '\0') break; } if (esc->name != NULL) { - for (;;) { - len = esc->copy_fn(dst, psize - (dst - path)); - if (len < psize - (dst - path)) - break; - path = erealloc3(path, 2, psize); - psize *= 2; - dst = path + plen; - } + len = esc->copy_fn(dst, (size_t)(pathend - dst)); + if (len >= (size_t)(pathend - dst)) + goto bad; dst += len; - plen += len; - src = ep; + src = endbrace; continue; } } @@ -221,46 +228,47 @@ expand_iolog_path(const char *prefix, const char *dir, const char *file, } } /* Need at least 2 chars, including the NUL terminator. */ - if (plen + 2 >= psize) { - path = erealloc3(path, 2, psize); - psize *= 2; - dst = path + plen; - } + if (dst + 1 >= pathend) + goto bad; *dst++ = *src; - plen++; } - } - *dst = '\0'; + *dst = '\0'; - if (strfit) { - time_t now; - struct tm *timeptr; - char *buf = NULL; + /* Expand strftime escapes as needed. */ + if (strfit) { + time_t now; + struct tm *timeptr; - time(&now); - timeptr = localtime(&now); + time(&now); + timeptr = localtime(&now); #ifdef HAVE_SETLOCALE - if (!setlocale(LC_ALL, def_sudoers_locale)) { - warningx(_("unable to set locale to \"%s\", using \"C\""), - def_sudoers_locale); - setlocale(LC_ALL, "C"); - } + if (!setlocale(LC_ALL, def_sudoers_locale)) { + warningx(_("unable to set locale to \"%s\", using \"C\""), + def_sudoers_locale); + setlocale(LC_ALL, "C"); + } #endif - /* Double the size of the buffer until it is big enough to expand. */ - do { - psize *= 2; - buf = erealloc(buf, psize); - buf[psize - 1] = '\0'; - } while (!strftime(buf, psize, path, timeptr) || buf[psize - 1] != '\0'); + /* We only calls strftime() on the current part of the buffer. */ + tmpbuf[sizeof(tmpbuf) - 1] = '\0'; + len = strftime(tmpbuf, sizeof(tmpbuf), dst0, timeptr); + #ifdef HAVE_SETLOCALE - setlocale(LC_ALL, ""); + setlocale(LC_ALL, ""); #endif - if (slashp) - *slashp = buf + (*slashp - path); - efree(path); - path = buf; + if (len == 0 || tmpbuf[sizeof(tmpbuf) - 1] != '\0') + goto bad; /* strftime() failed, buf too small? */ + + if (len >= (size_t)(pathend - dst0)) + goto bad; /* expanded buffer too big to fit. */ + memcpy(dst0, tmpbuf, len); + dst = dst0 + len; + *dst = '\0'; + } } return path; +bad: + efree(path); + return NULL; } diff --git a/plugins/sudoers/ldap.c b/plugins/sudoers/ldap.c index a788543..e8e6311 100644 --- a/plugins/sudoers/ldap.c +++ b/plugins/sudoers/ldap.c @@ -117,6 +117,7 @@ #define CONF_INT 1 #define CONF_STR 2 #define CONF_LIST_STR 4 +#define CONF_DEREF_VAL 5 #define SUDO_LDAP_SSL 1 #define SUDO_LDAP_STARTTLS 2 @@ -195,6 +196,7 @@ static struct ldap_config { int rootuse_sasl; int ssl_mode; int timed; + int deref; char *host; struct ldap_config_list_str *uri; char *binddn; @@ -280,6 +282,9 @@ static struct ldap_config_table ldap_conf_table[] = { #ifdef LDAP_OPT_TIMEOUT { "timeout", CONF_INT, TRUE, -1 /* needs timeval, set manually */, &ldap_conf.timeout }, +#endif +#ifdef LDAP_OPT_DEREF + { "deref", CONF_DEREF_VAL, TRUE, LDAP_OPT_DEREF, &ldap_conf.deref }, #endif { "binddn", CONF_STR, FALSE, -1, &ldap_conf.binddn }, { "bindpw", CONF_STR, FALSE, -1, &ldap_conf.bindpw }, @@ -1121,6 +1126,7 @@ sudo_ldap_read_config(void) ldap_conf.bind_timelimit = -1; ldap_conf.use_sasl = -1; ldap_conf.rootuse_sasl = -1; + ldap_conf.deref = -1; if ((fp = fopen(_PATH_LDAP_CONF, "r")) == NULL) return FALSE; @@ -1145,6 +1151,16 @@ sudo_ldap_read_config(void) for (cur = ldap_conf_table; cur->conf_str != NULL; cur++) { if (strcasecmp(keyword, cur->conf_str) == 0) { switch (cur->type) { + case CONF_DEREF_VAL: + if (strcasecmp(value, "searching") == 0) + *(int *)(cur->valp) = LDAP_DEREF_SEARCHING; + else if (strcasecmp(value, "finding") == 0) + *(int *)(cur->valp) = LDAP_DEREF_FINDING; + else if (strcasecmp(value, "always") == 0) + *(int *)(cur->valp) = LDAP_DEREF_ALWAYS; + else + *(int *)(cur->valp) = LDAP_DEREF_NEVER; + break; case CONF_BOOL: *(int *)(cur->valp) = atobool(value) == TRUE; break; @@ -1225,6 +1241,10 @@ sudo_ldap_read_config(void) sudo_printf(SUDO_CONV_ERROR_MSG, "timelimit %d\n", ldap_conf.timelimit); } + if (ldap_conf.deref != -1) { + sudo_printf(SUDO_CONV_ERROR_MSG, "deref %d\n", + ldap_conf.deref); + } sudo_printf(SUDO_CONV_ERROR_MSG, "ssl %s\n", ldap_conf.ssl ? ldap_conf.ssl : "(no)"); if (ldap_conf.tls_checkpeer != -1) { diff --git a/plugins/sudoers/match.c b/plugins/sudoers/match.c index 79176a2..9f15020 100644 --- a/plugins/sudoers/match.c +++ b/plugins/sudoers/match.c @@ -25,7 +25,6 @@ #include #include -#include #include #include #ifdef STDC_HEADERS @@ -57,8 +56,6 @@ #include #include #include -#include -#include #include #ifdef HAVE_DIRENT_H # include @@ -78,7 +75,6 @@ #endif #include "sudoers.h" -#include "interfaces.h" #include "parse.h" #include @@ -597,145 +593,6 @@ command_matches_dir(char *sudoers_dir, size_t dlen) return dent != NULL; } -static int -addr_matches_if(char *n) -{ - union sudo_in_addr_un addr; - struct interface *ifp; -#ifdef HAVE_IN6_ADDR - int j; -#endif - int family; - -#ifdef HAVE_IN6_ADDR - if (inet_pton(AF_INET6, n, &addr.ip6) > 0) { - family = AF_INET6; - } else -#endif - { - family = AF_INET; - addr.ip4.s_addr = inet_addr(n); - } - - for (ifp = interfaces; ifp != NULL; ifp = ifp->next) { - if (ifp->family != family) - continue; - switch(family) { - case AF_INET: - if (ifp->addr.ip4.s_addr == addr.ip4.s_addr || - (ifp->addr.ip4.s_addr & ifp->netmask.ip4.s_addr) - == addr.ip4.s_addr) - return TRUE; - break; -#ifdef HAVE_IN6_ADDR - case AF_INET6: - if (memcmp(ifp->addr.ip6.s6_addr, addr.ip6.s6_addr, - sizeof(addr.ip6.s6_addr)) == 0) - return TRUE; - for (j = 0; j < sizeof(addr.ip6.s6_addr); j++) { - if ((ifp->addr.ip6.s6_addr[j] & ifp->netmask.ip6.s6_addr[j]) != addr.ip6.s6_addr[j]) - break; - } - if (j == sizeof(addr.ip6.s6_addr)) - return TRUE; -#endif - } - } - - return FALSE; -} - -static int -addr_matches_if_netmask(char *n, char *m) -{ - int i; - union sudo_in_addr_un addr, mask; - struct interface *ifp; -#ifdef HAVE_IN6_ADDR - int j; -#endif - int family; - -#ifdef HAVE_IN6_ADDR - if (inet_pton(AF_INET6, n, &addr.ip6) > 0) - family = AF_INET6; - else -#endif - { - family = AF_INET; - addr.ip4.s_addr = inet_addr(n); - } - - if (family == AF_INET) { - if (strchr(m, '.')) - mask.ip4.s_addr = inet_addr(m); - else { - i = 32 - atoi(m); - mask.ip4.s_addr = 0xffffffff; - mask.ip4.s_addr >>= i; - mask.ip4.s_addr <<= i; - mask.ip4.s_addr = htonl(mask.ip4.s_addr); - } - } -#ifdef HAVE_IN6_ADDR - else { - if (inet_pton(AF_INET6, m, &mask.ip6) <= 0) { - j = atoi(m); - for (i = 0; i < 16; i++) { - if (j < i * 8) - mask.ip6.s6_addr[i] = 0; - else if (i * 8 + 8 <= j) - mask.ip6.s6_addr[i] = 0xff; - else - mask.ip6.s6_addr[i] = 0xff00 >> (j - i * 8); - } - } - } -#endif /* HAVE_IN6_ADDR */ - - for (ifp = interfaces; ifp != NULL; ifp = ifp->next) { - if (ifp->family != family) - continue; - switch(family) { - case AF_INET: - if ((ifp->addr.ip4.s_addr & mask.ip4.s_addr) == addr.ip4.s_addr) - return TRUE; -#ifdef HAVE_IN6_ADDR - case AF_INET6: - for (j = 0; j < sizeof(addr.ip6.s6_addr); j++) { - if ((ifp->addr.ip6.s6_addr[j] & mask.ip6.s6_addr[j]) != addr.ip6.s6_addr[j]) - break; - } - if (j == sizeof(addr.ip6.s6_addr)) - return TRUE; -#endif /* HAVE_IN6_ADDR */ - } - } - - return FALSE; -} - -/* - * Returns TRUE if "n" is one of our ip addresses or if - * "n" is a network that we are on, else returns FALSE. - */ -int -addr_matches(char *n) -{ - char *m; - int retval; - - /* If there's an explicit netmask, use it. */ - if ((m = strchr(n, '/'))) { - *m++ = '\0'; - retval = addr_matches_if_netmask(n, m); - *(m - 1) = '/'; - } else - retval = addr_matches_if(n); - - return retval; -} - /* * Returns TRUE if the hostname matches the pattern, else FALSE */ diff --git a/plugins/sudoers/match_addr.c b/plugins/sudoers/match_addr.c new file mode 100644 index 0000000..f4bc731 --- /dev/null +++ b/plugins/sudoers/match_addr.c @@ -0,0 +1,195 @@ +/* + * Copyright (c) 1996, 1998-2005, 2007-2011 + * 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. + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Sponsored in part by the Defense Advanced Research Projects + * Agency (DARPA) and Air Force Research Laboratory, Air Force + * Materiel Command, USAF, under agreement number F39502-99-1-0512. + */ + +#include + +#include +#include +#include +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif /* STDC_HEADERS */ +#ifdef HAVE_STRING_H +# include +#endif /* HAVE_STRING_H */ +#ifdef HAVE_STRINGS_H +# include +#endif /* HAVE_STRINGS_H */ +#ifdef HAVE_UNISTD_H +# include +#endif /* HAVE_UNISTD_H */ +#include +#include +#include + +#include "sudoers.h" +#include "interfaces.h" + +static int +addr_matches_if(char *n) +{ + union sudo_in_addr_un addr; + struct interface *ifp; +#ifdef HAVE_IN6_ADDR + int j; +#endif + int family; + +#ifdef HAVE_IN6_ADDR + if (inet_pton(AF_INET6, n, &addr.ip6) > 0) { + family = AF_INET6; + } else +#endif + { + family = AF_INET; + addr.ip4.s_addr = inet_addr(n); + } + + for (ifp = interfaces; ifp != NULL; ifp = ifp->next) { + if (ifp->family != family) + continue; + switch(family) { + case AF_INET: + if (ifp->addr.ip4.s_addr == addr.ip4.s_addr || + (ifp->addr.ip4.s_addr & ifp->netmask.ip4.s_addr) + == addr.ip4.s_addr) + return TRUE; + break; +#ifdef HAVE_IN6_ADDR + case AF_INET6: + if (memcmp(ifp->addr.ip6.s6_addr, addr.ip6.s6_addr, + sizeof(addr.ip6.s6_addr)) == 0) + return TRUE; + for (j = 0; j < sizeof(addr.ip6.s6_addr); j++) { + if ((ifp->addr.ip6.s6_addr[j] & ifp->netmask.ip6.s6_addr[j]) != addr.ip6.s6_addr[j]) + break; + } + if (j == sizeof(addr.ip6.s6_addr)) + return TRUE; +#endif + } + } + + return FALSE; +} + +static int +addr_matches_if_netmask(char *n, char *m) +{ + int i; + union sudo_in_addr_un addr, mask; + struct interface *ifp; +#ifdef HAVE_IN6_ADDR + int j; +#endif + int family; + +#ifdef HAVE_IN6_ADDR + if (inet_pton(AF_INET6, n, &addr.ip6) > 0) + family = AF_INET6; + else +#endif + { + family = AF_INET; + addr.ip4.s_addr = inet_addr(n); + } + + if (family == AF_INET) { + if (strchr(m, '.')) { + mask.ip4.s_addr = inet_addr(m); + } else { + i = atoi(m); + if (i == 0) + mask.ip4.s_addr = 0; + else if (i == 32) + mask.ip4.s_addr = 0xffffffff; + else + mask.ip4.s_addr = 0xffffffff - (1 << (32 - i)) + 1; + mask.ip4.s_addr = htonl(mask.ip4.s_addr); + } + addr.ip4.s_addr &= mask.ip4.s_addr; + } +#ifdef HAVE_IN6_ADDR + else { + if (inet_pton(AF_INET6, m, &mask.ip6) <= 0) { + j = atoi(m); + for (i = 0; i < sizeof(addr.ip6.s6_addr); i++) { + if (j < i * 8) + mask.ip6.s6_addr[i] = 0; + else if (i * 8 + 8 <= j) + mask.ip6.s6_addr[i] = 0xff; + else + mask.ip6.s6_addr[i] = 0xff00 >> (j - i * 8); + addr.ip6.s6_addr[i] &= mask.ip6.s6_addr[i]; + } + } + } +#endif /* HAVE_IN6_ADDR */ + + for (ifp = interfaces; ifp != NULL; ifp = ifp->next) { + if (ifp->family != family) + continue; + switch(family) { + case AF_INET: + if ((ifp->addr.ip4.s_addr & mask.ip4.s_addr) == addr.ip4.s_addr) + return TRUE; +#ifdef HAVE_IN6_ADDR + case AF_INET6: + for (j = 0; j < sizeof(addr.ip6.s6_addr); j++) { + if ((ifp->addr.ip6.s6_addr[j] & mask.ip6.s6_addr[j]) != addr.ip6.s6_addr[j]) + break; + } + if (j == sizeof(addr.ip6.s6_addr)) + return TRUE; +#endif /* HAVE_IN6_ADDR */ + } + } + + return FALSE; +} + +/* + * Returns TRUE if "n" is one of our ip addresses or if + * "n" is a network that we are on, else returns FALSE. + */ +int +addr_matches(char *n) +{ + char *m; + int retval; + + /* If there's an explicit netmask, use it. */ + if ((m = strchr(n, '/'))) { + *m++ = '\0'; + retval = addr_matches_if_netmask(n, m); + *(m - 1) = '/'; + } else + retval = addr_matches_if(n); + + return retval; +} diff --git a/plugins/sudoers/parse.c b/plugins/sudoers/parse.c index 303d135..8ce6858 100644 --- a/plugins/sudoers/parse.c +++ b/plugins/sudoers/parse.c @@ -250,6 +250,8 @@ sudo_file_lookup(struct sudo_nss *nss, int validated, int pwflag) } else if (match == DENY) { SET(validated, VALIDATE_NOT_OK); CLR(validated, VALIDATE_OK); + if (tags != NULL && tags->nopasswd != UNSPEC) + def_authenticate = !tags->nopasswd; } restore_perms(); return validated; diff --git a/plugins/sudoers/po/da.mo b/plugins/sudoers/po/da.mo index a8124ad..fd67045 100644 Binary files a/plugins/sudoers/po/da.mo and b/plugins/sudoers/po/da.mo differ diff --git a/plugins/sudoers/po/da.po b/plugins/sudoers/po/da.po index 024b731..da6368a 100644 --- a/plugins/sudoers/po/da.po +++ b/plugins/sudoers/po/da.po @@ -15,10 +15,10 @@ # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.8.2-rc9\n" +"Project-Id-Version: sudoers 1.8.3rc1\n" "Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" -"POT-Creation-Date: 2011-08-05 13:34-0400\n" -"PO-Revision-Date: 2011-08-09 23:06+0100\n" +"POT-Creation-Date: 2011-09-16 16:52-0400\n" +"PO-Revision-Date: 2011-09-17 23:06+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" @@ -80,9 +80,9 @@ msgid "sorry, a password is required to run %s" msgstr "beklager men en adgangskode er krævet for at køre %s" #: plugins/sudoers/check.c:225 plugins/sudoers/iolog.c:169 -#: plugins/sudoers/sudoers.c:970 plugins/sudoers/sudoreplay.c:325 +#: plugins/sudoers/sudoers.c:971 plugins/sudoers/sudoreplay.c:325 #: plugins/sudoers/sudoreplay.c:334 plugins/sudoers/sudoreplay.c:675 -#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:700 +#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:744 #, c-format msgid "unable to open %s" msgstr "kan ikke Ã¥bne %s" @@ -127,8 +127,8 @@ msgid "%s writable by non-owner (0%o), should be mode 0700" msgstr "%s er skrivbar for ikkeejer (0%o), bør være tilstand 0700" #: plugins/sudoers/check.c:470 plugins/sudoers/check.c:514 -#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:956 -#: plugins/sudoers/visudo.c:284 plugins/sudoers/visudo.c:500 +#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:957 +#: plugins/sudoers/visudo.c:304 plugins/sudoers/visudo.c:544 #, c-format msgid "unable to stat %s" msgstr "kan ikke stat %s" @@ -163,10 +163,10 @@ msgstr "kan ikke nulstille %s til epoken" msgid "unknown uid: %u" msgstr "ukendt uid: %u" -#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:747 -#: plugins/sudoers/sudoers.c:813 plugins/sudoers/sudoers.c:814 -#: plugins/sudoers/sudoers.c:1087 plugins/sudoers/testsudoers.c:200 -#: plugins/sudoers/testsudoers.c:330 +#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:748 +#: plugins/sudoers/sudoers.c:814 plugins/sudoers/sudoers.c:815 +#: plugins/sudoers/sudoers.c:1088 plugins/sudoers/testsudoers.c:202 +#: plugins/sudoers/testsudoers.c:337 #, c-format msgid "unknown user: %s" msgstr "ukendt bruger: %s" @@ -526,53 +526,35 @@ msgstr "Tilføjer et punkt til utmp/utmpx-filen nÃ¥r der allokeres en pty" msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "Angiv brugeren i utmp til brugeren kør som, ikke den opstartende bruger" -#: plugins/sudoers/defaults.c:197 -msgid "" -"Available options in a sudoers ``Defaults'' line:\n" -"\n" -msgstr "" -"Tilgængelige indstillinger i en sudoers »standardlinje«:\n" -"\n" - -#: plugins/sudoers/defaults.c:204 plugins/sudoers/defaults.c:215 -#, c-format -msgid "%s: %s\n" -msgstr "%s: %s\n" - -#: plugins/sudoers/defaults.c:211 -#, c-format -msgid "%s: %.*s\n" -msgstr "%s: %.*s\n" - -#: plugins/sudoers/defaults.c:241 +#: plugins/sudoers/defaults.c:205 #, c-format msgid "unknown defaults entry `%s'" msgstr "ukendt standardpunkt »%s«" -#: plugins/sudoers/defaults.c:249 plugins/sudoers/defaults.c:259 -#: plugins/sudoers/defaults.c:279 plugins/sudoers/defaults.c:292 -#: plugins/sudoers/defaults.c:305 plugins/sudoers/defaults.c:318 -#: plugins/sudoers/defaults.c:331 plugins/sudoers/defaults.c:351 -#: plugins/sudoers/defaults.c:361 +#: plugins/sudoers/defaults.c:213 plugins/sudoers/defaults.c:223 +#: plugins/sudoers/defaults.c:243 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 #, c-format msgid "value `%s' is invalid for option `%s'" msgstr "værdi »%s« er ugyldig for indstilling »%s«" -#: plugins/sudoers/defaults.c:252 plugins/sudoers/defaults.c:262 -#: plugins/sudoers/defaults.c:270 plugins/sudoers/defaults.c:287 -#: plugins/sudoers/defaults.c:300 plugins/sudoers/defaults.c:313 -#: plugins/sudoers/defaults.c:326 plugins/sudoers/defaults.c:346 -#: plugins/sudoers/defaults.c:357 +#: plugins/sudoers/defaults.c:216 plugins/sudoers/defaults.c:226 +#: plugins/sudoers/defaults.c:234 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 #, c-format msgid "no value specified for `%s'" msgstr "ingen værdi angivet for »%s«" -#: plugins/sudoers/defaults.c:275 +#: plugins/sudoers/defaults.c:239 #, c-format msgid "values for `%s' must start with a '/'" msgstr "værdier for »%s« skal begynde med en »/«" -#: plugins/sudoers/defaults.c:337 +#: plugins/sudoers/defaults.c:301 #, c-format msgid "option `%s' does not take a value" msgstr "indstilling »%s« kan ikke modtage en værdi" @@ -594,7 +576,7 @@ msgstr "beklager, du har ikke tilladelse til at angive de følgende miljøvariab #: plugins/sudoers/find_path.c:68 plugins/sudoers/find_path.c:107 #: plugins/sudoers/find_path.c:122 plugins/sudoers/iolog.c:124 -#: plugins/sudoers/sudoers.c:899 toke.l:663 toke.l:814 +#: plugins/sudoers/sudoers.c:903 toke.l:663 toke.l:814 #, c-format msgid "%s: %s" msgstr "%s: %s" @@ -638,7 +620,7 @@ msgstr "%s: inkompatibel gruppeudvidelsesmodul for hovedversion %d, forventede % msgid "Local IP address and netmask pairs:\n" msgstr "Lokal IP-adresse og netmaskepar:\n" -#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:977 +#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:978 #, c-format msgid "unable to read %s" msgstr "kan ikke læse %s" @@ -657,72 +639,72 @@ msgstr "ugyldig sekvenstal %s" msgid "unable to create %s" msgstr "kan ikke oprette %s" -#: plugins/sudoers/iolog_path.c:245 plugins/sudoers/sudoers.c:356 +#: plugins/sudoers/iolog_path.c:247 plugins/sudoers/sudoers.c:357 #, c-format msgid "unable to set locale to \"%s\", using \"C\"" msgstr "kan ikke angive sprog til »%s«, bruger »C«" -#: plugins/sudoers/ldap.c:363 +#: plugins/sudoers/ldap.c:368 #, c-format msgid "sudo_ldap_conf_add_ports: port too large" msgstr "sudo_ldap_conf_add_ports: port for stor" -#: plugins/sudoers/ldap.c:386 +#: plugins/sudoers/ldap.c:391 #, c-format msgid "sudo_ldap_conf_add_ports: out of space expanding hostbuf" msgstr "sudo_ldap_conf_add_ports: stigende mellemlager for vært (hostbuf) har ikke nok plads" -#: plugins/sudoers/ldap.c:415 +#: plugins/sudoers/ldap.c:420 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "ikkeunderstøttet LDAP uri-type: %s" -#: plugins/sudoers/ldap.c:444 +#: plugins/sudoers/ldap.c:449 #, c-format msgid "invalid uri: %s" msgstr "ugyldig uri: %s" -#: plugins/sudoers/ldap.c:450 +#: plugins/sudoers/ldap.c:455 #, c-format msgid "unable to mix ldap and ldaps URIs" msgstr "kan ikke blande ldap og ldaps URI'er" -#: plugins/sudoers/ldap.c:454 +#: plugins/sudoers/ldap.c:459 #, c-format msgid "unable to mix ldaps and starttls" msgstr "kan ikke blande ldaps og starttls" -#: plugins/sudoers/ldap.c:473 +#: plugins/sudoers/ldap.c:478 #, c-format msgid "sudo_ldap_parse_uri: out of space building hostbuf" msgstr "sudo_ldap_parse_uri: opbyggende mellemlager for vært (hostbuf) har ikke nok plads" -#: plugins/sudoers/ldap.c:536 +#: plugins/sudoers/ldap.c:541 #, c-format msgid "unable to initialize SSL cert and key db: %s" msgstr "kan ikke initialisere SSL-cert og key db: %s" -#: plugins/sudoers/ldap.c:932 +#: plugins/sudoers/ldap.c:937 #, c-format msgid "unable to get GMT time" msgstr "kan ikke indhente GMT-tid" -#: plugins/sudoers/ldap.c:938 +#: plugins/sudoers/ldap.c:943 #, c-format msgid "unable to format timestamp" msgstr "kan ikke formatere tidsstempel" -#: plugins/sudoers/ldap.c:946 +#: plugins/sudoers/ldap.c:951 #, c-format msgid "unable to build time filter" msgstr "kan ikke bygge tidsfilter" -#: plugins/sudoers/ldap.c:1047 +#: plugins/sudoers/ldap.c:1052 #, c-format msgid "sudo_ldap_build_pass1 allocation mismatch" msgstr "sudo_ldap_build_pass1 forskellige allokeringer" -#: plugins/sudoers/ldap.c:1542 +#: plugins/sudoers/ldap.c:1562 #, c-format msgid "" "\n" @@ -731,7 +713,7 @@ msgstr "" "\n" "LDAP-rolle: %s\n" -#: plugins/sudoers/ldap.c:1544 +#: plugins/sudoers/ldap.c:1564 #, c-format msgid "" "\n" @@ -740,27 +722,27 @@ msgstr "" "\n" "LDAP-rolle: UKENDT\n" -#: plugins/sudoers/ldap.c:1591 +#: plugins/sudoers/ldap.c:1611 #, c-format msgid " Order: %s\n" msgstr " Rækkefølge: %s\n" -#: plugins/sudoers/ldap.c:1599 +#: plugins/sudoers/ldap.c:1619 #, c-format msgid " Commands:\n" msgstr " Kommandoer:\n" -#: plugins/sudoers/ldap.c:1986 +#: plugins/sudoers/ldap.c:2006 #, c-format msgid "unable to initialize LDAP: %s" msgstr "kan ikke initialisere LDAP: %s" -#: plugins/sudoers/ldap.c:2017 +#: plugins/sudoers/ldap.c:2037 #, c-format 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 libs understøtter ikke ldap_start_tls_s() eller ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:2248 +#: plugins/sudoers/ldap.c:2268 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "ugyldig sudoOrder-attribut: %s" @@ -857,7 +839,7 @@ msgstr "intern fejl: utilstrækkelig plads for loglinje" msgid "parse error in %s near line %d" msgstr "fortolkningsfejl i %s nær linje %d" -#: plugins/sudoers/parse.c:369 +#: plugins/sudoers/parse.c:371 #, c-format msgid "" "\n" @@ -866,17 +848,17 @@ msgstr "" "\n" "Sudoers-punkt:\n" -#: plugins/sudoers/parse.c:371 +#: plugins/sudoers/parse.c:373 #, c-format msgid " RunAsUsers: " msgstr " KørSomBrugere: " -#: plugins/sudoers/parse.c:386 +#: plugins/sudoers/parse.c:388 #, c-format msgid " RunAsGroups: " msgstr " KørSomGrupper: " -#: plugins/sudoers/parse.c:395 +#: plugins/sudoers/parse.c:397 #, c-format msgid "" " Commands:\n" @@ -919,38 +901,38 @@ msgstr "kan ikke cache gid %u, findes allerede" msgid "unable to cache group %s, already exists" msgstr "kan ikke cache gruppe %s, findes allerede" -#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:355 -#: plugins/sudoers/set_perms.c:587 plugins/sudoers/set_perms.c:821 +#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:358 +#: plugins/sudoers/set_perms.c:590 plugins/sudoers/set_perms.c:824 msgid "perm stack overflow" msgstr "permanent stakoverløb" -#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:595 plugins/sudoers/set_perms.c:829 +#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:366 +#: plugins/sudoers/set_perms.c:598 plugins/sudoers/set_perms.c:832 msgid "perm stack underflow" msgstr "permanent stakunderløb" -#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:455 -#: plugins/sudoers/set_perms.c:692 +#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:458 +#: plugins/sudoers/set_perms.c:695 msgid "unable to change to runas gid" msgstr "kan ikke ændre til kør som gid" -#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:462 -#: plugins/sudoers/set_perms.c:699 +#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:465 +#: plugins/sudoers/set_perms.c:702 msgid "unable to change to runas uid" msgstr "kan ikke ændre til kør som uid" -#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:475 -#: plugins/sudoers/set_perms.c:712 +#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:478 +#: plugins/sudoers/set_perms.c:715 #, c-format msgid "unable to change to sudoers gid" msgstr "kan ikke ændre til sudoers gid" -#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:513 -#: plugins/sudoers/set_perms.c:750 plugins/sudoers/set_perms.c:890 +#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:516 +#: plugins/sudoers/set_perms.c:753 plugins/sudoers/set_perms.c:893 msgid "too many processes" msgstr "for mange processer" -#: plugins/sudoers/set_perms.c:952 +#: plugins/sudoers/set_perms.c:955 msgid "unable to set runas group vector" msgstr "kan ikke angive kør som gruppevektor" @@ -974,57 +956,57 @@ msgstr "Bruger %s mÃ¥ ikke køre de følgende kommandoer pÃ¥ denne vært:\n" msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Bruger %s har ikke tilladelse til at køre sudo pÃ¥ %s.\n" -#: plugins/sudoers/sudoers.c:198 plugins/sudoers/sudoers.c:233 -#: plugins/sudoers/sudoers.c:907 +#: plugins/sudoers/sudoers.c:199 plugins/sudoers/sudoers.c:234 +#: plugins/sudoers/sudoers.c:911 msgid "problem with defaults entries" msgstr "problem med standardpunkter" -#: plugins/sudoers/sudoers.c:202 +#: plugins/sudoers/sudoers.c:203 #, c-format msgid "no valid sudoers sources found, quitting" msgstr "ingen gyldige sudoerskilder fundet, afslutter" -#: plugins/sudoers/sudoers.c:256 +#: plugins/sudoers/sudoers.c:257 #, c-format msgid "unable to execute %s: %s" msgstr "kan ikke udføre %s: %s" -#: plugins/sudoers/sudoers.c:305 +#: plugins/sudoers/sudoers.c:306 #, c-format msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers angiver at administrator (root) ikke har tilladelse til sudo" -#: plugins/sudoers/sudoers.c:312 +#: plugins/sudoers/sudoers.c:313 #, c-format msgid "you are not permitted to use the -C option" msgstr "du har ikke tilladelse til at bruge tilvalget -C" -#: plugins/sudoers/sudoers.c:402 +#: plugins/sudoers/sudoers.c:403 #, c-format msgid "timestamp owner (%s): No such user" msgstr "tidsstempelejer (%s): Ingen sÃ¥dan bruger" -#: plugins/sudoers/sudoers.c:418 +#: plugins/sudoers/sudoers.c:419 msgid "no tty" msgstr "ingen tty" -#: plugins/sudoers/sudoers.c:419 +#: plugins/sudoers/sudoers.c:420 #, c-format msgid "sorry, you must have a tty to run sudo" msgstr "beklager, du skal bruge en tty for at køre sudo" -#: plugins/sudoers/sudoers.c:462 +#: plugins/sudoers/sudoers.c:463 msgid "No user or host" msgstr "Ingen bruger eller vært" -#: plugins/sudoers/sudoers.c:476 plugins/sudoers/sudoers.c:497 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:1452 -#: plugins/sudoers/sudoers.c:1453 +#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:499 plugins/sudoers/sudoers.c:1465 +#: plugins/sudoers/sudoers.c:1466 #, c-format msgid "%s: command not found" msgstr "%s: Kommando ikke fundet" -#: plugins/sudoers/sudoers.c:478 plugins/sudoers/sudoers.c:494 +#: plugins/sudoers/sudoers.c:479 plugins/sudoers/sudoers.c:495 #, c-format msgid "" "ignoring `%s' found in '.'\n" @@ -1033,95 +1015,95 @@ msgstr "" "ignorerer »%s« fundet i ».«\n" "Brug »sudo ./%s« hvis dette er »%s«, du ønsker at køre." -#: plugins/sudoers/sudoers.c:483 +#: plugins/sudoers/sudoers.c:484 msgid "validation failure" msgstr "valideringsfejl" -#: plugins/sudoers/sudoers.c:493 +#: plugins/sudoers/sudoers.c:494 msgid "command in current directory" msgstr "kommando i aktuel mappe" -#: plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:506 #, c-format msgid "sorry, you are not allowed to preserve the environment" msgstr "beklager men du har ikke tilladelse til at bevare miljøet" -#: plugins/sudoers/sudoers.c:890 +#: plugins/sudoers/sudoers.c:894 #, c-format msgid "internal error, set_cmnd() overflow" msgstr "intern fejl, set_cmnd()-overløb" -#: plugins/sudoers/sudoers.c:935 +#: plugins/sudoers/sudoers.c:936 #, c-format msgid "fixed mode on %s" msgstr "fast tilstand pÃ¥ %s" -#: plugins/sudoers/sudoers.c:939 +#: plugins/sudoers/sudoers.c:940 #, c-format msgid "set group on %s" msgstr "angiv gruppe pÃ¥ %s" -#: plugins/sudoers/sudoers.c:942 +#: plugins/sudoers/sudoers.c:943 #, c-format msgid "unable to set group on %s" msgstr "kan ikke angive gruppe pÃ¥ %s" -#: plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:946 #, c-format msgid "unable to fix mode on %s" msgstr "kan ikke rette tilstand pÃ¥ %s" -#: plugins/sudoers/sudoers.c:958 +#: plugins/sudoers/sudoers.c:959 #, c-format msgid "%s is not a regular file" msgstr "%s er ikke en regulær fil" -#: plugins/sudoers/sudoers.c:960 +#: plugins/sudoers/sudoers.c:961 #, c-format msgid "%s is mode 0%o, should be 0%o" msgstr "%s er tilstand 0%o, bør være 0%o" -#: plugins/sudoers/sudoers.c:964 +#: plugins/sudoers/sudoers.c:965 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s er ejet af uid %u, bør være %u" -#: plugins/sudoers/sudoers.c:967 +#: plugins/sudoers/sudoers.c:968 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s er eget af gid %u, bør være %u" -#: plugins/sudoers/sudoers.c:1011 +#: plugins/sudoers/sudoers.c:1012 #, c-format msgid "only root can use `-c %s'" msgstr "kun administrator (root) kan bruge »-c %s«" -#: plugins/sudoers/sudoers.c:1021 +#: plugins/sudoers/sudoers.c:1022 #, c-format msgid "unknown login class: %s" msgstr "ukendt logindklasse: %s" -#: plugins/sudoers/sudoers.c:1055 +#: plugins/sudoers/sudoers.c:1056 #, c-format msgid "unable to resolve host %s" msgstr "kan ikke slÃ¥ vært %s op" -#: plugins/sudoers/sudoers.c:1105 plugins/sudoers/testsudoers.c:342 +#: plugins/sudoers/sudoers.c:1106 plugins/sudoers/testsudoers.c:351 #, c-format msgid "unknown group: %s" msgstr "ukendt gruppe: %s" -#: plugins/sudoers/sudoers.c:1137 +#: plugins/sudoers/sudoers.c:1150 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Udvidelsesmodulversion %s for sudoerspolitik\n" -#: plugins/sudoers/sudoers.c:1139 +#: plugins/sudoers/sudoers.c:1152 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Grammatikversion %d for sudoersfil\n" -#: plugins/sudoers/sudoers.c:1143 +#: plugins/sudoers/sudoers.c:1156 #, c-format msgid "" "\n" @@ -1130,17 +1112,17 @@ msgstr "" "\n" "Sudoers-sti: %s\n" -#: plugins/sudoers/sudoers.c:1146 +#: plugins/sudoers/sudoers.c:1159 #, c-format msgid "nsswitch path: %s\n" msgstr "nsswitch-sti: %s\n" -#: plugins/sudoers/sudoers.c:1148 +#: plugins/sudoers/sudoers.c:1161 #, c-format msgid "ldap.conf path: %s\n" msgstr "ldap.conf-sti: %s\n" -#: plugins/sudoers/sudoers.c:1149 +#: plugins/sudoers/sudoers.c:1162 #, c-format msgid "ldap.secret path: %s\n" msgstr "ldap.secret-sti: %s\n" @@ -1302,16 +1284,16 @@ msgstr "" " -s hastighedsfaktor øg eller sænk uddata\n" " -V vis versionsinformation og afslut" -#: plugins/sudoers/testsudoers.c:228 +#: plugins/sudoers/testsudoers.c:230 #, c-format msgid "internal error, init_vars() overflow" msgstr "intern fejl, init_vars()-overløb" -#: plugins/sudoers/testsudoers.c:304 +#: plugins/sudoers/testsudoers.c:309 msgid "\thost unmatched" msgstr "\thost matchede ikke" -#: plugins/sudoers/testsudoers.c:307 +#: plugins/sudoers/testsudoers.c:312 msgid "" "\n" "Command allowed" @@ -1319,7 +1301,7 @@ msgstr "" "\n" "Kommando tilladt" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command denied" @@ -1327,7 +1309,7 @@ msgstr "" "\n" "Kommando nægtet" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command unmatched" @@ -1358,81 +1340,81 @@ msgstr "%s grammatikversion %d\n" msgid "you do not exist in the %s database" msgstr "du findes ikke i %s-databasen" -#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:470 +#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:518 #, c-format msgid "press return to edit %s: " msgstr "tryk retur for at redigere %s: " -#: plugins/sudoers/visudo.c:300 plugins/sudoers/visudo.c:306 +#: plugins/sudoers/visudo.c:320 plugins/sudoers/visudo.c:326 #, c-format msgid "write error" msgstr "skrivefejl" -#: plugins/sudoers/visudo.c:360 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "kan ikke stat midlertidig fil (%s), %s unchanged" -#: plugins/sudoers/visudo.c:365 +#: plugins/sudoers/visudo.c:413 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "midlertidig fil med nullængde (%s), %s uændret" -#: plugins/sudoers/visudo.c:371 +#: plugins/sudoers/visudo.c:419 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "redigeringsprogram (%s) fejlede, %s uændret" -#: plugins/sudoers/visudo.c:394 +#: plugins/sudoers/visudo.c:442 #, c-format msgid "%s unchanged" msgstr "%s uændret" -#: plugins/sudoers/visudo.c:418 +#: plugins/sudoers/visudo.c:466 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "kan ikke genÃ¥bne midlertidig fil (%s), %s uændrede." -#: plugins/sudoers/visudo.c:428 +#: plugins/sudoers/visudo.c:476 #, c-format msgid "unabled to parse temporary file (%s), unknown error" msgstr "kan ikke fortolke midlertidig fil (%s), ukendt fejl" -#: plugins/sudoers/visudo.c:463 +#: plugins/sudoers/visudo.c:511 #, c-format msgid "internal error, unable to find %s in list!" msgstr "intern fejl, kan ikke finde %s pÃ¥ listen!" -#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:511 +#: plugins/sudoers/visudo.c:546 plugins/sudoers/visudo.c:555 #, c-format -msgid "unable to set (uid, gid) of %s to (%d, %d)" -msgstr "kan ikke angive (uid, gid) af %s til (%d, %d)" +msgid "unable to set (uid, gid) of %s to (%u, %u)" +msgstr "kan ikke angive (uid, gid) af %s til (%u, %u)" -#: plugins/sudoers/visudo.c:506 plugins/sudoers/visudo.c:516 +#: plugins/sudoers/visudo.c:550 plugins/sudoers/visudo.c:560 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "kan ikke ændre tilstand pÃ¥ %s til 0%o" -#: plugins/sudoers/visudo.c:533 +#: plugins/sudoers/visudo.c:577 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s og %s er ikke pÃ¥ det samme filsystem, bruger mv til at omdøbe" -#: plugins/sudoers/visudo.c:547 +#: plugins/sudoers/visudo.c:591 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "kommando fejlede: »%s %s %s«, %s uændret" -#: plugins/sudoers/visudo.c:557 +#: plugins/sudoers/visudo.c:601 #, c-format msgid "error renaming %s, %s unchanged" msgstr "fejl under omdøbing af %s, %s uændret" -#: plugins/sudoers/visudo.c:617 +#: plugins/sudoers/visudo.c:661 msgid "What now? " msgstr "Hvad nu? " -#: plugins/sudoers/visudo.c:631 +#: plugins/sudoers/visudo.c:675 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -1444,92 +1426,92 @@ msgstr "" " afslut(x) uden at gemme ændringer til sudoersfil\n" " afslut(Q) og gem ændringer til sudoersfil (FARLIGT!)\n" -#: plugins/sudoers/visudo.c:668 +#: plugins/sudoers/visudo.c:712 #, c-format msgid "unable to execute %s" msgstr "kan ikke udføre %s" -#: plugins/sudoers/visudo.c:675 +#: plugins/sudoers/visudo.c:719 #, c-format msgid "unable to run %s" msgstr "kan ikke køre %s" -#: plugins/sudoers/visudo.c:706 +#: plugins/sudoers/visudo.c:750 #, c-format msgid "failed to parse %s file, unknown error" msgstr "kunne ikke fortolke %s-fil, ukendt fejl" -#: plugins/sudoers/visudo.c:718 +#: plugins/sudoers/visudo.c:762 #, c-format msgid "parse error in %s near line %d\n" msgstr "fortolkningsfejl i %s nær linje %d\n" -#: plugins/sudoers/visudo.c:721 +#: plugins/sudoers/visudo.c:765 #, c-format msgid "parse error in %s\n" msgstr "fortolkningsfejl i %s\n" -#: plugins/sudoers/visudo.c:723 +#: plugins/sudoers/visudo.c:767 #, c-format msgid "%s: parsed OK\n" msgstr "%s: fortolket o.k.\n" -#: plugins/sudoers/visudo.c:737 +#: plugins/sudoers/visudo.c:776 #, c-format -msgid "%s: wrong owner (uid, gid) should be (%d, %d)\n" -msgstr "%s: forkert ejer (uid, gid) bør være (%d, %d)\n" +msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" +msgstr "%s: forkert ejer (uid, gid) bør være (%u, %u)\n" -#: plugins/sudoers/visudo.c:744 +#: plugins/sudoers/visudo.c:783 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: ugyldige rettigheder, bør være tilstand 0%o\n" -#: plugins/sudoers/visudo.c:783 +#: plugins/sudoers/visudo.c:822 #, c-format msgid "%s busy, try again later" msgstr "%s travl, forsøg igen senere" -#: plugins/sudoers/visudo.c:826 +#: plugins/sudoers/visudo.c:865 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "angivet redigeringsprogram (%s) findes ikke" -#: plugins/sudoers/visudo.c:849 +#: plugins/sudoers/visudo.c:888 #, c-format msgid "unable to stat editor (%s)" msgstr "kan ikke stat redigeringsprogram (%s)" -#: plugins/sudoers/visudo.c:897 +#: plugins/sudoers/visudo.c:936 #, c-format msgid "no editor found (editor path = %s)" msgstr "intet redigeringsprogram fundet (sti for redigeringsprogram = %s)" -#: plugins/sudoers/visudo.c:986 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "Error: cycle in %s_Alias `%s'" msgstr "Fejl: Cyklus i %s_Alias »%s«" -#: plugins/sudoers/visudo.c:987 +#: plugins/sudoers/visudo.c:1026 #, c-format msgid "Warning: cycle in %s_Alias `%s'" msgstr "Advarsel: Cyklus i %s_Alias »%s«" -#: plugins/sudoers/visudo.c:990 +#: plugins/sudoers/visudo.c:1029 #, c-format msgid "Error: %s_Alias `%s' referenced but not defined" msgstr "Fejl: %s_Alias »%s« refereret men ikke defineret" -#: plugins/sudoers/visudo.c:991 +#: plugins/sudoers/visudo.c:1030 #, c-format msgid "Warning: %s_Alias `%s' referenced but not defined" msgstr "Advarsel: %s_Alias »%s« refereret men ikke defineret" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1167 #, c-format msgid "%s: unused %s_Alias %s" msgstr "%s: ubrugt %s_Alias %s" -#: plugins/sudoers/visudo.c:1185 +#: plugins/sudoers/visudo.c:1224 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -1538,7 +1520,7 @@ msgstr "" "%s - rediger sikkert sudoersfilen\n" "\n" -#: plugins/sudoers/visudo.c:1187 +#: plugins/sudoers/visudo.c:1226 msgid "" "\n" "Options:\n" @@ -1740,3 +1722,16 @@ msgstr[1] "%d ukorrekte adgangskodeforsøg" #: plugins/sudoers/auth/sudo_auth.c:335 msgid "Authentication methods:" msgstr "Godkendelsesmetoder:" + +#~ msgid "" +#~ "Available options in a sudoers ``Defaults'' line:\n" +#~ "\n" +#~ msgstr "" +#~ "Tilgængelige indstillinger i en sudoers »standardlinje«:\n" +#~ "\n" + +#~ msgid "%s: %s\n" +#~ msgstr "%s: %s\n" + +#~ msgid "%s: %.*s\n" +#~ msgstr "%s: %.*s\n" diff --git a/plugins/sudoers/po/eo.mo b/plugins/sudoers/po/eo.mo new file mode 100644 index 0000000..fc6748a Binary files /dev/null and b/plugins/sudoers/po/eo.mo differ diff --git a/plugins/sudoers/po/eo.po b/plugins/sudoers/po/eo.po new file mode 100644 index 0000000..d73936b --- /dev/null +++ b/plugins/sudoers/po/eo.po @@ -0,0 +1,1711 @@ +# Esperanto translations for sudo package. +# This file is put in the public domain. +# Keith Bowes , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: sudoers 1.8.3rc1\n" +"Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" +"POT-Creation-Date: 2011-09-16 16:52-0400\n" +"PO-Revision-Date: 2011-09-17 20:40-0400\n" +"Last-Translator: Keith Bowes \n" +"Language-Team: Esperanto \n" +"Language: eo\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" + +#: plugins/sudoers/alias.c:122 +#, c-format +msgid "Alias `%s' already defined" +msgstr "Kromnomo '%s' jam ekzistas" + +#: plugins/sudoers/bsm_audit.c:58 plugins/sudoers/bsm_audit.c:61 +#: plugins/sudoers/bsm_audit.c:109 plugins/sudoers/bsm_audit.c:113 +#: plugins/sudoers/bsm_audit.c:163 plugins/sudoers/bsm_audit.c:167 +msgid "getaudit: failed" +msgstr "getaudit: malsukcesis" + +#: plugins/sudoers/bsm_audit.c:87 plugins/sudoers/bsm_audit.c:148 +msgid "Could not determine audit condition" +msgstr "Ne eblis determini aÅ­dan kondiĉon" + +#: plugins/sudoers/bsm_audit.c:98 +msgid "getauid failed" +msgstr "getauid: malsukcesis" + +#: plugins/sudoers/bsm_audit.c:100 plugins/sudoers/bsm_audit.c:157 +msgid "au_open: failed" +msgstr "au_open: malsukcesis" + +#: plugins/sudoers/bsm_audit.c:115 plugins/sudoers/bsm_audit.c:169 +msgid "au_to_subject: failed" +msgstr "au_to_subject: malsukcesis" + +#: plugins/sudoers/bsm_audit.c:119 plugins/sudoers/bsm_audit.c:173 +msgid "au_to_exec_args: failed" +msgstr "au_to_exec_args: malsukcesis" + +#: plugins/sudoers/bsm_audit.c:123 plugins/sudoers/bsm_audit.c:182 +msgid "au_to_return32: failed" +msgstr "getaudit: malsukcesis" + +#: plugins/sudoers/bsm_audit.c:126 plugins/sudoers/bsm_audit.c:185 +msgid "unable to commit audit record" +msgstr "ne eblis konservi aÅ­dan rekordon" + +#: plugins/sudoers/bsm_audit.c:155 +msgid "getauid: failed" +msgstr "getauid: malsukcesis" + +#: plugins/sudoers/bsm_audit.c:178 +msgid "au_to_text: failed" +msgstr "au_to_text: malsukcesis" + +#: plugins/sudoers/check.c:141 +#, c-format +msgid "sorry, a password is required to run %s" +msgstr "bedaÅ­ri pasvorto estas bezonata por plenumi: %s" + +#: plugins/sudoers/check.c:225 plugins/sudoers/iolog.c:169 +#: plugins/sudoers/sudoers.c:971 plugins/sudoers/sudoreplay.c:325 +#: plugins/sudoers/sudoreplay.c:334 plugins/sudoers/sudoreplay.c:675 +#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:744 +#, c-format +msgid "unable to open %s" +msgstr "ne eblas malfermi: %s" + +#: plugins/sudoers/check.c:229 plugins/sudoers/iolog.c:199 +#, c-format +msgid "unable to write to %s" +msgstr "ne eblas skribi al %s" + +#: plugins/sudoers/check.c:237 plugins/sudoers/check.c:475 +#: plugins/sudoers/check.c:525 plugins/sudoers/iolog.c:122 +#: plugins/sudoers/iolog.c:153 +#, c-format +msgid "unable to mkdir %s" +msgstr "ne eblas mkdir-i: %s" + +#: plugins/sudoers/check.c:370 +#, c-format +msgid "internal error, expand_prompt() overflow" +msgstr "ena eraro, expand_prompte() superfluo" + +#: plugins/sudoers/check.c:426 +#, c-format +msgid "timestamp path too long: %s" +msgstr "tempo-indikila pado tro longa: %s" + +#: plugins/sudoers/check.c:454 plugins/sudoers/check.c:498 +#: plugins/sudoers/iolog.c:155 +#, c-format +msgid "%s exists but is not a directory (0%o)" +msgstr "%s ekzistas sed ne dosierujo (0%o)" + +#: plugins/sudoers/check.c:457 plugins/sudoers/check.c:501 +#: plugins/sudoers/check.c:546 +#, c-format +msgid "%s owned by uid %u, should be uid %u" +msgstr "%s estas estrita de uid %u, devas esti uid %u" + +#: plugins/sudoers/check.c:462 plugins/sudoers/check.c:506 +#, c-format +msgid "%s writable by non-owner (0%o), should be mode 0700" +msgstr "%s skribebla de ne-estro (0%o), devas esti reĝimo 0700" + +#: plugins/sudoers/check.c:470 plugins/sudoers/check.c:514 +#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:957 +#: plugins/sudoers/visudo.c:304 plugins/sudoers/visudo.c:544 +#, c-format +msgid "unable to stat %s" +msgstr "ne eblas stat-i: %s" + +#: plugins/sudoers/check.c:540 +#, c-format +msgid "%s exists but is not a regular file (0%o)" +msgstr "%s ekzistas sed ne estas regula dosiero (0%o)" + +#: plugins/sudoers/check.c:552 +#, c-format +msgid "%s writable by non-owner (0%o), should be mode 0600" +msgstr "%s skribebla de ne-estro (0%o), devas esti reĝimo 0600" + +#: plugins/sudoers/check.c:606 +#, c-format +msgid "timestamp too far in the future: %20.20s" +msgstr "tempo-indikilo tro estonte: %20.20s" + +#: plugins/sudoers/check.c:652 +#, c-format +msgid "unable to remove %s (%s), will reset to the epoch" +msgstr "ne eblas forigi: %s (%s); restarigos al la epoko" + +#: plugins/sudoers/check.c:660 +#, c-format +msgid "unable to reset %s to the epoch" +msgstr "ne eblas restarigi al la epoko: %s" + +#: plugins/sudoers/check.c:714 plugins/sudoers/check.c:720 +#, c-format +msgid "unknown uid: %u" +msgstr "nekonata uid: %u" + +#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:748 +#: plugins/sudoers/sudoers.c:814 plugins/sudoers/sudoers.c:815 +#: plugins/sudoers/sudoers.c:1088 plugins/sudoers/testsudoers.c:202 +#: plugins/sudoers/testsudoers.c:337 +#, c-format +msgid "unknown user: %s" +msgstr "nekonata uzanto: %s" + +#: plugins/sudoers/def_data.c:27 +#, c-format +msgid "Syslog facility if syslog is being used for logging: %s" +msgstr "Syslog-trajto se syslog estas uzata por protokoli: %s" + +#: plugins/sudoers/def_data.c:31 +#, c-format +msgid "Syslog priority to use when user authenticates successfully: %s" +msgstr "Syslog-prioritato por uzi, kiam uzanta sukcese konstatas: %s" + +#: plugins/sudoers/def_data.c:35 +#, c-format +msgid "Syslog priority to use when user authenticates unsuccessfully: %s" +msgstr "Syslog-prioritato por uzi kiam uzanto malsukcese konstatas: %s" + +#: plugins/sudoers/def_data.c:39 +msgid "Put OTP prompt on its own line" +msgstr "Meti OTP-demandilon en sia propra linio" + +#: plugins/sudoers/def_data.c:43 +msgid "Ignore '.' in $PATH" +msgstr "Ignoro punkton en $PATH" + +#: plugins/sudoers/def_data.c:47 +msgid "Always send mail when sudo is run" +msgstr "Ĉiam sendi retmesaĝon kiam sudo plenumiĝas" + +#: plugins/sudoers/def_data.c:51 +msgid "Send mail if user authentication fails" +msgstr "Sendi retmesaĝon se uzanto-konstato malsukcesas" + +#: plugins/sudoers/def_data.c:55 +msgid "Send mail if the user is not in sudoers" +msgstr "Sendi retmesaĝon se la uzanto ne estas en sudoers" + +#: plugins/sudoers/def_data.c:59 +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" + +#: plugins/sudoers/def_data.c:63 +msgid "Send mail if the user is not allowed to run a command" +msgstr "Sendi retmesaĝon se la uzanto ne estas permesata plenumigi komandon" + +#: plugins/sudoers/def_data.c:67 +msgid "Use a separate timestamp for each user/tty combo" +msgstr "Uzi apartan tempo-indikilon por ĉiu uzanto/tty-kombino" + +#: plugins/sudoers/def_data.c:71 +msgid "Lecture user the first time they run sudo" +msgstr "Averti uzanton dum la unua fojo ĝi plenumigas je sudo" + +#: plugins/sudoers/def_data.c:75 +#, c-format +msgid "File containing the sudo lecture: %s" +msgstr "Dosiero havanta la sudo-averton: %s" + +#: plugins/sudoers/def_data.c:79 +msgid "Require users to authenticate by default" +msgstr "Postulas, ke uzantoj konstatas aÅ­tomate" + +#: plugins/sudoers/def_data.c:83 +msgid "Root may run sudo" +msgstr "Radiko rajtas plenumigi: sudo" + +#: plugins/sudoers/def_data.c:87 +msgid "Log the hostname in the (non-syslog) log file" +msgstr "Protokoli la gastignomon en la (ne syslog) protokolo" + +#: plugins/sudoers/def_data.c:91 +msgid "Log the year in the (non-syslog) log file" +msgstr "Protokoli la jaron en la (ne syslog) protokolo" + +#: plugins/sudoers/def_data.c:95 +msgid "If sudo is invoked with no arguments, start a shell" +msgstr "Se sudo estas vokata kun neniuj parametroj, komencu ŝelon" + +#: plugins/sudoers/def_data.c:99 +msgid "Set $HOME to the target user when starting a shell with -s" +msgstr "Valorizi medivariablon $HOME al la cela uzanto dum komenci ŝelon kun -s" + +#: plugins/sudoers/def_data.c:103 +msgid "Always set $HOME to the target user's home directory" +msgstr "Ĉiam valorizi medivariablon $HOME al la hejma dosierujo de la cela uzanto" + +#: plugins/sudoers/def_data.c:107 +msgid "Allow some information gathering to give useful error messages" +msgstr "Permesi, ke iu informokolektado por doni utilajn eraromesaĝojn" + +#: plugins/sudoers/def_data.c:111 +msgid "Require fully-qualified hostnames in the sudoers file" +msgstr "Postuli tute kvalifikitajn gastiganto-nomojn en la dosiero sudoers" + +#: plugins/sudoers/def_data.c:115 +msgid "Insult the user when they enter an incorrect password" +msgstr "Insulti la uzanton, kiam si enmetas malĝustan pasvorton" + +#: plugins/sudoers/def_data.c:119 +msgid "Only allow the user to run sudo if they have a tty" +msgstr "Nur permesi, ke uzanto plenumigu sudo-on se si havas tty-on" + +#: plugins/sudoers/def_data.c:123 +msgid "Visudo will honor the EDITOR environment variable" +msgstr "Visudo honoru la medivariablon EDITOR" + +#: plugins/sudoers/def_data.c:127 +msgid "Prompt for root's password, not the users's" +msgstr "Peti la ĉefuzantan pasvorton, ne la uzanto-pasvorton" + +#: plugins/sudoers/def_data.c:131 +msgid "Prompt for the runas_default user's password, not the users's" +msgstr "Peti la pasvorton de runas_default, ne de la uzanto" + +#: plugins/sudoers/def_data.c:135 +msgid "Prompt for the target user's password, not the users's" +msgstr "Peti la pasvorton de la cela uzanto, ne la nuna uzanto" + +#: plugins/sudoers/def_data.c:139 +msgid "Apply defaults in the target user's login class if there is one" +msgstr "Apliki aÅ­tomataĵojn en la ensaluta klaso de la cela uzanto, se ĝi ekzistas" + +#: plugins/sudoers/def_data.c:143 +msgid "Set the LOGNAME and USER environment variables" +msgstr "Valorizi la medivariablojn LOGNAME kaj USER" + +#: plugins/sudoers/def_data.c:147 +msgid "Only set the effective uid to the target user, not the real uid" +msgstr "Nur valorizi la efikan uid-on al la cela uzanto, ne la realan uid-on" + +#: plugins/sudoers/def_data.c:151 +msgid "Don't initialize the group vector to that of the target user" +msgstr "Ne iniciati la grupon vektoron al tio de la cela uzanto" + +#: plugins/sudoers/def_data.c:155 +#, c-format +msgid "Length at which to wrap log file lines (0 for no wrap): %d" +msgstr "Longo je kiu linfaldi la protokolon (0 por senfalda): %d" + +#: plugins/sudoers/def_data.c:159 +#, c-format +msgid "Authentication timestamp timeout: %.1f minutes" +msgstr "Eksvalidiĝo de la konstata tempo-indikilo: %.1f minutoj" + +#: plugins/sudoers/def_data.c:163 +#, c-format +msgid "Password prompt timeout: %.1f minutes" +msgstr "Eksvalidiĝo de la pasvortilo: %.1f minutoj" + +#: plugins/sudoers/def_data.c:167 +#, c-format +msgid "Number of tries to enter a password: %d" +msgstr "Nombro da provoj por enmeti pasvorton: %d" + +#: plugins/sudoers/def_data.c:171 +#, c-format +msgid "Umask to use or 0777 to use user's: 0%o" +msgstr "Umask uzi aÅ­ 07777 por uzi uzanton: 0%o" + +#: plugins/sudoers/def_data.c:175 +#, c-format +msgid "Path to log file: %s" +msgstr "Pado al protokolo: %s" + +#: plugins/sudoers/def_data.c:179 +#, c-format +msgid "Path to mail program: %s" +msgstr "Pado al retpoŝtilo: %s" + +#: plugins/sudoers/def_data.c:183 +#, c-format +msgid "Flags for mail program: %s" +msgstr "Parametroj por retpoŝtilo: %s" + +#: plugins/sudoers/def_data.c:187 +#, c-format +msgid "Address to send mail to: %s" +msgstr "Retpoŝtadreso adresata: %s" + +#: plugins/sudoers/def_data.c:191 +#, c-format +msgid "Address to send mail from: %s" +msgstr "Retpoŝtadreso adresanta: %s" + +#: plugins/sudoers/def_data.c:195 +#, c-format +msgid "Subject line for mail messages: %s" +msgstr "Subjekta linio por ĉiuj mesaĝoj: %s" + +#: plugins/sudoers/def_data.c:199 +#, c-format +msgid "Incorrect password message: %s" +msgstr "Neĝusta pasvorta mesaĝo: %s" + +#: plugins/sudoers/def_data.c:203 +#, c-format +msgid "Path to authentication timestamp dir: %s" +msgstr "Pado al dosierujo de konstata tempostampo: %s" + +#: plugins/sudoers/def_data.c:207 +#, c-format +msgid "Owner of the authentication timestamp dir: %s" +msgstr "Estro de la dosierujo de konstata tempostampo: %s" + +#: plugins/sudoers/def_data.c:211 +#, c-format +msgid "Users in this group are exempt from password and PATH requirements: %s" +msgstr "Uzantoj en la grupo en devas plenumi la postulojn de posvorto kaj PATH: %s" + +#: plugins/sudoers/def_data.c:215 +#, c-format +msgid "Default password prompt: %s" +msgstr "DefaÅ­lta pasvorta peto: %s" + +#: plugins/sudoers/def_data.c:219 +msgid "If set, passprompt will override system prompt in all cases." +msgstr "Se aktivigita, passprompt superregas sistemajn invitojn ĉiuokaze." + +#: plugins/sudoers/def_data.c:223 +#, c-format +msgid "Default user to run commands as: %s" +msgstr "DefaÅ­lta uzanto por plenumigi komandojn: %s" + +#: plugins/sudoers/def_data.c:227 +#, c-format +msgid "Value to override user's $PATH with: %s" +msgstr "Valoro per kiu superregi la PATH-on de uzanto: %s" + +#: plugins/sudoers/def_data.c:231 +#, c-format +msgid "Path to the editor for use by visudo: %s" +msgstr "Pado al la tekstoredaktilo uzota de visudo: %s" + +#: plugins/sudoers/def_data.c:235 +#, c-format +msgid "When to require a password for 'list' pseudocommand: %s" +msgstr "Kiam postuli pasvorton por la pseÅ­dokomando 'list': %s" + +#: plugins/sudoers/def_data.c:239 +#, c-format +msgid "When to require a password for 'verify' pseudocommand: %s" +msgstr "Kiam postuli pasvorton por la pseÅ­dokamando 'verify': %s" + +#: plugins/sudoers/def_data.c:243 +msgid "Preload the dummy exec functions contained in 'noexec_file'" +msgstr "Anstaŭŝargi la falsan exec-funkciojn enhavatajn en 'noexec_file'" + +#: plugins/sudoers/def_data.c:247 +#, c-format +msgid "File containing dummy exec functions: %s" +msgstr "Dosiero enhavantaj falsajn exec-funkciojn: %s" + +#: plugins/sudoers/def_data.c:251 +msgid "If LDAP directory is up, do we ignore local sudoers file" +msgstr "Se LDAP-dosierujo estas aktiva, ni ignoru la lokan suders-dosieron" + +#: plugins/sudoers/def_data.c:255 +#, c-format +msgid "File descriptors >= %d will be closed before executing a command" +msgstr "Dosiero-priskribiloj >= %d fermiĝos antaÅ­ ol plenumigi komandon" + +#: plugins/sudoers/def_data.c:259 +msgid "If set, users may override the value of `closefrom' with the -C option" +msgstr "Se aktiva, uzantoj rajtas superregi la voloron de 'closefrom' per la parametro -C" + +#: plugins/sudoers/def_data.c:263 +msgid "Allow users to set arbitrary environment variables" +msgstr "Permesi, ke uzantoj valorizu arbitrajn medivariablojn" + +#: plugins/sudoers/def_data.c:267 +msgid "Reset the environment to a default set of variables" +msgstr "Restarigi la medion al apriora aro da variabloj" + +#: plugins/sudoers/def_data.c:271 +msgid "Environment variables to check for sanity:" +msgstr "Medivariabloj por kontroli por sano:" + +#: plugins/sudoers/def_data.c:275 +msgid "Environment variables to remove:" +msgstr "Medivariabloj por forigi:" + +#: plugins/sudoers/def_data.c:279 +msgid "Environment variables to preserve:" +msgstr "Medivariabloj konservi:" + +#: plugins/sudoers/def_data.c:283 +#, c-format +msgid "SELinux role to use in the new security context: %s" +msgstr "SELinux-rolo por uzi en la nova sekureca kunteksto: %s" + +#: plugins/sudoers/def_data.c:287 +#, c-format +msgid "SELinux type to use in the new security context: %s" +msgstr "SELinux-tipo por uzi en la nova sekureca kunteksto: %s" + +#: plugins/sudoers/def_data.c:291 +#, c-format +msgid "Path to the sudo-specific environment file: %s" +msgstr "Pado al media dosiero specifa al sudo: %s" + +#: plugins/sudoers/def_data.c:295 +#, c-format +msgid "Locale to use while parsing sudoers: %s" +msgstr "Lokaĵaro por uzi dum analizi dosieron sudoers: %s" + +#: plugins/sudoers/def_data.c:299 +msgid "Allow sudo to prompt for a password even if it would be visisble" +msgstr "Permesi, ke sudo peti pasvorton eĉ se ĝi estus nevidebla" + +#: plugins/sudoers/def_data.c:303 +msgid "Provide visual feedback at the password prompt when there is user input" +msgstr "Doni vidajn indikojn je la pasvorta enmetanta kiam ekzistas enmeto" + +#: plugins/sudoers/def_data.c:307 +msgid "Use faster globbing that is less accurate but does not access the filesystem" +msgstr "Uzi pli rapida kunigo, kiu estas malpli ĝusta sed ne atingas la dosiersistemon" + +#: plugins/sudoers/def_data.c:311 +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." + +#: plugins/sudoers/def_data.c:315 +msgid "Log user's input for the command being run" +msgstr "Protokoli enmeton de uzanto por la komando, kiun si plenumigas" + +#: plugins/sudoers/def_data.c:319 +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:323 +msgid "Compress I/O logs using zlib" +msgstr "Kunpremi eneligaj protokoloj per zlib" + +#: plugins/sudoers/def_data.c:327 +msgid "Always run commands in a pseudo-tty" +msgstr "Ĉiam protokoli komandojn en pseÅ­da tty" + +#: plugins/sudoers/def_data.c:331 +msgid "Plugin for non-Unix group support" +msgstr "Kromprogramo por kompreno de ne-uniksaj grupoj" + +#: plugins/sudoers/def_data.c:335 +msgid "Directory in which to store input/output logs" +msgstr "Dosierujo en kiu konservi eneligaj protokoloj" + +#: plugins/sudoers/def_data.c:339 +msgid "File in which to store the input/output log" +msgstr "Dosiero en kiu konservi la eneliga protokolo" + +#: plugins/sudoers/def_data.c:343 +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:347 +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/defaults.c:205 +#, c-format +msgid "unknown defaults entry `%s'" +msgstr "nekonata ero '%s' en defaults" + +#: plugins/sudoers/defaults.c:213 plugins/sudoers/defaults.c:223 +#: plugins/sudoers/defaults.c:243 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 +#, c-format +msgid "value `%s' is invalid for option `%s'" +msgstr "valoro '%s' estas nevalida por parametro '%s'" + +#: plugins/sudoers/defaults.c:216 plugins/sudoers/defaults.c:226 +#: plugins/sudoers/defaults.c:234 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 +#, c-format +msgid "no value specified for `%s'" +msgstr "neniu valoro specifita por '%s'" + +#: plugins/sudoers/defaults.c:239 +#, c-format +msgid "values for `%s' must start with a '/'" +msgstr "Valoroj por '%s' devas komenciĝi per '/'" + +#: plugins/sudoers/defaults.c:301 +#, c-format +msgid "option `%s' does not take a value" +msgstr "parametro '%s' ne povas havi valoron" + +#: plugins/sudoers/env.c:259 +#, c-format +msgid "internal error, sudo_setenv() overflow" +msgstr "ena eraro, sudo_setenv() superfluo" + +#: plugins/sudoers/env.c:289 +#, c-format +msgid "sudo_putenv: corrupted envp, length mismatch" +msgstr "sudo_putenv: medio tro granda" + +#: plugins/sudoers/env.c:698 +#, 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" + +#: plugins/sudoers/find_path.c:68 plugins/sudoers/find_path.c:107 +#: plugins/sudoers/find_path.c:122 plugins/sudoers/iolog.c:124 +#: plugins/sudoers/sudoers.c:903 toke.l:663 toke.l:814 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: gram.y:103 +#, c-format +msgid ">>> %s: %s near line %d <<<" +msgstr ">>> %s: %s apud linio %d <<<" + +#: plugins/sudoers/group_plugin.c:90 +#, c-format +msgid "%s%s: %s" +msgstr "%s%s: %s" + +#: plugins/sudoers/group_plugin.c:102 +#, c-format +msgid "%s must be owned by uid %d" +msgstr "%s devas esti estrata de uid %d" + +#: plugins/sudoers/group_plugin.c:106 +#, c-format +msgid "%s must only be writable by owner" +msgstr "%s devas esti skribebla nur de estro" + +#: plugins/sudoers/group_plugin.c:113 +#, c-format +msgid "unable to dlopen %s: %s" +msgstr "ne eblas dlopen: %s: %s" + +#: plugins/sudoers/group_plugin.c:118 +#, 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:123 +#, c-format +msgid "%s: incompatible group plugin major version %d, expected %d" +msgstr "%s: nekongrua grupa kromprogramo: ĉefa eldono %d, atendita %d" + +#: plugins/sudoers/interfaces.c:109 +msgid "Local IP address and netmask pairs:\n" +msgstr "Loka IP-adresa kaj retmaska paroj:\n" + +#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:978 +#, c-format +msgid "unable to read %s" +msgstr "ne eblas legi %s" + +#: plugins/sudoers/iolog.c:179 +#, c-format +msgid "invalid sequence number %s" +msgstr "nevalida sinsekva numero %s" + +#: plugins/sudoers/iolog.c:225 plugins/sudoers/iolog.c:228 +#: plugins/sudoers/iolog.c:478 plugins/sudoers/iolog.c:483 +#: plugins/sudoers/iolog.c:489 plugins/sudoers/iolog.c:497 +#: plugins/sudoers/iolog.c:505 plugins/sudoers/iolog.c:513 +#: plugins/sudoers/iolog.c:521 +#, c-format +msgid "unable to create %s" +msgstr "ne eblas krei: %s" + +#: plugins/sudoers/iolog_path.c:247 plugins/sudoers/sudoers.c:357 +#, c-format +msgid "unable to set locale to \"%s\", using \"C\"" +msgstr "ne eblas elekti lokaĵaron \"%s\", uzanta lokaĵaron \"C\"" + +#: plugins/sudoers/ldap.c:368 +#, c-format +msgid "sudo_ldap_conf_add_ports: port too large" +msgstr "sudo_ldap_conf_add_ports: pordo tro granda" + +#: plugins/sudoers/ldap.c:391 +#, c-format +msgid "sudo_ldap_conf_add_ports: out of space expanding hostbuf" +msgstr "sudo_ldap_conf_add_ports: eluzis spacon etendanta la bufron" + +#: plugins/sudoers/ldap.c:420 +#, c-format +msgid "unsupported LDAP uri type: %s" +msgstr "nekonata retadresa tipo de LDAP: %s" + +#: plugins/sudoers/ldap.c:449 +#, c-format +msgid "invalid uri: %s" +msgstr "nevalida retadreso: %s" + +#: plugins/sudoers/ldap.c:455 +#, c-format +msgid "unable to mix ldap and ldaps URIs" +msgstr "ne eblas miksi sekurajn kaj nesekurajn retadresojn de LDAP" + +#: plugins/sudoers/ldap.c:459 +#, c-format +msgid "unable to mix ldaps and starttls" +msgstr "ne eblas miksi protokolojn ldaps kaj starttls" + +#: plugins/sudoers/ldap.c:478 +#, c-format +msgid "sudo_ldap_parse_uri: out of space building hostbuf" +msgstr "sudo_ldap_parse_uri: eluzis spacon muntanta la bufron" + +#: plugins/sudoers/ldap.c:541 +#, c-format +msgid "unable to initialize SSL cert and key db: %s" +msgstr "ne eblas iniciati SSL-asertilon kaj ŝlosilan datumbazon: %s" + +#: plugins/sudoers/ldap.c:937 +#, c-format +msgid "unable to get GMT time" +msgstr "ne eblas atingi GMT-tempon" + +#: plugins/sudoers/ldap.c:943 +#, c-format +msgid "unable to format timestamp" +msgstr "ne eblas aranĝi tempostampon" + +#: plugins/sudoers/ldap.c:951 +#, c-format +msgid "unable to build time filter" +msgstr "ne eblas munti tempan filtrilon" + +#: plugins/sudoers/ldap.c:1052 +#, c-format +msgid "sudo_ldap_build_pass1 allocation mismatch" +msgstr "sudo_ldap_build_pass1: genra malkongruaĵo" + +#: plugins/sudoers/ldap.c:1562 +#, c-format +msgid "" +"\n" +"LDAP Role: %s\n" +msgstr "" +"\n" +"LDAP-rolo: %s\n" + +#: plugins/sudoers/ldap.c:1564 +#, c-format +msgid "" +"\n" +"LDAP Role: UNKNOWN\n" +msgstr "" +"\n" +"LDAP-rolo: NEKONATA\n" + +#: plugins/sudoers/ldap.c:1611 +#, c-format +msgid " Order: %s\n" +msgstr " Ordo: %s\n" + +#: plugins/sudoers/ldap.c:1619 +#, c-format +msgid " Commands:\n" +msgstr " Komandoj:\n" + +#: plugins/sudoers/ldap.c:2006 +#, c-format +msgid "unable to initialize LDAP: %s" +msgstr "ne eblas iniciati LDAP-on: %s" + +#: plugins/sudoers/ldap.c:2037 +#, c-format +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:2268 +#, c-format +msgid "invalid sudoOrder attribute: %s" +msgstr "nevalida atributo de sudoOrdo: %s" + +#: plugins/sudoers/linux_audit.c:55 +#, c-format +msgid "unable to open audit system" +msgstr "ne eblas malfermi aÅ­dan sistemon" + +#: plugins/sudoers/linux_audit.c:79 +#, c-format +msgid "internal error, linux_audit_command() overflow" +msgstr "ena eraro, linux_audit_command() superfluo" + +#: plugins/sudoers/linux_audit.c:88 +#, c-format +msgid "unable to send audit message" +msgstr "ne eblas sendi aÅ­dan mesaĝon" + +#: plugins/sudoers/logging.c:192 +#, c-format +msgid "unable to open log file: %s: %s" +msgstr "ne eblas malfermi protokolon: %s: %s" + +#: plugins/sudoers/logging.c:195 +#, c-format +msgid "unable to lock log file: %s: %s" +msgstr "ne eblas ŝlosi protokolon: %s: %s" + +#: plugins/sudoers/logging.c:249 +msgid "user NOT in sudoers" +msgstr "uzanto NE en sudoers" + +#: plugins/sudoers/logging.c:251 +msgid "user NOT authorized on host" +msgstr "uzanto NE permesata en gastiganto" + +#: plugins/sudoers/logging.c:253 +msgid "command not allowed" +msgstr "komando ne permesata" + +#: plugins/sudoers/logging.c:263 +#, c-format +msgid "%s is not in the sudoers file. This incident will be reported.\n" +msgstr "%s ne estas en la dosiero sudoers. Ĉi tiu estos raportita.\n" + +#: plugins/sudoers/logging.c:266 +#, c-format +msgid "%s is not allowed to run sudo on %s. This incident will be reported.\n" +msgstr "%s estas ne permesata plenumigi sudo-on en %s. Ĉi tio estos raportita\n" + +#: plugins/sudoers/logging.c:270 +#, c-format +msgid "Sorry, user %s may not run sudo on %s.\n" +msgstr "BedaÅ­re uzanto %s ne rajtas plenumigi sudo-on en %s.\n" + +#: plugins/sudoers/logging.c:273 +#, 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'-on kiel %s%s%s en %s.\n" + +#: plugins/sudoers/logging.c:408 +#, c-format +msgid "unable to fork" +msgstr "ne eblas forki" + +#: plugins/sudoers/logging.c:415 plugins/sudoers/logging.c:472 +#, c-format +msgid "unable to fork: %m" +msgstr "ne eblas forki: %m" + +#: plugins/sudoers/logging.c:465 +#, c-format +msgid "unable to open pipe: %m" +msgstr "ne eblas malfermi tubon: %m" + +#: plugins/sudoers/logging.c:484 +#, c-format +msgid "unable to dup stdin: %m" +msgstr "ne eblas kopii enigon: %m" + +#: plugins/sudoers/logging.c:518 +#, c-format +msgid "unable to execute %s: %m" +msgstr "ne eblas plenumigi %s-on: %m" + +#: plugins/sudoers/logging.c:728 +#, c-format +msgid "internal error: insufficient space for log line" +msgstr "ena eraro: nesufiĉa spaco por protokola linio" + +#: plugins/sudoers/parse.c:115 +#, c-format +msgid "parse error in %s near line %d" +msgstr "analiza eraro en %s proksime al linio %d" + +#: plugins/sudoers/parse.c:371 +#, c-format +msgid "" +"\n" +"Sudoers entry:\n" +msgstr "" +"\n" +"Ero en sudoers:\n" + +#: plugins/sudoers/parse.c:373 +#, c-format +msgid " RunAsUsers: " +msgstr " RunAsUsers: " + +#: plugins/sudoers/parse.c:388 +#, c-format +msgid " RunAsGroups: " +msgstr " RunAsGroups: " + +#: plugins/sudoers/parse.c:397 +#, c-format +msgid "" +" Commands:\n" +"\t" +msgstr "" +" Komandoj:\n" +"\t" + +#: plugins/sudoers/plugin_error.c:100 plugins/sudoers/plugin_error.c:105 +msgid ": " +msgstr ": " + +#: plugins/sudoers/pwutil.c:251 +#, c-format +msgid "unable to cache uid %u (%s), already exists" +msgstr "ne eblas konservi uid-on %u (%s), jam ekzistas" + +#: plugins/sudoers/pwutil.c:259 +#, c-format +msgid "unable to cache uid %u, already exists" +msgstr "ne eblas konservi uid-on %u, jam ekzistas" + +#: plugins/sudoers/pwutil.c:295 plugins/sudoers/pwutil.c:304 +#, c-format +msgid "unable to cache user %s, already exists" +msgstr "ne eblas konservi uzanton %s, jam ekzistas" + +#: plugins/sudoers/pwutil.c:607 +#, c-format +msgid "unable to cache gid %u (%s), already exists" +msgstr "ne eblas konservi gid-on %u (%s), jam ekzistas" + +#: plugins/sudoers/pwutil.c:615 +#, c-format +msgid "unable to cache gid %u, already exists" +msgstr "ne eblas konservi gid-on %u, jam ekzistas" + +#: plugins/sudoers/pwutil.c:644 plugins/sudoers/pwutil.c:653 +#, c-format +msgid "unable to cache group %s, already exists" +msgstr "ne eblas konservi grupon %s, jam ekzistas" + +#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:358 +#: plugins/sudoers/set_perms.c:590 plugins/sudoers/set_perms.c:824 +msgid "perm stack overflow" +msgstr "permeso-staka superfluo" + +#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:366 +#: plugins/sudoers/set_perms.c:598 plugins/sudoers/set_perms.c:832 +msgid "perm stack underflow" +msgstr "permeso-staka subfluo" + +#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:458 +#: plugins/sudoers/set_perms.c:695 +msgid "unable to change to runas gid" +msgstr "ne eblas ŝanĝi al plenumigkiela gid" + +#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:465 +#: plugins/sudoers/set_perms.c:702 +msgid "unable to change to runas uid" +msgstr "ne eblas ŝanĝi al plenumigkiela uid" + +#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:478 +#: plugins/sudoers/set_perms.c:715 +#, c-format +msgid "unable to change to sudoers gid" +msgstr "ne eblas ŝanĝi al gid de sudo-redaktantoj" + +#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:516 +#: plugins/sudoers/set_perms.c:753 plugins/sudoers/set_perms.c:893 +msgid "too many processes" +msgstr "tro da procezoj" + +#: plugins/sudoers/set_perms.c:955 +msgid "unable to set runas group vector" +msgstr "ne eblas elekti vektoron de plenumigkiela grupo" + +#: plugins/sudoers/sudo_nss.c:238 +#, c-format +msgid "Matching Defaults entries for %s on this host:\n" +msgstr "Kongruantaj eroj de Defaults: %s en ĉi tiu gastiganto:\n" + +#: plugins/sudoers/sudo_nss.c:251 +#, c-format +msgid "Runas and Command-specific defaults for %s:\n" +msgstr "Plenumigkiela komando-specifaj aÅ­tomataĵoj por %s:\n" + +#: plugins/sudoers/sudo_nss.c:264 +#, c-format +msgid "User %s may run the following commands on this host:\n" +msgstr "Uzanto %s rajtas plenumigi la jenajn komandojn en ĉi tiu gastiganto:\n" + +#: plugins/sudoers/sudo_nss.c:274 +#, c-format +msgid "User %s is not allowed to run sudo on %s.\n" +msgstr "Uzanto %s ne rajton plenumigi sudo-on en %s.\n" + +#: plugins/sudoers/sudoers.c:199 plugins/sudoers/sudoers.c:234 +#: plugins/sudoers/sudoers.c:911 +msgid "problem with defaults entries" +msgstr "problemoj kun aÅ­tomataj eroj" + +#: plugins/sudoers/sudoers.c:203 +#, c-format +msgid "no valid sudoers sources found, quitting" +msgstr "ne validaj fontotekstoj de sudoers trovita, ĉesiganta" + +#: plugins/sudoers/sudoers.c:257 +#, c-format +msgid "unable to execute %s: %s" +msgstr "ne eblas plenumigi %s-on: %s" + +#: plugins/sudoers/sudoers.c:306 +#, c-format +msgid "sudoers specifies that root is not allowed to sudo" +msgstr "sudoers specifas, ke ĉefradiko ne rajtas sudo-i" + +#: plugins/sudoers/sudoers.c:313 +#, c-format +msgid "you are not permitted to use the -C option" +msgstr "vi ne rajtas uzi la parametron -C" + +#: plugins/sudoers/sudoers.c:403 +#, c-format +msgid "timestamp owner (%s): No such user" +msgstr "tempo-indikila estro (%s): Nenia uzanto" + +#: plugins/sudoers/sudoers.c:419 +msgid "no tty" +msgstr "neniu tty" + +#: plugins/sudoers/sudoers.c:420 +#, c-format +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:463 +msgid "No user or host" +msgstr "Neniu uzanto aÅ­ gastiganto" + +#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:499 plugins/sudoers/sudoers.c:1465 +#: plugins/sudoers/sudoers.c:1466 +#, c-format +msgid "%s: command not found" +msgstr "%s: komando ne trovita" + +#: plugins/sudoers/sudoers.c:479 plugins/sudoers/sudoers.c:495 +#, c-format +msgid "" +"ignoring `%s' found in '.'\n" +"Use `sudo ./%s' if this is the `%s' you wish to run." +msgstr "" +"Ignoranta '%s'-on trovita en '.'\n" +"Uzu 'sudo ./%s'-on se tio estas la '%s', kiun vi volas plenumigi." + +#: plugins/sudoers/sudoers.c:484 +msgid "validation failure" +msgstr "validiga malsukceso" + +#: plugins/sudoers/sudoers.c:494 +msgid "command in current directory" +msgstr "komando en nuna dosierujo" + +#: plugins/sudoers/sudoers.c:506 +#, c-format +msgid "sorry, you are not allowed to preserve the environment" +msgstr "bedaÅ­re vi ne rajtas konservi la medion" + +#: plugins/sudoers/sudoers.c:894 +#, c-format +msgid "internal error, set_cmnd() overflow" +msgstr "ena eraro, set_cmnd() superfluo" + +#: plugins/sudoers/sudoers.c:936 +#, c-format +msgid "fixed mode on %s" +msgstr "fiksita reĝimo en %s" + +#: plugins/sudoers/sudoers.c:940 +#, c-format +msgid "set group on %s" +msgstr "elekti grupon en %s" + +#: plugins/sudoers/sudoers.c:943 +#, c-format +msgid "unable to set group on %s" +msgstr "ne eblas elekti grupon en %s" + +#: plugins/sudoers/sudoers.c:946 +#, c-format +msgid "unable to fix mode on %s" +msgstr "ne eblas fiksi reĝimon en %s" + +#: plugins/sudoers/sudoers.c:959 +#, c-format +msgid "%s is not a regular file" +msgstr "%s ne estas regula dosiero" + +#: plugins/sudoers/sudoers.c:961 +#, c-format +msgid "%s is mode 0%o, should be 0%o" +msgstr "%s estas reĝimo 0%o, devas esti 0%o" + +#: plugins/sudoers/sudoers.c:965 +#, 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:968 +#, 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:1012 +#, c-format +msgid "only root can use `-c %s'" +msgstr "nur ĉefuzanto rajtas uzi '-c %s'" + +#: plugins/sudoers/sudoers.c:1022 +#, c-format +msgid "unknown login class: %s" +msgstr "nekonata ensaluta klaso: %s" + +#: plugins/sudoers/sudoers.c:1056 +#, c-format +msgid "unable to resolve host %s" +msgstr "ne eblas solvi gastiganton %s" + +#: plugins/sudoers/sudoers.c:1106 plugins/sudoers/testsudoers.c:351 +#, c-format +msgid "unknown group: %s" +msgstr "nekonata grupo: %s" + +#: plugins/sudoers/sudoers.c:1150 +#, c-format +msgid "Sudoers policy plugin version %s\n" +msgstr "Eldono %s de la konduta kromprogramo\n" + +#: plugins/sudoers/sudoers.c:1152 +#, c-format +msgid "Sudoers file grammar version %d\n" +msgstr "Eldono %d de la gramatikilo de sudoers\n" + +#: plugins/sudoers/sudoers.c:1156 +#, c-format +msgid "" +"\n" +"Sudoers path: %s\n" +msgstr "" +"\n" +"Pado de sudoers: %s\n" + +#: plugins/sudoers/sudoers.c:1159 +#, c-format +msgid "nsswitch path: %s\n" +msgstr "pado de nsswitch: %s\n" + +#: plugins/sudoers/sudoers.c:1161 +#, c-format +msgid "ldap.conf path: %s\n" +msgstr "pado de ldap.conf: %s\n" + +#: plugins/sudoers/sudoers.c:1162 +#, c-format +msgid "ldap.secret path: %s\n" +msgstr "pado de ldap.secret: %s\n" + +#: plugins/sudoers/sudoreplay.c:265 +#, c-format +msgid "invalid filter option: %s" +msgstr "nevalida filtrila elekto: %s" + +#: plugins/sudoers/sudoreplay.c:278 +#, c-format +msgid "invalid max wait: %s" +msgstr "nevalida maksimuma atendo: %s" + +#: plugins/sudoers/sudoreplay.c:284 +#, c-format +msgid "invalid speed factor: %s" +msgstr "nevalida rapida faktoro: %s" + +#: plugins/sudoers/sudoreplay.c:287 plugins/sudoers/visudo.c:174 +#, c-format +msgid "%s version %s\n" +msgstr "%s eldono %s\n" + +#: plugins/sudoers/sudoreplay.c:310 +#, c-format +msgid "%s/%.2s/%.2s/%.2s/timing: %s" +msgstr "%s/%.2s/%.2s/%.2s tempo-registrado: %s" + +#: plugins/sudoers/sudoreplay.c:316 +#, c-format +msgid "%s/%s/timing: %s" +msgstr "%s/%s/tempo-registrado: %s" + +#: plugins/sudoers/sudoreplay.c:341 +#, c-format +msgid "invalid log file %s" +msgstr "nevalida protokolo %s" + +#: plugins/sudoers/sudoreplay.c:343 +#, c-format +msgid "Replaying sudo session: %s" +msgstr "Refaranta sudo-seancon: %s" + +#: plugins/sudoers/sudoreplay.c:369 +#, c-format +msgid "unable to set tty to raw mode" +msgstr "ne eblas elekti tty-on en nudan reĝimon" + +#: plugins/sudoers/sudoreplay.c:383 +#, c-format +msgid "invalid timing file line: %s" +msgstr "nevalida linio en la tempo-registran dosieron: %s" + +#: plugins/sudoers/sudoreplay.c:425 +#, c-format +msgid "writing to standard output" +msgstr "skribanta al eligo" + +#: plugins/sudoers/sudoreplay.c:455 +#, c-format +msgid "nanosleep: tv_sec %ld, tv_nsec %ld" +msgstr "nanosleep: tv_sec %ld, tv_nsec %ld" + +#: plugins/sudoers/sudoreplay.c:503 plugins/sudoers/sudoreplay.c:528 +#, c-format +msgid "ambiguous expression \"%s\"" +msgstr "ambigua esprimo \"%s\"" + +#: plugins/sudoers/sudoreplay.c:545 +#, c-format +msgid "too many parenthesized expressions, max %d" +msgstr "tro da esprimoj en krampoj, maksimumo: %d" + +#: plugins/sudoers/sudoreplay.c:556 +#, c-format +msgid "unmatched ')' in expression" +msgstr "esprimo kun ')' sen samnivela '('" + +#: plugins/sudoers/sudoreplay.c:562 +#, c-format +msgid "unknown search term \"%s\"" +msgstr "nekonata serĉaĵo \"%s\"" + +#: plugins/sudoers/sudoreplay.c:576 +#, c-format +msgid "%s requires an argument" +msgstr "%s bezonas parametron" + +#: plugins/sudoers/sudoreplay.c:580 +#, c-format +msgid "invalid regular expression: %s" +msgstr "nevalida regulesprimo: %s" + +#: plugins/sudoers/sudoreplay.c:586 +#, c-format +msgid "could not parse date \"%s\"" +msgstr "ne eblis analizi daton \"%s\"" + +#: plugins/sudoers/sudoreplay.c:599 +#, c-format +msgid "unmatched '(' in expression" +msgstr "esprimo kun '(' sen samnivela ')'" + +#: plugins/sudoers/sudoreplay.c:601 +#, c-format +msgid "illegal trailing \"or\"" +msgstr "nevalida posta \"or\"" + +#: plugins/sudoers/sudoreplay.c:603 +#, c-format +msgid "illegal trailing \"!\"" +msgstr "nevalida posta \"!\"" + +#: plugins/sudoers/sudoreplay.c:819 +#, c-format +msgid "invalid regex: %s" +msgstr "nevalida regulesprimo: %s" + +#: plugins/sudoers/sudoreplay.c:941 +#, c-format +msgid "usage: %s [-h] [-d directory] [-m max_wait] [-s speed_factor] ID\n" +msgstr "uzado: %s [-h] [-d dosierujo] [-m maksimuma_atendo] [-s rapida_faktoro] identigilo\n" + +#: plugins/sudoers/sudoreplay.c:944 +#, c-format +msgid "usage: %s [-h] [-d directory] -l [search expression]\n" +msgstr "uzado: %s [-h] [-d dosierujo] -l [serĉaĵo]\n" + +#: plugins/sudoers/sudoreplay.c:953 +#, c-format +msgid "" +"%s - replay sudo session logs\n" +"\n" +msgstr "" +"%s - refari sudo-seancajn protokolojn\n" +"\n" + +#: plugins/sudoers/sudoreplay.c:955 +msgid "" +"\n" +"Options:\n" +" -d directory specify directory for session logs\n" +" -f filter specify which I/O type to display\n" +" -h display help message and exit\n" +" -l [expression] list available session IDs that match expression\n" +" -m max_wait max number of seconds to wait between events\n" +" -s speed_factor speed up or slow down output\n" +" -V display version information and exit" +msgstr "" +"\n" +"Parametroj:\n" +" -d dosierujo specifi dosierujon por seancaj protokoloj\n" +" -f filtrilo specifi kiajn eneligajn tipojn por montri\n" +" -h montri helpan mesaĝon kaj eliri -l [esprimo] listigi haveblajn seancajn identigilojn, kiuj kongruas kun esprimo\n" +" -m [atendo] maksimuma nombro da sekundoj por atendi inter okazoj\n" +" -s [rapido] rapidigi aÅ­ malrapidigi eligon\n" +" -V eligi eldonan informon kaj eliri" + +#: plugins/sudoers/testsudoers.c:230 +#, c-format +msgid "internal error, init_vars() overflow" +msgstr "ena eraro, init_vars() suprfluo" + +#: plugins/sudoers/testsudoers.c:309 +msgid "\thost unmatched" +msgstr "\thost sen egalo" + +#: plugins/sudoers/testsudoers.c:312 +msgid "" +"\n" +"Command allowed" +msgstr "" +"\n" +"Komando permesata" + +#: plugins/sudoers/testsudoers.c:313 +msgid "" +"\n" +"Command denied" +msgstr "" +"\n" +"Komando rifuzata" + +#: plugins/sudoers/testsudoers.c:313 +msgid "" +"\n" +"Command unmatched" +msgstr "" +"\n" +"Komando sen egalo" + +#: toke.l:667 toke.l:793 toke.l:818 toke.l:904 plugins/sudoers/toke_util.c:111 +#: plugins/sudoers/toke_util.c:163 plugins/sudoers/toke_util.c:202 +msgid "unable to allocate memory" +msgstr "ne eblas generi memoron" + +#: toke.l:786 +msgid "too many levels of includes" +msgstr "tro da niveloj de inluzivaĵoj" + +#: plugins/sudoers/toke_util.c:213 +msgid "fill_args: buffer overflow" +msgstr "fill_args: bufra superfluo" + +#: plugins/sudoers/visudo.c:175 +#, c-format +msgid "%s grammar version %d\n" +msgstr "%s gramatika eldono %d\n" + +#: plugins/sudoers/visudo.c:208 plugins/sudoers/auth/rfc1938.c:103 +#, c-format +msgid "you do not exist in the %s database" +msgstr "vi ne ekzistas en la datumbazo %s" + +#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:518 +#, c-format +msgid "press return to edit %s: " +msgstr "premu enen-klavon por redakti %s-on: " + +#: plugins/sudoers/visudo.c:320 plugins/sudoers/visudo.c:326 +#, c-format +msgid "write error" +msgstr "skriba eraro" + +#: plugins/sudoers/visudo.c:408 +#, c-format +msgid "unable to stat temporary file (%s), %s unchanged" +msgstr "ne eblas stat-i provizoron dosieron (%s), %s neŝanĝita" + +#: plugins/sudoers/visudo.c:413 +#, c-format +msgid "zero length temporary file (%s), %s unchanged" +msgstr "nul-longa provizora dosiero (%s), %s neŝanĝita" + +#: plugins/sudoers/visudo.c:419 +#, c-format +msgid "editor (%s) failed, %s unchanged" +msgstr "redaktilo (%s) malsukcesis, %s neŝanĝita" + +#: plugins/sudoers/visudo.c:442 +#, c-format +msgid "%s unchanged" +msgstr "%s neŝanĝita" + +#: plugins/sudoers/visudo.c:466 +#, 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:476 +#, c-format +msgid "unabled to parse temporary file (%s), unknown error" +msgstr "ne eblas analizi provizoran dosieron (%s), nekonata eraro" + +#: plugins/sudoers/visudo.c:511 +#, c-format +msgid "internal error, unable to find %s in list!" +msgstr "ena eraro, ne eblas trovi '%s'-on en listo!" + +#: plugins/sudoers/visudo.c:546 plugins/sudoers/visudo.c:555 +#, 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:550 plugins/sudoers/visudo.c:560 +#, c-format +msgid "unable to change mode of %s to 0%o" +msgstr "ne eblas ŝanĝi reĝimon de %s al 0%o" + +#: plugins/sudoers/visudo.c:577 +#, 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:591 +#, c-format +msgid "command failed: '%s %s %s', %s unchanged" +msgstr "komando malsukcesis: '%s %s %s', %s neŝanĝita" + +#: plugins/sudoers/visudo.c:601 +#, c-format +msgid "error renaming %s, %s unchanged" +msgstr "eraro alinomanta %s-on, %s neŝanĝita" + +#: plugins/sudoers/visudo.c:661 +msgid "What now? " +msgstr "Kion nun? " + +#: plugins/sudoers/visudo.c:675 +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 "" +"Elektoj estas:\n" +" r(e)dakti refoje sudoers-dosieron\n" +" 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:712 +#, c-format +msgid "unable to execute %s" +msgstr "ne eblas plenumigi: %s" + +#: plugins/sudoers/visudo.c:719 +#, c-format +msgid "unable to run %s" +msgstr "ne eblas plenumigi: %s" + +#: plugins/sudoers/visudo.c:750 +#, c-format +msgid "failed to parse %s file, unknown error" +msgstr "malsukcesis analizi dosieron %s, nekonata eraro" + +#: plugins/sudoers/visudo.c:762 +#, c-format +msgid "parse error in %s near line %d\n" +msgstr "analiza eraro en %s proksime al linio %d\n" + +#: plugins/sudoers/visudo.c:765 +#, c-format +msgid "parse error in %s\n" +msgstr "analiza eraro en %s\n" + +#: plugins/sudoers/visudo.c:767 +#, c-format +msgid "%s: parsed OK\n" +msgstr "%s: analizita senerare\n" + +#: plugins/sudoers/visudo.c:776 +#, 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:783 +#, 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:822 +#, c-format +msgid "%s busy, try again later" +msgstr "%s okupata, reprovu pli malfrue" + +#: plugins/sudoers/visudo.c:865 +#, c-format +msgid "specified editor (%s) doesn't exist" +msgstr "specifita tekstoredaktilo (%s) ne ekzistas" + +#: plugins/sudoers/visudo.c:888 +#, c-format +msgid "unable to stat editor (%s)" +msgstr "ne eblas stat-i tekstoredaktilon (%s)" + +#: plugins/sudoers/visudo.c:936 +#, c-format +msgid "no editor found (editor path = %s)" +msgstr "neniu tekstoredaktilo trovita (pado = %s)" + +#: plugins/sudoers/visudo.c:1025 +#, c-format +msgid "Error: cycle in %s_Alias `%s'" +msgstr "Eraro: ciklo en %s_Alias '%s'" + +#: plugins/sudoers/visudo.c:1026 +#, c-format +msgid "Warning: cycle in %s_Alias `%s'" +msgstr "Averto: ciklo en %s_Alias '%s'" + +#: plugins/sudoers/visudo.c:1029 +#, c-format +msgid "Error: %s_Alias `%s' referenced but not defined" +msgstr "Eraro: %s_Alias '%s' referinta sed ne difinita" + +#: plugins/sudoers/visudo.c:1030 +#, c-format +msgid "Warning: %s_Alias `%s' referenced but not defined" +msgstr "Averto: %s_Alias '%s' referinta sed ne difinita" + +#: plugins/sudoers/visudo.c:1167 +#, c-format +msgid "%s: unused %s_Alias %s" +msgstr "%s neuzata %s_Alias %s" + +#: plugins/sudoers/visudo.c:1224 +#, c-format +msgid "" +"%s - safely edit the sudoers file\n" +"\n" +msgstr "" +"%s - sekure redakti la dosieron sudoers\n" +"\n" + +#: plugins/sudoers/visudo.c:1226 +msgid "" +"\n" +"Options:\n" +" -c check-only mode\n" +" -f sudoers specify sudoers file location\n" +" -h display help message and exit\n" +" -q less verbose (quiet) syntax error messages\n" +" -s strict syntax checking\n" +" -V display version information and exit" +msgstr "" +"\n" +"Parametroj:\n" +" -c nur kontroli\n" +" -f sudoers specifi lokon de la dosiero sudoers\n" +" -h montri helpan mesaĝon kaj eliri\n" +" -q silenta pri sintaksaj eraroj\n" +" -s malsevera kontrolado de sintakso\n" +" -V montri eldonon kaj eliri" + +#: plugins/sudoers/auth/bsdauth.c:64 +msgid "unable to begin bsd authentication" +msgstr "ne eblas komenci bsd-konstatado" + +#: plugins/sudoers/auth/bsdauth.c:71 +msgid "invalid authentication type" +msgstr "nevalida konstata tipo" + +#: plugins/sudoers/auth/bsdauth.c:79 +msgid "unable to setup authentication" +msgstr "ne eblas starigi konstatadon" + +#: plugins/sudoers/auth/fwtk.c:59 +#, c-format +msgid "unable to read fwtk config" +msgstr "ne eblas legi fwtk-agordon" + +#: plugins/sudoers/auth/fwtk.c:64 +#, c-format +msgid "unable to connect to authentication server" +msgstr "ne eblas konekti al konstatanta servilo" + +#: plugins/sudoers/auth/fwtk.c:70 plugins/sudoers/auth/fwtk.c:93 +#: plugins/sudoers/auth/fwtk.c:126 +#, c-format +msgid "lost connection to authentication server" +msgstr "konekto al konstatanta servilo perdita" + +#: plugins/sudoers/auth/fwtk.c:74 +#, c-format +msgid "" +"authentication server error:\n" +"%s" +msgstr "" +"eraro de konstatanta servilo:\n" +"%s" + +#: plugins/sudoers/auth/kerb5.c:114 +#, c-format +msgid "%s: unable to parse '%s': %s" +msgstr "%s: ne eblas analizi: '%s': %s" + +#: plugins/sudoers/auth/kerb5.c:127 +#, c-format +msgid "%s: unable to unparse princ ('%s'): %s" +msgstr "%s ne eblas analizi princ-on ('%s'): %s" + +#: plugins/sudoers/auth/kerb5.c:144 +#, c-format +msgid "%s: unable to resolve ccache: %s" +msgstr "%s: ne eblas trovi ccache-on: %s" + +#: plugins/sudoers/auth/kerb5.c:188 +#, c-format +msgid "%s: unable to allocate options: %s" +msgstr "%s: ne eblas generi elektojn: %s" + +#: plugins/sudoers/auth/kerb5.c:204 +#, c-format +msgid "%s: unable to get credentials: %s" +msgstr "%s: ne eblas akiri atestilojn: %s" + +#: plugins/sudoers/auth/kerb5.c:217 +#, c-format +msgid "%s: unable to initialize ccache: %s" +msgstr "%s: ne eblas iniciati ccache-on: %s" + +#: plugins/sudoers/auth/kerb5.c:221 +#, c-format +msgid "%s: unable to store cred in ccache: %s" +msgstr "%s: ne eblas konservi atestilon en ccache: %s" + +#: plugins/sudoers/auth/kerb5.c:284 +#, c-format +msgid "%s: unable to get host principal: %s" +msgstr "%s: ne eblas atingi ĉefgastiganto: %s" + +#: plugins/sudoers/auth/kerb5.c:299 +#, c-format +msgid "%s: Cannot verify TGT! Possible attack!: %s" +msgstr "%s: Ne eblas konstati TGT-on! Ebla atako!: %s" + +#: plugins/sudoers/auth/pam.c:99 +msgid "unable to initialize PAM" +msgstr "ne eblas iniciati PAM-on" + +#: plugins/sudoers/auth/pam.c:142 +msgid "account validation failure, is your account locked?" +msgstr "malsukceso ĉe konta validigo, ĉu via konto estas ŝlosita?" + +#: plugins/sudoers/auth/pam.c:146 +msgid "Account or password is expired, reset your password and try again" +msgstr "Konto aÅ­ pasvorto eksvalidiĝis, restarigu vian pasvorton kaj reprovu" + +#: plugins/sudoers/auth/pam.c:153 +#, c-format +msgid "pam_chauthtok: %s" +msgstr "pam_chauthtok: %s" + +#: plugins/sudoers/auth/pam.c:157 +msgid "Password expired, contact your system administrator" +msgstr "Pasvorto eksvalidiĝis, kontaktu vian sistemestron" + +#: plugins/sudoers/auth/pam.c:161 +msgid "Account expired or PAM config lacks an \"account\" section for sudo, contact your system administrator" +msgstr "Konto eksvalidiĝis aÅ­ PAM-agordon malhavas sekcion \"account\" por sudo, kontaktu vian sistemestron" + +#: plugins/sudoers/auth/pam.c:176 +#, c-format +msgid "pam_authenticate: %s" +msgstr "pam_authenticate: %s" + +#: plugins/sudoers/auth/pam.c:296 +msgid "Password: " +msgstr "Pasvorto: " + +#: plugins/sudoers/auth/pam.c:297 +msgid "Password:" +msgstr "Pasvorto:" + +#: plugins/sudoers/auth/securid.c:82 plugins/sudoers/auth/securid5.c:106 +#, c-format +msgid "unable to contact the SecurID server" +msgstr "ne eblas kontakti la servilon de SecurID" + +#: plugins/sudoers/auth/securid5.c:81 +#, c-format +msgid "failed to initialise the ACE API library" +msgstr "malsukcesis iniciati la bibliotekon de la API ACE" + +#: plugins/sudoers/auth/securid5.c:115 +#, c-format +msgid "User ID locked for SecurID Authentication" +msgstr "Uzanto identigilo ŝlosita pro konstatado en SecurID" + +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:169 +#, c-format +msgid "invalid username length for SecurID" +msgstr "nevalida salutnoma longo por SecurID" + +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:174 +#, c-format +msgid "invalid Authentication Handle for SecurID" +msgstr "nevalida konstatilo por SecurID" + +#: plugins/sudoers/auth/securid5.c:127 +#, c-format +msgid "SecurID communication failed" +msgstr "Komunikiĝo kun SecurID malsukcesis" + +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:213 +#, c-format +msgid "unknown SecurID error" +msgstr "nekonata SecurID-eraro" + +#: plugins/sudoers/auth/securid5.c:164 +#, c-format +msgid "invalid passcode length for SecurID" +msgstr "nevalida paskoda longo por SecurID" + +#: plugins/sudoers/auth/sia.c:106 +msgid "unable to initialize SIA session" +msgstr "ne eblas iniciati SIA-seascon" + +#: plugins/sudoers/auth/sudo_auth.c:124 +msgid "There are no authentication methods compiled into sudo! If you want to turn off authentication, use the --disable-authentication configure option." +msgstr "Ekzistas neniaj konstatantaj metodoj muntitaj en sudo! Se vi volas malŝalti konstatadon, uzu la munta parametro --disable-authentication." + +#: plugins/sudoers/auth/sudo_auth.c:134 +msgid "Invalid authentication methods compiled into sudo! You may mix standalone and non-standalone authentication." +msgstr "Nevalidaj konstatantaj metodoj muntitaj en sudo! Vi rajtas miksi dependan kaj sendependan konstatadon." + +#: plugins/sudoers/auth/sudo_auth.c:243 +#, c-format +msgid "%d incorrect password attempt" +msgid_plural "%d incorrect password attempts" +msgstr[0] "%d malĝusta pasvorta provo" +msgstr[1] "%d malĝustaj pasvortaj provoj" + +#: plugins/sudoers/auth/sudo_auth.c:335 +msgid "Authentication methods:" +msgstr "Konstatantaj metodoj:" diff --git a/plugins/sudoers/po/fi.mo b/plugins/sudoers/po/fi.mo index 5033c19..c4840e9 100644 Binary files a/plugins/sudoers/po/fi.mo and b/plugins/sudoers/po/fi.mo differ diff --git a/plugins/sudoers/po/fi.po b/plugins/sudoers/po/fi.po index c4f36f1..6815ff5 100644 --- a/plugins/sudoers/po/fi.po +++ b/plugins/sudoers/po/fi.po @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.8.2-rc9\n" +"Project-Id-Version: sudoers 1.8.3rc1\n" "Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" -"POT-Creation-Date: 2011-08-05 13:34-0400\n" -"PO-Revision-Date: 2011-08-08 14:25+0200\n" +"POT-Creation-Date: 2011-09-16 16:52-0400\n" +"PO-Revision-Date: 2011-09-18 15:17+0200\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" "Language: fi\n" @@ -72,9 +72,9 @@ msgstr "kohteen %s suorittamiseen vaaditaan salasana" # Avaamisen kohde voi olla timestamp file, sudoers file tai pathbuf #: plugins/sudoers/check.c:225 plugins/sudoers/iolog.c:169 -#: plugins/sudoers/sudoers.c:970 plugins/sudoers/sudoreplay.c:325 +#: plugins/sudoers/sudoers.c:971 plugins/sudoers/sudoreplay.c:325 #: plugins/sudoers/sudoreplay.c:334 plugins/sudoers/sudoreplay.c:675 -#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:700 +#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:744 #, c-format msgid "unable to open %s" msgstr "ei kyetä avaamaan kohdetta %s" @@ -120,8 +120,8 @@ msgid "%s writable by non-owner (0%o), should be mode 0700" msgstr "%s on kirjoitettava ei-omistajalle (0%o), pitäisi olla tila 0700" #: plugins/sudoers/check.c:470 plugins/sudoers/check.c:514 -#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:956 -#: plugins/sudoers/visudo.c:284 plugins/sudoers/visudo.c:500 +#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:957 +#: plugins/sudoers/visudo.c:304 plugins/sudoers/visudo.c:544 #, c-format msgid "unable to stat %s" msgstr "ei kyetä kutsumaan funktiota stat %s" @@ -156,10 +156,10 @@ msgstr "ei kyetä nollaamaan %s ajaksi" msgid "unknown uid: %u" msgstr "tuntematon uid-käyttäjätunniste: %u" -#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:747 -#: plugins/sudoers/sudoers.c:813 plugins/sudoers/sudoers.c:814 -#: plugins/sudoers/sudoers.c:1087 plugins/sudoers/testsudoers.c:200 -#: plugins/sudoers/testsudoers.c:330 +#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:748 +#: plugins/sudoers/sudoers.c:814 plugins/sudoers/sudoers.c:815 +#: plugins/sudoers/sudoers.c:1088 plugins/sudoers/testsudoers.c:202 +#: plugins/sudoers/testsudoers.c:337 #, c-format msgid "unknown user: %s" msgstr "tuntematon käyttäjä: %s" @@ -520,55 +520,37 @@ msgstr "Lisää rivi utmp-/utmpx-tiedostoon, kun varataan pty" msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "Aseta käyttäjäksi utmp-tiedostoon suorittava käyttäjä, ei kutsuva käyttäjä" -#: plugins/sudoers/defaults.c:197 -msgid "" -"Available options in a sudoers ``Defaults'' line:\n" -"\n" -msgstr "" -"Käytettävissä olevat valitsimet sudoers ’’Defaults’’ -rivillä:\n" -"\n" - -#: plugins/sudoers/defaults.c:204 plugins/sudoers/defaults.c:215 -#, c-format -msgid "%s: %s\n" -msgstr "%s: %s\n" - -#: plugins/sudoers/defaults.c:211 -#, c-format -msgid "%s: %.*s\n" -msgstr "%s: %.*s\n" - -#: plugins/sudoers/defaults.c:241 +#: plugins/sudoers/defaults.c:205 #, c-format msgid "unknown defaults entry `%s'" msgstr "tuntematon oletusrivi ”%s”" -#: plugins/sudoers/defaults.c:249 plugins/sudoers/defaults.c:259 -#: plugins/sudoers/defaults.c:279 plugins/sudoers/defaults.c:292 -#: plugins/sudoers/defaults.c:305 plugins/sudoers/defaults.c:318 -#: plugins/sudoers/defaults.c:331 plugins/sudoers/defaults.c:351 -#: plugins/sudoers/defaults.c:361 +#: plugins/sudoers/defaults.c:213 plugins/sudoers/defaults.c:223 +#: plugins/sudoers/defaults.c:243 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 #, c-format msgid "value `%s' is invalid for option `%s'" msgstr "arvo ”%s” on virheellinen valitsimelle ”%s”" # parametrinä on variable -#: plugins/sudoers/defaults.c:252 plugins/sudoers/defaults.c:262 -#: plugins/sudoers/defaults.c:270 plugins/sudoers/defaults.c:287 -#: plugins/sudoers/defaults.c:300 plugins/sudoers/defaults.c:313 -#: plugins/sudoers/defaults.c:326 plugins/sudoers/defaults.c:346 -#: plugins/sudoers/defaults.c:357 +#: plugins/sudoers/defaults.c:216 plugins/sudoers/defaults.c:226 +#: plugins/sudoers/defaults.c:234 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 #, c-format msgid "no value specified for `%s'" msgstr "arvoa ei ole määritelty muuttujalle ”%s”" # Parametri on muuttuja -#: plugins/sudoers/defaults.c:275 +#: plugins/sudoers/defaults.c:239 #, c-format msgid "values for `%s' must start with a '/'" msgstr "muuttujan ”%s” arvojen on alettava merkillä ’/’" -#: plugins/sudoers/defaults.c:337 +#: plugins/sudoers/defaults.c:301 #, c-format msgid "option `%s' does not take a value" msgstr "valitsin ”%s” ei ota arvoa" @@ -590,7 +572,7 @@ msgstr "seuraavia ympäristömuuttujia ei ole lupa asettaa: %s" #: plugins/sudoers/find_path.c:68 plugins/sudoers/find_path.c:107 #: plugins/sudoers/find_path.c:122 plugins/sudoers/iolog.c:124 -#: plugins/sudoers/sudoers.c:899 toke.l:663 toke.l:814 +#: plugins/sudoers/sudoers.c:903 toke.l:663 toke.l:814 #, c-format msgid "%s: %s" msgstr "%s: %s" @@ -636,7 +618,7 @@ msgid "Local IP address and netmask pairs:\n" msgstr "Paikallinen ip-osoite ja verkkopeiteparit:\n" # Parametrinä on sudoers-tiedosto tai pathbuf -#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:977 +#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:978 #, c-format msgid "unable to read %s" msgstr "ei kyetä lukemaan kohdetta %s" @@ -656,73 +638,73 @@ msgstr "virheellinen sarjanumero %s" msgid "unable to create %s" msgstr "ei kyetä luomaan hakemistopolkua %s" -#: plugins/sudoers/iolog_path.c:245 plugins/sudoers/sudoers.c:356 +#: plugins/sudoers/iolog_path.c:247 plugins/sudoers/sudoers.c:357 #, c-format msgid "unable to set locale to \"%s\", using \"C\"" msgstr "ei kyetä asettamaan locale-asetukseksi ”%s”, käytetään ”C”" -#: plugins/sudoers/ldap.c:363 +#: plugins/sudoers/ldap.c:368 #, c-format msgid "sudo_ldap_conf_add_ports: port too large" msgstr "sudo_ldap_conf_add_ports: portti on liian suuri" -#: plugins/sudoers/ldap.c:386 +#: plugins/sudoers/ldap.c:391 #, c-format msgid "sudo_ldap_conf_add_ports: out of space expanding hostbuf" msgstr "sudo_ldap_conf_add_ports: hostbuf-puskuritila loppui" # URL on verkko-osoite, loogisesti URI on verkkoresurssi(osoite) -#: plugins/sudoers/ldap.c:415 +#: plugins/sudoers/ldap.c:420 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "tukematon LDAP-verkkoresurssin tunnustyyppi: %s" -#: plugins/sudoers/ldap.c:444 +#: plugins/sudoers/ldap.c:449 #, c-format msgid "invalid uri: %s" msgstr "virheellinen verkkoresurssin tunnus: %s" -#: plugins/sudoers/ldap.c:450 +#: plugins/sudoers/ldap.c:455 #, c-format msgid "unable to mix ldap and ldaps URIs" msgstr "ei kyetä sekottamaan ldap:n ja ldap-kohteiden verkkoresurssitunnuksia" -#: plugins/sudoers/ldap.c:454 +#: plugins/sudoers/ldap.c:459 #, c-format msgid "unable to mix ldaps and starttls" msgstr "ei kyetä sekoittamaan ldap- ja starttl-kohteita" -#: plugins/sudoers/ldap.c:473 +#: plugins/sudoers/ldap.c:478 #, c-format msgid "sudo_ldap_parse_uri: out of space building hostbuf" msgstr "sudo_ldap_parse_uri: hostbuf-puskuritila loppui" -#: plugins/sudoers/ldap.c:536 +#: plugins/sudoers/ldap.c:541 #, c-format msgid "unable to initialize SSL cert and key db: %s" msgstr "ei kyetä alustamaan SSL-varmenne- ja -avaintietokantaa: %s" -#: plugins/sudoers/ldap.c:932 +#: plugins/sudoers/ldap.c:937 #, c-format msgid "unable to get GMT time" msgstr "ei kyetä saamaan GMT-aikaa" -#: plugins/sudoers/ldap.c:938 +#: plugins/sudoers/ldap.c:943 #, c-format msgid "unable to format timestamp" msgstr "ei kyetä muotoilemaan aikaleimaa" -#: plugins/sudoers/ldap.c:946 +#: plugins/sudoers/ldap.c:951 #, c-format msgid "unable to build time filter" msgstr "ei kyetä rakentamaan aikasuodatinta" -#: plugins/sudoers/ldap.c:1047 +#: plugins/sudoers/ldap.c:1052 #, c-format msgid "sudo_ldap_build_pass1 allocation mismatch" msgstr "sudo_ldap_build_pass1-varaustäsmäämättömyys" -#: plugins/sudoers/ldap.c:1542 +#: plugins/sudoers/ldap.c:1562 #, c-format msgid "" "\n" @@ -731,7 +713,7 @@ msgstr "" "\n" "LDAP-rooli: %s\n" -#: plugins/sudoers/ldap.c:1544 +#: plugins/sudoers/ldap.c:1564 #, c-format msgid "" "\n" @@ -740,27 +722,27 @@ msgstr "" "\n" "LDAP-rooli: TUNTEMATON\n" -#: plugins/sudoers/ldap.c:1591 +#: plugins/sudoers/ldap.c:1611 #, c-format msgid " Order: %s\n" msgstr " Järjestys: %s\n" -#: plugins/sudoers/ldap.c:1599 +#: plugins/sudoers/ldap.c:1619 #, c-format msgid " Commands:\n" msgstr " Komennot:\n" -#: plugins/sudoers/ldap.c:1986 +#: plugins/sudoers/ldap.c:2006 #, c-format msgid "unable to initialize LDAP: %s" msgstr "ei kyetä alustamaan kohdetta LDAP: %s" -#: plugins/sudoers/ldap.c:2017 +#: plugins/sudoers/ldap.c:2037 #, c-format msgid "start_tls specified but LDAP libs do not support ldap_start_tls_s() or ldap_start_tls_s_np()" msgstr "start_tls määritelty mutta LDAP-kirjastot ei tue funktiota ldap_start_tls_s() tai funktiota ldap_start_tls_s_np()" -#: plugins/sudoers/ldap.c:2248 +#: plugins/sudoers/ldap.c:2268 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "virheellinen sudoOrder-attribuutti: %s" @@ -857,7 +839,7 @@ msgstr "sisäinen virhe: riittämättömästi tilaa lokiriville" msgid "parse error in %s near line %d" msgstr "jäsentämisvirhe tiedostossa %s lähellä riviä %d" -#: plugins/sudoers/parse.c:369 +#: plugins/sudoers/parse.c:371 #, c-format msgid "" "\n" @@ -866,17 +848,17 @@ msgstr "" "\n" "Sudoers-rivi:\n" -#: plugins/sudoers/parse.c:371 +#: plugins/sudoers/parse.c:373 #, c-format msgid " RunAsUsers: " msgstr " SuoritaKäyttäjänä: " -#: plugins/sudoers/parse.c:386 +#: plugins/sudoers/parse.c:388 #, c-format msgid " RunAsGroups: " msgstr " SuoritaRyhmänä: " -#: plugins/sudoers/parse.c:395 +#: plugins/sudoers/parse.c:397 #, c-format msgid "" " Commands:\n" @@ -919,38 +901,38 @@ msgstr "ei kyetä laittamaan välimuistiin gid %u -ryhmää, on jo siellä" msgid "unable to cache group %s, already exists" msgstr "ei kyetä laittamaan välimuistiin ryhmää %s, on jo siellä" -#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:355 -#: plugins/sudoers/set_perms.c:587 plugins/sudoers/set_perms.c:821 +#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:358 +#: plugins/sudoers/set_perms.c:590 plugins/sudoers/set_perms.c:824 msgid "perm stack overflow" msgstr "käyttöoikeuspinoylivuoto" -#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:595 plugins/sudoers/set_perms.c:829 +#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:366 +#: plugins/sudoers/set_perms.c:598 plugins/sudoers/set_perms.c:832 msgid "perm stack underflow" msgstr "käyttöoikeuspinovajaus" -#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:455 -#: plugins/sudoers/set_perms.c:692 +#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:458 +#: plugins/sudoers/set_perms.c:695 msgid "unable to change to runas gid" msgstr "ei kyetä vaihtamaan runas gid -tunnisteeksi" -#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:462 -#: plugins/sudoers/set_perms.c:699 +#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:465 +#: plugins/sudoers/set_perms.c:702 msgid "unable to change to runas uid" msgstr "ei kyetä vaihtamaan runas gid -tunnisteeksi" -#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:475 -#: plugins/sudoers/set_perms.c:712 +#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:478 +#: plugins/sudoers/set_perms.c:715 #, c-format msgid "unable to change to sudoers gid" msgstr "ei kyetä vaihtamaan sudoers gid-tunnisteeksi" -#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:513 -#: plugins/sudoers/set_perms.c:750 plugins/sudoers/set_perms.c:890 +#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:516 +#: plugins/sudoers/set_perms.c:753 plugins/sudoers/set_perms.c:893 msgid "too many processes" msgstr "liian monta prosessia" -#: plugins/sudoers/set_perms.c:952 +#: plugins/sudoers/set_perms.c:955 msgid "unable to set runas group vector" msgstr "ei kyetä asettaan runas-ryhmävektoria" @@ -974,57 +956,57 @@ msgstr "Käyttäjä %s voi suorittaa seuraavat komennot tällä tietokoneella:\n msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Käyttäjä %s ei saa suorittaa komentoa sudo tietokoneella %s.\n" -#: plugins/sudoers/sudoers.c:198 plugins/sudoers/sudoers.c:233 -#: plugins/sudoers/sudoers.c:907 +#: plugins/sudoers/sudoers.c:199 plugins/sudoers/sudoers.c:234 +#: plugins/sudoers/sudoers.c:911 msgid "problem with defaults entries" msgstr "oletusrivien pulma" -#: plugins/sudoers/sudoers.c:202 +#: plugins/sudoers/sudoers.c:203 #, c-format msgid "no valid sudoers sources found, quitting" msgstr "ei löytynyt kelvollisia sudoers-lähteitä, poistutaan" -#: plugins/sudoers/sudoers.c:256 +#: plugins/sudoers/sudoers.c:257 #, c-format msgid "unable to execute %s: %s" msgstr "ei kyetä suorittamaan komentoa %s: %s" -#: plugins/sudoers/sudoers.c:305 +#: plugins/sudoers/sudoers.c:306 #, c-format msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers määrittelee, että root ei saa suorittaa sudo-komentoa" -#: plugins/sudoers/sudoers.c:312 +#: plugins/sudoers/sudoers.c:313 #, c-format msgid "you are not permitted to use the -C option" msgstr "ei käyttöoikeuksia valitsimelle -C" -#: plugins/sudoers/sudoers.c:402 +#: plugins/sudoers/sudoers.c:403 #, c-format msgid "timestamp owner (%s): No such user" msgstr "aikaleimaomistaja (%s): Tuntematon käyttäjä" -#: plugins/sudoers/sudoers.c:418 +#: plugins/sudoers/sudoers.c:419 msgid "no tty" msgstr "ei tty:tä" -#: plugins/sudoers/sudoers.c:419 +#: plugins/sudoers/sudoers.c:420 #, c-format msgid "sorry, you must have a tty to run sudo" msgstr "sudo-komennon suorittamiseksi on oltava tty" -#: plugins/sudoers/sudoers.c:462 +#: plugins/sudoers/sudoers.c:463 msgid "No user or host" msgstr "Ei käyttäjä eikä tietokone" -#: plugins/sudoers/sudoers.c:476 plugins/sudoers/sudoers.c:497 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:1452 -#: plugins/sudoers/sudoers.c:1453 +#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:499 plugins/sudoers/sudoers.c:1465 +#: plugins/sudoers/sudoers.c:1466 #, c-format msgid "%s: command not found" msgstr "%s: komentoa ei löytynyt" -#: plugins/sudoers/sudoers.c:478 plugins/sudoers/sudoers.c:494 +#: plugins/sudoers/sudoers.c:479 plugins/sudoers/sudoers.c:495 #, c-format msgid "" "ignoring `%s' found in '.'\n" @@ -1033,98 +1015,98 @@ msgstr "" "ohitetaan komento ”%s”, joka löytyi kohteesta ’.’\n" "Käytä ”sudo ./%s”, jos tämä on ”%s”-komento, joka halutaan suorittaa." -#: plugins/sudoers/sudoers.c:483 +#: plugins/sudoers/sudoers.c:484 msgid "validation failure" msgstr "kelpuutushäiriö" -#: plugins/sudoers/sudoers.c:493 +#: plugins/sudoers/sudoers.c:494 msgid "command in current directory" msgstr "komento nykyisessä hakemistossa" -#: plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:506 #, c-format msgid "sorry, you are not allowed to preserve the environment" msgstr "ympäristöä ei ole lupa säilyttää" -#: plugins/sudoers/sudoers.c:890 +#: plugins/sudoers/sudoers.c:894 #, c-format msgid "internal error, set_cmnd() overflow" msgstr "sisäinen virhe, set_cmnd()-ylivuoto" # Parametri on sudoers file -#: plugins/sudoers/sudoers.c:935 +#: plugins/sudoers/sudoers.c:936 #, c-format msgid "fixed mode on %s" msgstr "korjattu tila tiedostossa %s" # Parametri on suoders file -#: plugins/sudoers/sudoers.c:939 +#: plugins/sudoers/sudoers.c:940 #, c-format msgid "set group on %s" msgstr "aseta ryhmä tiedostossa %s" # Parametri on sudoers file -#: plugins/sudoers/sudoers.c:942 +#: plugins/sudoers/sudoers.c:943 #, c-format msgid "unable to set group on %s" msgstr "ei kyetä asettamaan ryhmää tiedostossa %s" -#: plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:946 #, c-format msgid "unable to fix mode on %s" msgstr "ei kyetä korjaamaan tilaa tiedostossa %s" -#: plugins/sudoers/sudoers.c:958 +#: plugins/sudoers/sudoers.c:959 #, c-format msgid "%s is not a regular file" msgstr "%s ei ole tavallinen tiedosto" -#: plugins/sudoers/sudoers.c:960 +#: plugins/sudoers/sudoers.c:961 #, c-format msgid "%s is mode 0%o, should be 0%o" msgstr "%s on tila 0%o, pitäisi olla 0%o" -#: plugins/sudoers/sudoers.c:964 +#: plugins/sudoers/sudoers.c:965 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s on uid %u -käyttäjän omistama, pitäisi olla %u" -#: plugins/sudoers/sudoers.c:967 +#: plugins/sudoers/sudoers.c:968 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s on gid %u -ryhmän omistama, pitäisi olla %u" -#: plugins/sudoers/sudoers.c:1011 +#: plugins/sudoers/sudoers.c:1012 #, c-format msgid "only root can use `-c %s'" msgstr "vain root-käyttäjä voi käyttää valitsinta ”-c %s”" -#: plugins/sudoers/sudoers.c:1021 +#: plugins/sudoers/sudoers.c:1022 #, c-format msgid "unknown login class: %s" msgstr "tuntematon kirjautumisluokka: %s" -#: plugins/sudoers/sudoers.c:1055 +#: plugins/sudoers/sudoers.c:1056 #, c-format msgid "unable to resolve host %s" msgstr "ei kyetä ratkaisemaan tietokonetta %s" -#: plugins/sudoers/sudoers.c:1105 plugins/sudoers/testsudoers.c:342 +#: plugins/sudoers/sudoers.c:1106 plugins/sudoers/testsudoers.c:351 #, c-format msgid "unknown group: %s" msgstr "tuntematon ryhmä: %s" -#: plugins/sudoers/sudoers.c:1137 +#: plugins/sudoers/sudoers.c:1150 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Sudoers-menettelytapalisäosaversio %s\n" -#: plugins/sudoers/sudoers.c:1139 +#: plugins/sudoers/sudoers.c:1152 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Sudoers-tiedostokielioppiversio %d\n" -#: plugins/sudoers/sudoers.c:1143 +#: plugins/sudoers/sudoers.c:1156 #, c-format msgid "" "\n" @@ -1133,17 +1115,17 @@ msgstr "" "\n" "Sudoers-polku: %s\n" -#: plugins/sudoers/sudoers.c:1146 +#: plugins/sudoers/sudoers.c:1159 #, c-format msgid "nsswitch path: %s\n" msgstr "nsswitch-polku: %s\n" -#: plugins/sudoers/sudoers.c:1148 +#: plugins/sudoers/sudoers.c:1161 #, c-format msgid "ldap.conf path: %s\n" msgstr "ldap.conf-polku: %s\n" -#: plugins/sudoers/sudoers.c:1149 +#: plugins/sudoers/sudoers.c:1162 #, c-format msgid "ldap.secret path: %s\n" msgstr "ldap.secret-polku: %s\n" @@ -1304,16 +1286,16 @@ msgstr "" " -s nopeustekijä nopeuta tai hidasta tulostusta\n" " -V näytä versiotiedot ja poistu" -#: plugins/sudoers/testsudoers.c:228 +#: plugins/sudoers/testsudoers.c:230 #, c-format msgid "internal error, init_vars() overflow" msgstr "sisäinen virhe, init_vars()-ylivuoto" -#: plugins/sudoers/testsudoers.c:304 +#: plugins/sudoers/testsudoers.c:309 msgid "\thost unmatched" msgstr "\ttietokone täsmäämätön" -#: plugins/sudoers/testsudoers.c:307 +#: plugins/sudoers/testsudoers.c:312 msgid "" "\n" "Command allowed" @@ -1321,7 +1303,7 @@ msgstr "" "\n" "Komento sallittu" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command denied" @@ -1329,7 +1311,7 @@ msgstr "" "\n" "Komento kielletty" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command unmatched" @@ -1360,81 +1342,81 @@ msgstr "%s kielioppiversio %d\n" msgid "you do not exist in the %s database" msgstr "ei ole olemassa %s-tietokannassa" -#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:470 +#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:518 #, c-format msgid "press return to edit %s: " msgstr "muokkaa %s painamalla enter-painiketta: " -#: plugins/sudoers/visudo.c:300 plugins/sudoers/visudo.c:306 +#: plugins/sudoers/visudo.c:320 plugins/sudoers/visudo.c:326 #, c-format msgid "write error" msgstr "kirjoitusvirhe" -#: plugins/sudoers/visudo.c:360 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "ei kyetä kutsumaan stat-funktiota tilapäiselle tiedostolle (%s), %s ennallaan" -#: plugins/sudoers/visudo.c:365 +#: plugins/sudoers/visudo.c:413 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "nollapituinen tilapäinen tiedosto (%s), %s ennallaan" -#: plugins/sudoers/visudo.c:371 +#: plugins/sudoers/visudo.c:419 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "editori (%s) epäonnistui, %s ennallaan" -#: plugins/sudoers/visudo.c:394 +#: plugins/sudoers/visudo.c:442 #, c-format msgid "%s unchanged" msgstr "%s ennallaan" -#: plugins/sudoers/visudo.c:418 +#: plugins/sudoers/visudo.c:466 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "ei kyetä avaamaan uudelleen tilapäistä tiedostoa (%s), %s ennallaan." -#: plugins/sudoers/visudo.c:428 +#: plugins/sudoers/visudo.c:476 #, c-format msgid "unabled to parse temporary file (%s), unknown error" msgstr "ei kyetä jäsentämään tilapäistä tiedostoa (%s), tuntematon virhe" -#: plugins/sudoers/visudo.c:463 +#: plugins/sudoers/visudo.c:511 #, c-format msgid "internal error, unable to find %s in list!" msgstr "sisäinen virhe, ei kyetä löytämään %s luettelosta!" -#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:511 +#: plugins/sudoers/visudo.c:546 plugins/sudoers/visudo.c:555 #, c-format -msgid "unable to set (uid, gid) of %s to (%d, %d)" -msgstr "ei kyetä asettamaan kohdetta %s (uid, gid) arvoihin (%d, %d)" +msgid "unable to set (uid, gid) of %s to (%u, %u)" +msgstr "ei kyetä asettamaan kohdetta %s (uid, gid) arvoihin (%u, %u)" -#: plugins/sudoers/visudo.c:506 plugins/sudoers/visudo.c:516 +#: plugins/sudoers/visudo.c:550 plugins/sudoers/visudo.c:560 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "ei kyetä muuttamaan %s-tilaa arvoon 0%o" -#: plugins/sudoers/visudo.c:533 +#: plugins/sudoers/visudo.c:577 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s ja %s eivät ole samassa tiedostojärjestelmässä, käytetään komentoa mv uudelleennimeämiseen" -#: plugins/sudoers/visudo.c:547 +#: plugins/sudoers/visudo.c:591 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "komento epäonnistui: ’%s %s %s’, %s ennallaan" -#: plugins/sudoers/visudo.c:557 +#: plugins/sudoers/visudo.c:601 #, c-format msgid "error renaming %s, %s unchanged" msgstr "virhe nimettäessä %s uudelleen, %s ennallaan" -#: plugins/sudoers/visudo.c:617 +#: plugins/sudoers/visudo.c:661 msgid "What now? " msgstr "Mitä nyt?" -#: plugins/sudoers/visudo.c:631 +#: plugins/sudoers/visudo.c:675 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -1447,93 +1429,93 @@ msgstr "" " (Q) poistu ja tallenna muutokset sudoers-tiedostoon (VAARA!)\n" # Parametri on path, mutta saattaa sisältää suoritettavan ohjelman -#: plugins/sudoers/visudo.c:668 +#: plugins/sudoers/visudo.c:712 #, c-format msgid "unable to execute %s" msgstr "ei kyetä suorittamaan kohdetta %s" # Parametri on path, mutta saattaa sisältää suoritettavan ohjelman -#: plugins/sudoers/visudo.c:675 +#: plugins/sudoers/visudo.c:719 #, c-format msgid "unable to run %s" msgstr "ei kyetä suorittamaan kohdetta %s" -#: plugins/sudoers/visudo.c:706 +#: plugins/sudoers/visudo.c:750 #, c-format msgid "failed to parse %s file, unknown error" msgstr "tiedoston %s jäsentäminen epäonnistui, tuntematon virhe" -#: plugins/sudoers/visudo.c:718 +#: plugins/sudoers/visudo.c:762 #, c-format msgid "parse error in %s near line %d\n" msgstr "jäsentämisvirhe tiedostossa %s lähellä riviä %d\n" -#: plugins/sudoers/visudo.c:721 +#: plugins/sudoers/visudo.c:765 #, c-format msgid "parse error in %s\n" msgstr "jäsentämisvirhe tiedostossa %s\n" -#: plugins/sudoers/visudo.c:723 +#: plugins/sudoers/visudo.c:767 #, c-format msgid "%s: parsed OK\n" msgstr "%s: jäsentäminen valmis\n" -#: plugins/sudoers/visudo.c:737 +#: plugins/sudoers/visudo.c:776 #, c-format -msgid "%s: wrong owner (uid, gid) should be (%d, %d)\n" -msgstr "%s: väärä omistaja (uid, gid), pitäisi olla (%d, %d)\n" +msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" +msgstr "%s: väärä omistaja (uid, gid), pitäisi olla (%u, %u)\n" -#: plugins/sudoers/visudo.c:744 +#: plugins/sudoers/visudo.c:783 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: väärät käyttöoikeudet, pitäisi olla tila 0%o\n" -#: plugins/sudoers/visudo.c:783 +#: plugins/sudoers/visudo.c:822 #, c-format msgid "%s busy, try again later" msgstr "%s varattu, yritä myöhemmin uudelleen" -#: plugins/sudoers/visudo.c:826 +#: plugins/sudoers/visudo.c:865 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "määritelty editori (%s) ei ole olemassa" -#: plugins/sudoers/visudo.c:849 +#: plugins/sudoers/visudo.c:888 #, c-format msgid "unable to stat editor (%s)" msgstr "ei kyetä kutsumaan funktiota stat editori (%s)" -#: plugins/sudoers/visudo.c:897 +#: plugins/sudoers/visudo.c:936 #, c-format msgid "no editor found (editor path = %s)" msgstr "editoria ei löytynyt (editoripolku = %s)" -#: plugins/sudoers/visudo.c:986 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "Error: cycle in %s_Alias `%s'" msgstr "Virhe: jakso kohteessa %s_Alias ”%s”" -#: plugins/sudoers/visudo.c:987 +#: plugins/sudoers/visudo.c:1026 #, c-format msgid "Warning: cycle in %s_Alias `%s'" msgstr "Varoitus: jakso kohteessa %s_Alias ”%s”" -#: plugins/sudoers/visudo.c:990 +#: plugins/sudoers/visudo.c:1029 #, c-format msgid "Error: %s_Alias `%s' referenced but not defined" msgstr "Virhe: %s_Alias ”%s” uudelleenviitattu, mutta ei määritelty" -#: plugins/sudoers/visudo.c:991 +#: plugins/sudoers/visudo.c:1030 #, c-format msgid "Warning: %s_Alias `%s' referenced but not defined" msgstr "Varoitus: %s_Alias ”%s” uudelleenviitattu, mutta ei määritelty" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1167 #, c-format msgid "%s: unused %s_Alias %s" msgstr "%s: käyttämätön %s_Alias %s" -#: plugins/sudoers/visudo.c:1185 +#: plugins/sudoers/visudo.c:1224 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -1542,7 +1524,7 @@ msgstr "" "%s - muokkaa sudoers-tiedostoa turvallisesti\n" "\n" -#: plugins/sudoers/visudo.c:1187 +#: plugins/sudoers/visudo.c:1226 msgid "" "\n" "Options:\n" @@ -1747,6 +1729,19 @@ msgstr[1] "%d väärää salasanaa yritetty" msgid "Authentication methods:" msgstr "Todennusmenetelmät:" +#~ msgid "" +#~ "Available options in a sudoers ``Defaults'' line:\n" +#~ "\n" +#~ msgstr "" +#~ "Käytettävissä olevat valitsimet sudoers ’’Defaults’’ -rivillä:\n" +#~ "\n" + +#~ msgid "%s: %s\n" +#~ msgstr "%s: %s\n" + +#~ msgid "%s: %.*s\n" +#~ msgstr "%s: %.*s\n" + #~ msgid "unable to get runas group vector" #~ msgstr "ei kyetä hakemaan runas-ryhmävektoria" diff --git a/plugins/sudoers/po/ja.mo b/plugins/sudoers/po/ja.mo new file mode 100644 index 0000000..af993f3 Binary files /dev/null and b/plugins/sudoers/po/ja.mo differ diff --git a/plugins/sudoers/po/ja.po b/plugins/sudoers/po/ja.po new file mode 100644 index 0000000..40b7ef5 --- /dev/null +++ b/plugins/sudoers/po/ja.po @@ -0,0 +1,1713 @@ +# Japanese messages for sudoers +# This file is put in the public domain. +# Yasuaki Taniguchi , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: sudoers 1.8.3rc1\n" +"Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" +"POT-Creation-Date: 2011-09-16 16:52-0400\n" +"PO-Revision-Date: 2011-10-20 05:47+0900\n" +"Last-Translator: Yasuaki Taniguchi \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: plugins/sudoers/alias.c:122 +#, c-format +msgid "Alias `%s' already defined" +msgstr "別名 `%s' はすでに定義されています" + +#: plugins/sudoers/bsm_audit.c:58 plugins/sudoers/bsm_audit.c:61 +#: plugins/sudoers/bsm_audit.c:109 plugins/sudoers/bsm_audit.c:113 +#: plugins/sudoers/bsm_audit.c:163 plugins/sudoers/bsm_audit.c:167 +msgid "getaudit: failed" +msgstr "getaudit: 失敗しました" + +#: plugins/sudoers/bsm_audit.c:87 plugins/sudoers/bsm_audit.c:148 +msgid "Could not determine audit condition" +msgstr "監査条件を決定できませんでした" + +#: plugins/sudoers/bsm_audit.c:98 +msgid "getauid failed" +msgstr "getauid に失敗しました" + +#: plugins/sudoers/bsm_audit.c:100 plugins/sudoers/bsm_audit.c:157 +msgid "au_open: failed" +msgstr "au_open: 失敗しました" + +#: plugins/sudoers/bsm_audit.c:115 plugins/sudoers/bsm_audit.c:169 +msgid "au_to_subject: failed" +msgstr "au_to_subject: 失敗しました" + +#: plugins/sudoers/bsm_audit.c:119 plugins/sudoers/bsm_audit.c:173 +msgid "au_to_exec_args: failed" +msgstr "au_to_exec_args: 失敗しました" + +#: plugins/sudoers/bsm_audit.c:123 plugins/sudoers/bsm_audit.c:182 +msgid "au_to_return32: failed" +msgstr "au_to_return32: 失敗しました" + +#: plugins/sudoers/bsm_audit.c:126 plugins/sudoers/bsm_audit.c:185 +msgid "unable to commit audit record" +msgstr "監査レコードをコミットできません" + +#: plugins/sudoers/bsm_audit.c:155 +msgid "getauid: failed" +msgstr "getauid: 失敗しました" + +#: plugins/sudoers/bsm_audit.c:178 +msgid "au_to_text: failed" +msgstr "au_to_text: 失敗しました" + +#: plugins/sudoers/check.c:141 +#, c-format +msgid "sorry, a password is required to run %s" +msgstr "%s を実行するにはパスワードが必要です。すみません" + +#: plugins/sudoers/check.c:225 plugins/sudoers/iolog.c:169 +#: plugins/sudoers/sudoers.c:971 plugins/sudoers/sudoreplay.c:325 +#: plugins/sudoers/sudoreplay.c:334 plugins/sudoers/sudoreplay.c:675 +#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:744 +#, c-format +msgid "unable to open %s" +msgstr "%s を開けません" + +#: plugins/sudoers/check.c:229 plugins/sudoers/iolog.c:199 +#, c-format +msgid "unable to write to %s" +msgstr "%s へ書き込むことができません" + +#: plugins/sudoers/check.c:237 plugins/sudoers/check.c:475 +#: plugins/sudoers/check.c:525 plugins/sudoers/iolog.c:122 +#: plugins/sudoers/iolog.c:153 +#, c-format +msgid "unable to mkdir %s" +msgstr "ディレクトリ %s を作成できません" + +#: plugins/sudoers/check.c:370 +#, c-format +msgid "internal error, expand_prompt() overflow" +msgstr "内部エラー、expand_prompt() がオーバーフローしました" + +#: plugins/sudoers/check.c:426 +#, c-format +msgid "timestamp path too long: %s" +msgstr "タイムスタンプ用パスが長すぎます: %s" + +#: plugins/sudoers/check.c:454 plugins/sudoers/check.c:498 +#: plugins/sudoers/iolog.c:155 +#, c-format +msgid "%s exists but is not a directory (0%o)" +msgstr "%s が存在しますがディレクトリーではありません (0%o)" + +#: plugins/sudoers/check.c:457 plugins/sudoers/check.c:501 +#: plugins/sudoers/check.c:546 +#, c-format +msgid "%s owned by uid %u, should be uid %u" +msgstr "%s はユーザーID (uid) %u によって所有されています。これはユーザーID %u であるべきです" + +#: plugins/sudoers/check.c:462 plugins/sudoers/check.c:506 +#, c-format +msgid "%s writable by non-owner (0%o), should be mode 0700" +msgstr "%s は所有者以外でも書き込み可能 (0%o) です。アクセス権限のモードは 0700 であるべきです" + +#: plugins/sudoers/check.c:470 plugins/sudoers/check.c:514 +#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:957 +#: plugins/sudoers/visudo.c:304 plugins/sudoers/visudo.c:544 +#, c-format +msgid "unable to stat %s" +msgstr "%s の状態取得 (stat) ができません" + +#: plugins/sudoers/check.c:540 +#, c-format +msgid "%s exists but is not a regular file (0%o)" +msgstr "%s が存在しますが通常ファイル (0%o) ではありません" + +#: plugins/sudoers/check.c:552 +#, c-format +msgid "%s writable by non-owner (0%o), should be mode 0600" +msgstr "%s は所有者以外でも書き込み可能 (0%o) です。アクセス権限のモードは 0600 であるべきです" + +#: plugins/sudoers/check.c:606 +#, c-format +msgid "timestamp too far in the future: %20.20s" +msgstr "タイムスタンプが遠すぎる将来になっています: %20.20s" + +#: plugins/sudoers/check.c:652 +#, c-format +msgid "unable to remove %s (%s), will reset to the epoch" +msgstr "%s (%s) を削除できません。エポックにリセットします" + +#: plugins/sudoers/check.c:660 +#, c-format +msgid "unable to reset %s to the epoch" +msgstr "%s をエポックにリセットできません" + +#: plugins/sudoers/check.c:714 plugins/sudoers/check.c:720 +#, c-format +msgid "unknown uid: %u" +msgstr "不明なユーザーID (uid) です: %u" + +#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:748 +#: plugins/sudoers/sudoers.c:814 plugins/sudoers/sudoers.c:815 +#: plugins/sudoers/sudoers.c:1088 plugins/sudoers/testsudoers.c:202 +#: plugins/sudoers/testsudoers.c:337 +#, c-format +msgid "unknown user: %s" +msgstr "不明なユーザーです: %s" + +#: plugins/sudoers/def_data.c:27 +#, c-format +msgid "Syslog facility if syslog is being used for logging: %s" +msgstr "ログ記録時に syslog を使用する場合の syslog facility: %s" + +#: plugins/sudoers/def_data.c:31 +#, c-format +msgid "Syslog priority to use when user authenticates successfully: %s" +msgstr "ログ記録時に syslog を使用する場合の syslog priority: %s" + +#: plugins/sudoers/def_data.c:35 +#, c-format +msgid "Syslog priority to use when user authenticates unsuccessfully: %s" +msgstr "ユーザー認証に失敗したと時に使用される syslog priority: %s" + +#: plugins/sudoers/def_data.c:39 +msgid "Put OTP prompt on its own line" +msgstr "ワンタイムパスワード入力要求をそれのみの行に表示します" + +#: plugins/sudoers/def_data.c:43 +msgid "Ignore '.' in $PATH" +msgstr "$PATH 内にある '.' を無視します" + +#: plugins/sudoers/def_data.c:47 +msgid "Always send mail when sudo is run" +msgstr "sudo を実行した時に、常にメールを送信します" + +#: plugins/sudoers/def_data.c:51 +msgid "Send mail if user authentication fails" +msgstr "ユーザー認証に失敗した場合にメールを送信します" + +#: plugins/sudoers/def_data.c:55 +msgid "Send mail if the user is not in sudoers" +msgstr "ユーザー他 sudoers 内に存在しない場合にメールを送信します" + +#: plugins/sudoers/def_data.c:59 +msgid "Send mail if the user is not in sudoers for this host" +msgstr "ユーザーがこのホスト用の sudoers 内に存在しない場合にメールを送信します" + +#: plugins/sudoers/def_data.c:63 +msgid "Send mail if the user is not allowed to run a command" +msgstr "ユーザーが許可されていないコマンドを実行しようとした場合にメールを送信します" + +#: plugins/sudoers/def_data.c:67 +msgid "Use a separate timestamp for each user/tty combo" +msgstr "ユーザー/tty の組み合わせごとに分離したタイムスタンプを使用します" + +#: plugins/sudoers/def_data.c:71 +msgid "Lecture user the first time they run sudo" +msgstr "ユーザーが最初に sudo を実行した時に講義を行う" + +#: plugins/sudoers/def_data.c:75 +#, c-format +msgid "File containing the sudo lecture: %s" +msgstr "sudo の講義が含まれているファイル: %s" + +#: plugins/sudoers/def_data.c:79 +msgid "Require users to authenticate by default" +msgstr "デフォルトでユーザーが認証されていることを必要とします" + +#: plugins/sudoers/def_data.c:83 +msgid "Root may run sudo" +msgstr "root が sudo を実行するかもしれません" + +#: plugins/sudoers/def_data.c:87 +msgid "Log the hostname in the (non-syslog) log file" +msgstr " ログファイル (syslog 以外) に記録する時にホスト名を含めます" + +#: plugins/sudoers/def_data.c:91 +msgid "Log the year in the (non-syslog) log file" +msgstr "ログファイル (syslog 以外) に記録する時に年情報を含めます" + +#: plugins/sudoers/def_data.c:95 +msgid "If sudo is invoked with no arguments, start a shell" +msgstr "sudo を引数無しで起動した場合、シェルを開始します" + +#: plugins/sudoers/def_data.c:99 +msgid "Set $HOME to the target user when starting a shell with -s" +msgstr "シェルを -s で開始した時に $HOME を変更後のユーザーのホームディレクトリーに設定します" + +#: plugins/sudoers/def_data.c:103 +msgid "Always set $HOME to the target user's home directory" +msgstr "$HOME を常に変更後のユーザーのホームディレクトリーに設定します" + +#: plugins/sudoers/def_data.c:107 +msgid "Allow some information gathering to give useful error messages" +msgstr "役に立つエラーメッセージを表示するためにいくつかの情報を収集することを許可します" + +#: plugins/sudoers/def_data.c:111 +msgid "Require fully-qualified hostnames in the sudoers file" +msgstr "sudoers ファイルに完全修飾ホスト名 (FQDN) を要求します" + +#: plugins/sudoers/def_data.c:115 +msgid "Insult the user when they enter an incorrect password" +msgstr "間違ったパスワードを入力した時にユーザーを侮辱します" + +#: plugins/sudoers/def_data.c:119 +msgid "Only allow the user to run sudo if they have a tty" +msgstr "tty がある場合のみ sudo の実行を許可します" + +#: plugins/sudoers/def_data.c:123 +msgid "Visudo will honor the EDITOR environment variable" +msgstr "visudo が EDITOR 環境変数を尊重して使用します" + +#: plugins/sudoers/def_data.c:127 +msgid "Prompt for root's password, not the users's" +msgstr "ユーザーのパスワードではなく、root のパスワードの入力を要求します" + +#: plugins/sudoers/def_data.c:131 +msgid "Prompt for the runas_default user's password, not the users's" +msgstr "ユーザーのパスワードではなく、 runas_default ユーザーのパスワードの入力を要求します" + +#: plugins/sudoers/def_data.c:135 +msgid "Prompt for the target user's password, not the users's" +msgstr "現在のユーザーのパスワードではなく、変更先ユーザーのパスワードの入力を要求します" + +#: plugins/sudoers/def_data.c:139 +msgid "Apply defaults in the target user's login class if there is one" +msgstr "変更先ユーザーのログインクラスのデフォルトが存在する場合は、デフォルトを適用します" + +#: plugins/sudoers/def_data.c:143 +msgid "Set the LOGNAME and USER environment variables" +msgstr "LOGNAME および USER 環境変数を設定します" + +#: plugins/sudoers/def_data.c:147 +msgid "Only set the effective uid to the target user, not the real uid" +msgstr "実効ユーザーIDのみ変更先ユーザーの UID に設定し、実ユーザーIDは変更しない" + +#: plugins/sudoers/def_data.c:151 +msgid "Don't initialize the group vector to that of the target user" +msgstr "グループベクトルを変更先ユーザーの値で初期化しない" + +#: plugins/sudoers/def_data.c:155 +#, c-format +msgid "Length at which to wrap log file lines (0 for no wrap): %d" +msgstr "ログファイルの改行する長さ (0 の場合は改行しない): %d" + +#: plugins/sudoers/def_data.c:159 +#, c-format +msgid "Authentication timestamp timeout: %.1f minutes" +msgstr "認証タイムスタンプのタイムアウト値: %.1f 分" + +#: plugins/sudoers/def_data.c:163 +#, c-format +msgid "Password prompt timeout: %.1f minutes" +msgstr "パスワード入力要求のタイムアウト値: %.1f 分" + +#: plugins/sudoers/def_data.c:167 +#, c-format +msgid "Number of tries to enter a password: %d" +msgstr "パスワード入力の試行回数: %d" + +#: plugins/sudoers/def_data.c:171 +#, c-format +msgid "Umask to use or 0777 to use user's: 0%o" +msgstr "使用する umask 値 (0777 の場合はユーザーの設定値を使用します): 0%o" + +#: plugins/sudoers/def_data.c:175 +#, c-format +msgid "Path to log file: %s" +msgstr "ログファイルのパス: %s" + +#: plugins/sudoers/def_data.c:179 +#, c-format +msgid "Path to mail program: %s" +msgstr "メールプログラムのパス: %s" + +#: plugins/sudoers/def_data.c:183 +#, c-format +msgid "Flags for mail program: %s" +msgstr "メールプログラムの引数フラグ: %s" + +#: plugins/sudoers/def_data.c:187 +#, c-format +msgid "Address to send mail to: %s" +msgstr "メールの送信先アドレス: %s" + +#: plugins/sudoers/def_data.c:191 +#, c-format +msgid "Address to send mail from: %s" +msgstr "メールの送信元アドレス: %s" + +#: plugins/sudoers/def_data.c:195 +#, c-format +msgid "Subject line for mail messages: %s" +msgstr "メールの件名 (Subject) 行: %s" + +#: plugins/sudoers/def_data.c:199 +#, c-format +msgid "Incorrect password message: %s" +msgstr "パスワードを間違った時のメッセージ: %s" + +#: plugins/sudoers/def_data.c:203 +#, c-format +msgid "Path to authentication timestamp dir: %s" +msgstr "認証タイムスタンプディレクトリーのパス: %s" + +#: plugins/sudoers/def_data.c:207 +#, c-format +msgid "Owner of the authentication timestamp dir: %s" +msgstr "認証タイムスタンプディレクトリーの所有者: %s" + +#: plugins/sudoers/def_data.c:211 +#, c-format +msgid "Users in this group are exempt from password and PATH requirements: %s" +msgstr "パスワード入力と PATH の要求が免除されるグループに属するユーザー: %s" + +#: plugins/sudoers/def_data.c:215 +#, c-format +msgid "Default password prompt: %s" +msgstr "パスワード入力要求時に表示される文字列: %s" + +#: plugins/sudoers/def_data.c:219 +msgid "If set, passprompt will override system prompt in all cases." +msgstr "設定した場合、すべての場合において passprompt がシステムの入力要求表示を上書きします" + +#: plugins/sudoers/def_data.c:223 +#, c-format +msgid "Default user to run commands as: %s" +msgstr "コマンドを実行するデフォルトの変更先ユーザー: %s" + +#: plugins/sudoers/def_data.c:227 +#, c-format +msgid "Value to override user's $PATH with: %s" +msgstr "ユーザーの $PATH を上書きする時の値: %s" + +#: plugins/sudoers/def_data.c:231 +#, c-format +msgid "Path to the editor for use by visudo: %s" +msgstr "visudo で使用されるエディターのパス: %s" + +#: plugins/sudoers/def_data.c:235 +#, c-format +msgid "When to require a password for 'list' pseudocommand: %s" +msgstr "'list' 疑似コマンド使用するためにパスワードを要求される時: %s" + +#: plugins/sudoers/def_data.c:239 +#, c-format +msgid "When to require a password for 'verify' pseudocommand: %s" +msgstr "'verify' 疑似コマンドを使用するためにパスワードを要求される時: %s" + +#: plugins/sudoers/def_data.c:243 +msgid "Preload the dummy exec functions contained in 'noexec_file'" +msgstr "'noexec_file' にある偽の exec 関数群を事前ロードします" + +#: plugins/sudoers/def_data.c:247 +#, c-format +msgid "File containing dummy exec functions: %s" +msgstr "偽の exec 関数が含まれるファイル: %s" + +# do はたぶん強調の do +#: plugins/sudoers/def_data.c:251 +msgid "If LDAP directory is up, do we ignore local sudoers file" +msgstr "LDAP ディレクトリーが実行中の場合、ローカルの sudoers ファイルを無視します" + +#: plugins/sudoers/def_data.c:255 +#, c-format +msgid "File descriptors >= %d will be closed before executing a command" +msgstr "%d 以上の値をもつファイル記述子をコマンド実行前に閉じます" + +#: plugins/sudoers/def_data.c:259 +msgid "If set, users may override the value of `closefrom' with the -C option" +msgstr "設定した場合、ユーザーが `closefrom' の値を -C オプションで上書きするかもしれません" + +#: plugins/sudoers/def_data.c:263 +msgid "Allow users to set arbitrary environment variables" +msgstr "ユーザーが任意の環境変数を設定することを許可します" + +#: plugins/sudoers/def_data.c:267 +msgid "Reset the environment to a default set of variables" +msgstr "環境変数の集合をデフォルトに設定します" + +#: plugins/sudoers/def_data.c:271 +msgid "Environment variables to check for sanity:" +msgstr "正当性の確認を行う環境変数:" + +#: plugins/sudoers/def_data.c:275 +msgid "Environment variables to remove:" +msgstr "削除する環境変数:" + +#: plugins/sudoers/def_data.c:279 +msgid "Environment variables to preserve:" +msgstr "保護する環境変数:" + +#: plugins/sudoers/def_data.c:283 +#, c-format +msgid "SELinux role to use in the new security context: %s" +msgstr "新しいセキュリティコンテキスト内で使用する SELinux の役割: %s" + +#: plugins/sudoers/def_data.c:287 +#, c-format +msgid "SELinux type to use in the new security context: %s" +msgstr "新しいセキュリティコンテキスト内で使用する SELinux のタイプ: %s" + +#: plugins/sudoers/def_data.c:291 +#, c-format +msgid "Path to the sudo-specific environment file: %s" +msgstr "sudo 固有の環境ファイルのパス: %s" + +#: plugins/sudoers/def_data.c:295 +#, c-format +msgid "Locale to use while parsing sudoers: %s" +msgstr "sudoers を構文解析する時に使用するロケール: %s" + +#: plugins/sudoers/def_data.c:299 +msgid "Allow sudo to prompt for a password even if it would be visisble" +msgstr "パスワードが表示される状態であっても sudo がパスワード入力を要求することを許可します" + +#: plugins/sudoers/def_data.c:303 +msgid "Provide visual feedback at the password prompt when there is user input" +msgstr "パスワード入力要求でユーザーの入力があった時に、視覚的なフィードバックを提供します" + +#: plugins/sudoers/def_data.c:307 +msgid "Use faster globbing that is less accurate but does not access the filesystem" +msgstr "ファイルシステムにアクセスしないがより正確では無い、素早い一致確認処理を行います" + +#: plugins/sudoers/def_data.c:311 +msgid "The umask specified in sudoers will override the user's, even if it is more permissive" +msgstr "sudoers で指定した umask 値でユーザーの umask 値を上書きします (ユーザーの umask 値より緩い場合でも)" + +#: plugins/sudoers/def_data.c:315 +msgid "Log user's input for the command being run" +msgstr "コマンドを実行した時のユーザー入力をログに記録します" + +#: plugins/sudoers/def_data.c:319 +msgid "Log the output of the command being run" +msgstr "コマンドを実行した時の出力をログに記録します" + +#: plugins/sudoers/def_data.c:323 +msgid "Compress I/O logs using zlib" +msgstr "I/O ログを zlib を使用して圧縮します" + +#: plugins/sudoers/def_data.c:327 +msgid "Always run commands in a pseudo-tty" +msgstr "常に疑似 tty 内でコマンドを実行します" + +#: plugins/sudoers/def_data.c:331 +msgid "Plugin for non-Unix group support" +msgstr "UNIX 以外のグループをサポートするためのプラグインです" + +#: plugins/sudoers/def_data.c:335 +msgid "Directory in which to store input/output logs" +msgstr "入出力 (I/O) ログを保存するディレクトリーです" + +#: plugins/sudoers/def_data.c:339 +msgid "File in which to store the input/output log" +msgstr "入出力 (I/O) ログを保存するファイルです" + +#: plugins/sudoers/def_data.c:343 +msgid "Add an entry to the utmp/utmpx file when allocating a pty" +msgstr "pty を割り当てた時に utmp/utmpx ファイルに記録を加えます" + +#: plugins/sudoers/def_data.c:347 +msgid "Set the user in utmp to the runas user, not the invoking user" +msgstr "utmp に記録するユーザーを、実行したユーザーではなく、変更後のユーザーにします" + +#: plugins/sudoers/defaults.c:205 +#, c-format +msgid "unknown defaults entry `%s'" +msgstr "不明なデフォルト項目 `%s' です" + +#: plugins/sudoers/defaults.c:213 plugins/sudoers/defaults.c:223 +#: plugins/sudoers/defaults.c:243 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 +#, c-format +msgid "value `%s' is invalid for option `%s'" +msgstr "オプション `%2$s' の値 `%1$s' は無効です" + +#: plugins/sudoers/defaults.c:216 plugins/sudoers/defaults.c:226 +#: plugins/sudoers/defaults.c:234 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 +#, c-format +msgid "no value specified for `%s'" +msgstr "`%s' に値が指定されていません" + +#: plugins/sudoers/defaults.c:239 +#, c-format +msgid "values for `%s' must start with a '/'" +msgstr "`%s' の値は '/' で開始しなければいけません" + +#: plugins/sudoers/defaults.c:301 +#, c-format +msgid "option `%s' does not take a value" +msgstr "オプション `%s' は値をとりません" + +#: plugins/sudoers/env.c:259 +#, c-format +msgid "internal error, sudo_setenv() overflow" +msgstr "内部エラー、 sudo_setenv() がオーバーフローしました" + +#: plugins/sudoers/env.c:289 +#, c-format +msgid "sudo_putenv: corrupted envp, length mismatch" +msgstr "sudo_putenv: envp が破損しています。長さが合いません" + +#: plugins/sudoers/env.c:698 +#, c-format +msgid "sorry, you are not allowed to set the following environment variables: %s" +msgstr "すみませんが、あなたは次の環境変数を設定することを許可されていません: %s" + +#: plugins/sudoers/find_path.c:68 plugins/sudoers/find_path.c:107 +#: plugins/sudoers/find_path.c:122 plugins/sudoers/iolog.c:124 +#: plugins/sudoers/sudoers.c:903 toke.l:663 toke.l:814 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: gram.y:103 +#, c-format +msgid ">>> %s: %s near line %d <<<" +msgstr ">>> %s: %s (%d行付近) <<<" + +#: plugins/sudoers/group_plugin.c:90 +#, c-format +msgid "%s%s: %s" +msgstr "%s%s: %s" + +#: plugins/sudoers/group_plugin.c:102 +#, c-format +msgid "%s must be owned by uid %d" +msgstr "%s の所有者は uid %d でなければいけません" + +#: plugins/sudoers/group_plugin.c:106 +#, c-format +msgid "%s must only be writable by owner" +msgstr "%s は所有者のみ書き込み可能でなければいけません" + +#: plugins/sudoers/group_plugin.c:113 +#, c-format +msgid "unable to dlopen %s: %s" +msgstr "dlopen %s を行うことができません: %s" + +#: plugins/sudoers/group_plugin.c:118 +#, c-format +msgid "unable to find symbol \"group_plugin\" in %s" +msgstr "%s 内にシンボル \"group_plugin\" がありません" + +#: plugins/sudoers/group_plugin.c:123 +#, c-format +msgid "%s: incompatible group plugin major version %d, expected %d" +msgstr "%s: 互換性のないグループプラグインメジャーバージョン %d です。予期されるのは %d です" + +#: plugins/sudoers/interfaces.c:109 +msgid "Local IP address and netmask pairs:\n" +msgstr "ローカル IP アドレスとネットマスクの組:\n" + +#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:978 +#, c-format +msgid "unable to read %s" +msgstr "%s を読み込めません" + +#: plugins/sudoers/iolog.c:179 +#, c-format +msgid "invalid sequence number %s" +msgstr "無効な順序番号です: %s" + +#: plugins/sudoers/iolog.c:225 plugins/sudoers/iolog.c:228 +#: plugins/sudoers/iolog.c:478 plugins/sudoers/iolog.c:483 +#: plugins/sudoers/iolog.c:489 plugins/sudoers/iolog.c:497 +#: plugins/sudoers/iolog.c:505 plugins/sudoers/iolog.c:513 +#: plugins/sudoers/iolog.c:521 +#, c-format +msgid "unable to create %s" +msgstr "%s を作成できません" + +#: plugins/sudoers/iolog_path.c:247 plugins/sudoers/sudoers.c:357 +#, c-format +msgid "unable to set locale to \"%s\", using \"C\"" +msgstr "ロケールを \"%s\" に設定できません。 \"C\" を使用します" + +#: plugins/sudoers/ldap.c:368 +#, c-format +msgid "sudo_ldap_conf_add_ports: port too large" +msgstr "sudo_ldap_conf_add_ports: ポートが大きすぎます" + +#: plugins/sudoers/ldap.c:391 +#, c-format +msgid "sudo_ldap_conf_add_ports: out of space expanding hostbuf" +msgstr "sudo_ldap_conf_add_ports: hostbuf を拡張中にメモリ空間が不足しました" + +#: plugins/sudoers/ldap.c:420 +#, c-format +msgid "unsupported LDAP uri type: %s" +msgstr "サポートされてない LDAP URI タイプです: %s" + +#: plugins/sudoers/ldap.c:449 +#, c-format +msgid "invalid uri: %s" +msgstr "無効な URI です: %s" + +#: plugins/sudoers/ldap.c:455 +#, c-format +msgid "unable to mix ldap and ldaps URIs" +msgstr "ldap と ldaps の URI を混ぜて使用できません" + +#: plugins/sudoers/ldap.c:459 +#, c-format +msgid "unable to mix ldaps and starttls" +msgstr "ldaps と starttls を混ぜて使用できません" + +#: plugins/sudoers/ldap.c:478 +#, c-format +msgid "sudo_ldap_parse_uri: out of space building hostbuf" +msgstr "sudo_ldap_parse_uri: hostbuf を構築中にメモリ空間が不足しました" + +#: plugins/sudoers/ldap.c:541 +#, c-format +msgid "unable to initialize SSL cert and key db: %s" +msgstr "SSL 証明書と鍵データベースを初期化できません: %s" + +#: plugins/sudoers/ldap.c:937 +#, c-format +msgid "unable to get GMT time" +msgstr "GMT 時刻を取得できません" + +#: plugins/sudoers/ldap.c:943 +#, c-format +msgid "unable to format timestamp" +msgstr "タイムスタンプを書式整形できません" + +#: plugins/sudoers/ldap.c:951 +#, c-format +msgid "unable to build time filter" +msgstr "時刻フィルターを構築できません" + +#: plugins/sudoers/ldap.c:1052 +#, c-format +msgid "sudo_ldap_build_pass1 allocation mismatch" +msgstr "sudo_ldap_build_pass1 配置が一致しません" + +#: plugins/sudoers/ldap.c:1562 +#, c-format +msgid "" +"\n" +"LDAP Role: %s\n" +msgstr "" +"\n" +"LDAP 役割: %s\n" + +#: plugins/sudoers/ldap.c:1564 +#, c-format +msgid "" +"\n" +"LDAP Role: UNKNOWN\n" +msgstr "" +"\n" +"LDAP 役割: 不明\n" + +#: plugins/sudoers/ldap.c:1611 +#, c-format +msgid " Order: %s\n" +msgstr " Order: %s\n" + +#: plugins/sudoers/ldap.c:1619 +#, c-format +msgid " Commands:\n" +msgstr " コマンド:\n" + +#: plugins/sudoers/ldap.c:2006 +#, c-format +msgid "unable to initialize LDAP: %s" +msgstr "LDAP を初期化できません: %s" + +#: plugins/sudoers/ldap.c:2037 +#, c-format +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:2268 +#, c-format +msgid "invalid sudoOrder attribute: %s" +msgstr "無効な sudoOrder 属性です: %s" + +#: plugins/sudoers/linux_audit.c:55 +#, c-format +msgid "unable to open audit system" +msgstr "監査システムを開くことができません" + +#: plugins/sudoers/linux_audit.c:79 +#, c-format +msgid "internal error, linux_audit_command() overflow" +msgstr "内部エラー、linux_audit_command() がオーバーフローしました" + +#: plugins/sudoers/linux_audit.c:88 +#, c-format +msgid "unable to send audit message" +msgstr "監査メッセージを送ることができません" + +#: plugins/sudoers/logging.c:192 +#, c-format +msgid "unable to open log file: %s: %s" +msgstr "ログファイルを開けません: %s: %s" + +#: plugins/sudoers/logging.c:195 +#, c-format +msgid "unable to lock log file: %s: %s" +msgstr "ログファイルをロックできません: %s: %s" + +#: plugins/sudoers/logging.c:249 +msgid "user NOT in sudoers" +msgstr "ユーザーが sudoers 内にありません" + +#: plugins/sudoers/logging.c:251 +msgid "user NOT authorized on host" +msgstr "ホスト上でユーザーが認証されていません" + +#: plugins/sudoers/logging.c:253 +msgid "command not allowed" +msgstr "コマンドが許可されていません" + +#: plugins/sudoers/logging.c:263 +#, c-format +msgid "%s is not in the sudoers file. This incident will be reported.\n" +msgstr "%s は sudoers ファイルではありません。この事象は記録・報告されます。\n" + +#: plugins/sudoers/logging.c:266 +#, c-format +msgid "%s is not allowed to run sudo on %s. This incident will be reported.\n" +msgstr "%s は %s 上で sudo を実行することを許可されていません。この事象は記録・報告されます。\n" + +#: plugins/sudoers/logging.c:270 +#, c-format +msgid "Sorry, user %s may not run sudo on %s.\n" +msgstr "ユーザー %s は %s 上で sudo を実行できません。すみません。\n" + +#: plugins/sudoers/logging.c:273 +#, c-format +msgid "Sorry, user %s is not allowed to execute '%s%s%s' as %s%s%s on %s.\n" +msgstr "ユーザー %s は'%s%s%s' を %s%s%s として %s 上で実行することは許可されていません。すみません。\n" + +#: plugins/sudoers/logging.c:408 +#, c-format +msgid "unable to fork" +msgstr "fork できません" + +#: plugins/sudoers/logging.c:415 plugins/sudoers/logging.c:472 +#, c-format +msgid "unable to fork: %m" +msgstr "fork できません: %m" + +#: plugins/sudoers/logging.c:465 +#, c-format +msgid "unable to open pipe: %m" +msgstr "パイプを開けません: %m" + +#: plugins/sudoers/logging.c:484 +#, c-format +msgid "unable to dup stdin: %m" +msgstr "標準入力を複製できません: %m" + +#: plugins/sudoers/logging.c:518 +#, c-format +msgid "unable to execute %s: %m" +msgstr "%s を実行できません: %m" + +#: plugins/sudoers/logging.c:728 +#, c-format +msgid "internal error: insufficient space for log line" +msgstr "内部エラー: ログの行に十分な空間がありません" + +#: plugins/sudoers/parse.c:115 +#, c-format +msgid "parse error in %s near line %d" +msgstr "%s 内 %d 行付近で構文解析エラーが発生しました" + +#: plugins/sudoers/parse.c:371 +#, c-format +msgid "" +"\n" +"Sudoers entry:\n" +msgstr "" +"\n" +"sudoers 項目:\n" + +#: plugins/sudoers/parse.c:373 +#, c-format +msgid " RunAsUsers: " +msgstr " RunAsUsers: " + +#: plugins/sudoers/parse.c:388 +#, c-format +msgid " RunAsGroups: " +msgstr " RunAsGroups: " + +#: plugins/sudoers/parse.c:397 +#, c-format +msgid "" +" Commands:\n" +"\t" +msgstr "" +" コマンド:\n" +"\t" + +#: plugins/sudoers/plugin_error.c:100 plugins/sudoers/plugin_error.c:105 +msgid ": " +msgstr ": " + +#: plugins/sudoers/pwutil.c:251 +#, c-format +msgid "unable to cache uid %u (%s), already exists" +msgstr "ユーザーID %u (%s) をキャッシュできません。すでに存在します" + +#: plugins/sudoers/pwutil.c:259 +#, c-format +msgid "unable to cache uid %u, already exists" +msgstr "ユーザーID %u をキャッシュできません。すでに存在します" + +#: plugins/sudoers/pwutil.c:295 plugins/sudoers/pwutil.c:304 +#, c-format +msgid "unable to cache user %s, already exists" +msgstr "ユーザー %s をキャッシュできません。すでに存在します" + +#: plugins/sudoers/pwutil.c:607 +#, c-format +msgid "unable to cache gid %u (%s), already exists" +msgstr "グループID %u (%s) をキャッシュできません。すでに存在します" + +#: plugins/sudoers/pwutil.c:615 +#, c-format +msgid "unable to cache gid %u, already exists" +msgstr "グループID %u をキャッシュできません。すでに存在します" + +#: plugins/sudoers/pwutil.c:644 plugins/sudoers/pwutil.c:653 +#, c-format +msgid "unable to cache group %s, already exists" +msgstr "グループ %s をキャッシュできません。すでに存在します" + +#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:358 +#: plugins/sudoers/set_perms.c:590 plugins/sudoers/set_perms.c:824 +msgid "perm stack overflow" +msgstr "perm スタックがオーバーフローしました" + +#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:366 +#: plugins/sudoers/set_perms.c:598 plugins/sudoers/set_perms.c:832 +msgid "perm stack underflow" +msgstr "perm スタックがアンダーフローしました" + +#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:458 +#: plugins/sudoers/set_perms.c:695 +msgid "unable to change to runas gid" +msgstr "実行するためのグループIDに変更できません" + +#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:465 +#: plugins/sudoers/set_perms.c:702 +msgid "unable to change to runas uid" +msgstr "実行するためのユーザーIDに変更できません" + +#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:478 +#: plugins/sudoers/set_perms.c:715 +#, c-format +msgid "unable to change to sudoers gid" +msgstr "sudoers のグループIDへ変更できません" + +#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:516 +#: plugins/sudoers/set_perms.c:753 plugins/sudoers/set_perms.c:893 +msgid "too many processes" +msgstr "プロセスが多すぎます" + +#: plugins/sudoers/set_perms.c:955 +msgid "unable to set runas group vector" +msgstr "グループベクトルを実行するためのものに変更できません" + +#: plugins/sudoers/sudo_nss.c:238 +#, c-format +msgid "Matching Defaults entries for %s on this host:\n" +msgstr "このホスト上でユーザー %s に一致したデフォルト項目:\n" + +#: plugins/sudoers/sudo_nss.c:251 +#, c-format +msgid "Runas and Command-specific defaults for %s:\n" +msgstr "ユーザー %s 用の Runas およびコマンド特有のデフォルト:\n" + +#: plugins/sudoers/sudo_nss.c:264 +#, c-format +msgid "User %s may run the following commands on this host:\n" +msgstr "ユーザー %s は次のコマンドをこのホスト上で実行できます:\n" + +#: plugins/sudoers/sudo_nss.c:274 +#, c-format +msgid "User %s is not allowed to run sudo on %s.\n" +msgstr "ユーザー %s は %s 上で sudo を実行することを許可されていません。\n" + +#: plugins/sudoers/sudoers.c:199 plugins/sudoers/sudoers.c:234 +#: plugins/sudoers/sudoers.c:911 +msgid "problem with defaults entries" +msgstr "デフォルト項目で問題が発生しました" + +#: plugins/sudoers/sudoers.c:203 +#, c-format +msgid "no valid sudoers sources found, quitting" +msgstr "有効な sudoers のソースが見つかりません。終了します" + +#: plugins/sudoers/sudoers.c:257 +#, c-format +msgid "unable to execute %s: %s" +msgstr "%s を実行できません: %s" + +#: plugins/sudoers/sudoers.c:306 +#, c-format +msgid "sudoers specifies that root is not allowed to sudo" +msgstr "sudoers の指定により root が sudo を使用することは禁止されています" + +#: plugins/sudoers/sudoers.c:313 +#, c-format +msgid "you are not permitted to use the -C option" +msgstr "-C オプションを使用することは許可されていません" + +#: plugins/sudoers/sudoers.c:403 +#, c-format +msgid "timestamp owner (%s): No such user" +msgstr "タイムスタンプの所有者 (%s): そのようなユーザーはありません" + +#: plugins/sudoers/sudoers.c:419 +msgid "no tty" +msgstr "tty がありません" + +#: plugins/sudoers/sudoers.c:420 +#, c-format +msgid "sorry, you must have a tty to run sudo" +msgstr "sudo を実行するには tty がなければいけません。すみません" + +#: plugins/sudoers/sudoers.c:463 +msgid "No user or host" +msgstr "ユーザーまたはホストがありません" + +#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:499 plugins/sudoers/sudoers.c:1465 +#: plugins/sudoers/sudoers.c:1466 +#, c-format +msgid "%s: command not found" +msgstr "%s: コマンドが見つかりません" + +#: plugins/sudoers/sudoers.c:479 plugins/sudoers/sudoers.c:495 +#, c-format +msgid "" +"ignoring `%s' found in '.'\n" +"Use `sudo ./%s' if this is the `%s' you wish to run." +msgstr "" +"'.' 内で見つかった `%1$s' を無視します\n" +"この `%3$s' を実行したい場合は `sudo ./%2$s' を使用してください。" + +#: plugins/sudoers/sudoers.c:484 +msgid "validation failure" +msgstr "検証に失敗しました" + +#: plugins/sudoers/sudoers.c:494 +msgid "command in current directory" +msgstr "コマンドがカレントディレクトリーにあります" + +#: plugins/sudoers/sudoers.c:506 +#, c-format +msgid "sorry, you are not allowed to preserve the environment" +msgstr "あなたは環境変数を保護することを許可されていません。すみません" + +#: plugins/sudoers/sudoers.c:894 +#, c-format +msgid "internal error, set_cmnd() overflow" +msgstr "内部エラー、set_cmnd() がオーバーフローしました" + +#: plugins/sudoers/sudoers.c:936 +#, c-format +msgid "fixed mode on %s" +msgstr "%s のアクセス権限のモードを修正しました" + +#: plugins/sudoers/sudoers.c:940 +#, c-format +msgid "set group on %s" +msgstr "%s のグループを設定しました" + +#: plugins/sudoers/sudoers.c:943 +#, c-format +msgid "unable to set group on %s" +msgstr "%s のグループを設定できません" + +#: plugins/sudoers/sudoers.c:946 +#, c-format +msgid "unable to fix mode on %s" +msgstr "%s のアクセス権限のモードを修正できません" + +#: plugins/sudoers/sudoers.c:959 +#, c-format +msgid "%s is not a regular file" +msgstr "%s は通常ファイルではありません" + +#: plugins/sudoers/sudoers.c:961 +#, c-format +msgid "%s is mode 0%o, should be 0%o" +msgstr "%s のアクセス権限のモードは 0%o です。これは 0%o であるべきです" + +#: plugins/sudoers/sudoers.c:965 +#, c-format +msgid "%s is owned by uid %u, should be %u" +msgstr "%s はユーザーID %u によって所有されています。これは %u であるべきです" + +#: plugins/sudoers/sudoers.c:968 +#, c-format +msgid "%s is owned by gid %u, should be %u" +msgstr "%s のグループIDは %u になっています。これは %u であるべきです" + +#: plugins/sudoers/sudoers.c:1012 +#, c-format +msgid "only root can use `-c %s'" +msgstr "root のみ `-c %s' を使用できます" + +#: plugins/sudoers/sudoers.c:1022 +#, c-format +msgid "unknown login class: %s" +msgstr "不明なログインクラスです: %s" + +#: plugins/sudoers/sudoers.c:1056 +#, c-format +msgid "unable to resolve host %s" +msgstr "ホスト %s の名前解決ができません" + +#: plugins/sudoers/sudoers.c:1106 plugins/sudoers/testsudoers.c:351 +#, c-format +msgid "unknown group: %s" +msgstr "不明なグループです: %s" + +#: plugins/sudoers/sudoers.c:1150 +#, c-format +msgid "Sudoers policy plugin version %s\n" +msgstr "sudoers ポリシープラグイン バージョン %s\n" + +#: plugins/sudoers/sudoers.c:1152 +#, c-format +msgid "Sudoers file grammar version %d\n" +msgstr "sudoers ファイル文法バージョン %d\n" + +#: plugins/sudoers/sudoers.c:1156 +#, c-format +msgid "" +"\n" +"Sudoers path: %s\n" +msgstr "" +"\n" +"sudoers のパス: %s\n" + +#: plugins/sudoers/sudoers.c:1159 +#, c-format +msgid "nsswitch path: %s\n" +msgstr "nsswitch のパス: %s\n" + +#: plugins/sudoers/sudoers.c:1161 +#, c-format +msgid "ldap.conf path: %s\n" +msgstr "ldap.conf のパス: %s\n" + +#: plugins/sudoers/sudoers.c:1162 +#, c-format +msgid "ldap.secret path: %s\n" +msgstr "ldap.secret のパス: %s\n" + +#: plugins/sudoers/sudoreplay.c:265 +#, c-format +msgid "invalid filter option: %s" +msgstr "無効なフィルターオプションです: %s" + +#: plugins/sudoers/sudoreplay.c:278 +#, c-format +msgid "invalid max wait: %s" +msgstr "無効な最大待機時間です: %s" + +#: plugins/sudoers/sudoreplay.c:284 +#, c-format +msgid "invalid speed factor: %s" +msgstr "無効な speed_factor の値です: %s" + +#: plugins/sudoers/sudoreplay.c:287 plugins/sudoers/visudo.c:174 +#, c-format +msgid "%s version %s\n" +msgstr "%s バージョン %s\n" + +#: plugins/sudoers/sudoreplay.c:310 +#, c-format +msgid "%s/%.2s/%.2s/%.2s/timing: %s" +msgstr "%s/%.2s/%.2s/%.2s/タイミング: %s" + +#: plugins/sudoers/sudoreplay.c:316 +#, c-format +msgid "%s/%s/timing: %s" +msgstr "%s/%s/タイミング: %s" + +#: plugins/sudoers/sudoreplay.c:341 +#, c-format +msgid "invalid log file %s" +msgstr "ログファイル %s は無効です" + +#: plugins/sudoers/sudoreplay.c:343 +#, c-format +msgid "Replaying sudo session: %s" +msgstr "リプレイする sudo セッション: %s" + +#: plugins/sudoers/sudoreplay.c:369 +#, c-format +msgid "unable to set tty to raw mode" +msgstr "tty を raw モードに設定できません" + +#: plugins/sudoers/sudoreplay.c:383 +#, c-format +msgid "invalid timing file line: %s" +msgstr "無効なタイミングファイルの行です: %s" + +#: plugins/sudoers/sudoreplay.c:425 +#, c-format +msgid "writing to standard output" +msgstr "標準出力に書き込んでいます" + +#: plugins/sudoers/sudoreplay.c:455 +#, c-format +msgid "nanosleep: tv_sec %ld, tv_nsec %ld" +msgstr "nanosleep: tv_sec %ld, tv_nsec %ld" + +#: plugins/sudoers/sudoreplay.c:503 plugins/sudoers/sudoreplay.c:528 +#, c-format +msgid "ambiguous expression \"%s\"" +msgstr "曖昧な式 \"%s です\"" + +#: plugins/sudoers/sudoreplay.c:545 +#, c-format +msgid "too many parenthesized expressions, max %d" +msgstr "式内の小括弧のくくりが多すぎます。最大は %d です。" + +#: plugins/sudoers/sudoreplay.c:556 +#, c-format +msgid "unmatched ')' in expression" +msgstr "式内で ')' が不一致です" + +#: plugins/sudoers/sudoreplay.c:562 +#, c-format +msgid "unknown search term \"%s\"" +msgstr "不明な検索語 \"%s\" です" + +#: plugins/sudoers/sudoreplay.c:576 +#, c-format +msgid "%s requires an argument" +msgstr "%s は引数が必要です" + +#: plugins/sudoers/sudoreplay.c:580 +#, c-format +msgid "invalid regular expression: %s" +msgstr "無効な正規表現です: %s" + +#: plugins/sudoers/sudoreplay.c:586 +#, c-format +msgid "could not parse date \"%s\"" +msgstr "日付 \"%s\" を構文解析できませんでした" + +#: plugins/sudoers/sudoreplay.c:599 +#, c-format +msgid "unmatched '(' in expression" +msgstr "式内で '(' が不一致です" + +#: plugins/sudoers/sudoreplay.c:601 +#, c-format +msgid "illegal trailing \"or\"" +msgstr "末尾に \"or\" を配置できません" + +#: plugins/sudoers/sudoreplay.c:603 +#, c-format +msgid "illegal trailing \"!\"" +msgstr "末尾に \"!\" を配置できません" + +#: plugins/sudoers/sudoreplay.c:819 +#, c-format +msgid "invalid regex: %s" +msgstr "無効な正規表現です: %s" + +#: plugins/sudoers/sudoreplay.c:941 +#, c-format +msgid "usage: %s [-h] [-d directory] [-m max_wait] [-s speed_factor] ID\n" +msgstr "使用法: %s [-h] [-d directory] [-m max_wait] [-s speed_factor] ID\n" + +#: plugins/sudoers/sudoreplay.c:944 +#, c-format +msgid "usage: %s [-h] [-d directory] -l [search expression]\n" +msgstr "使用法: %s [-h] [-d directory] -l [search expression]\n" + +#: plugins/sudoers/sudoreplay.c:953 +#, c-format +msgid "" +"%s - replay sudo session logs\n" +"\n" +msgstr "" +"%s - sudo セッションログをリプレイします\n" +"\n" + +#: plugins/sudoers/sudoreplay.c:955 +msgid "" +"\n" +"Options:\n" +" -d directory specify directory for session logs\n" +" -f filter specify which I/O type to display\n" +" -h display help message and exit\n" +" -l [expression] list available session IDs that match expression\n" +" -m max_wait max number of seconds to wait between events\n" +" -s speed_factor speed up or slow down output\n" +" -V display version information and exit" +msgstr "" +"\n" +"オプション:\n" +" -d directory セッションログのディレクトリーを指定する\n" +" -f filter 表示する I/O タイプを指定する\n" +" -h ヘルプメッセージを表示して終了する\n" +" -l [expression] expression に一致する使用可能なセッションID\n" +" を一覧表示する\n" +" -m max_wait イベント間の待ち時間の最大秒数を指定する\n" +" -s speed_factor 出力速度を速くする、または遅くする\n" +" -V バージョン情報を表示して終了する" + +#: plugins/sudoers/testsudoers.c:230 +#, c-format +msgid "internal error, init_vars() overflow" +msgstr "内部エラー、init_vars() がオーバーフローしました" + +#: plugins/sudoers/testsudoers.c:309 +msgid "\thost unmatched" +msgstr "\tホストが一致しません" + +#: plugins/sudoers/testsudoers.c:312 +msgid "" +"\n" +"Command allowed" +msgstr "" +"\n" +"コマンドが許可されました" + +#: plugins/sudoers/testsudoers.c:313 +msgid "" +"\n" +"Command denied" +msgstr "" +"\n" +"コマンドが拒否されました" + +#: plugins/sudoers/testsudoers.c:313 +msgid "" +"\n" +"Command unmatched" +msgstr "" +"\n" +"コマンドが一致しませんでした" + +#: toke.l:667 toke.l:793 toke.l:818 toke.l:904 plugins/sudoers/toke_util.c:111 +#: plugins/sudoers/toke_util.c:163 plugins/sudoers/toke_util.c:202 +msgid "unable to allocate memory" +msgstr "メモリ割り当てを行えませんでした" + +#: toke.l:786 +msgid "too many levels of includes" +msgstr "インクルードの階層が大きすぎます" + +#: plugins/sudoers/toke_util.c:213 +msgid "fill_args: buffer overflow" +msgstr "fill_args: バッファオーバーフローが発生しました" + +#: plugins/sudoers/visudo.c:175 +#, c-format +msgid "%s grammar version %d\n" +msgstr "%s 文法バージョン %d\n" + +#: plugins/sudoers/visudo.c:208 plugins/sudoers/auth/rfc1938.c:103 +#, c-format +msgid "you do not exist in the %s database" +msgstr "あなたは %s データベース内に存在しません" + +#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:518 +#, c-format +msgid "press return to edit %s: " +msgstr "%s を編集するためにリターンを押してください: " + +#: plugins/sudoers/visudo.c:320 plugins/sudoers/visudo.c:326 +#, c-format +msgid "write error" +msgstr "書き込みエラーです" + +#: plugins/sudoers/visudo.c:408 +#, c-format +msgid "unable to stat temporary file (%s), %s unchanged" +msgstr "一時ファイル (%s) の状態取得 (stat) ができません。%s は変更されません" + +#: plugins/sudoers/visudo.c:413 +#, c-format +msgid "zero length temporary file (%s), %s unchanged" +msgstr "一時ファイル (%s) の大きさが 0 です。%s は変更されません" + +#: plugins/sudoers/visudo.c:419 +#, c-format +msgid "editor (%s) failed, %s unchanged" +msgstr "エディター (%s) が異常終了しました。%s は変更されません" + +#: plugins/sudoers/visudo.c:442 +#, c-format +msgid "%s unchanged" +msgstr "%s は変更されません" + +#: plugins/sudoers/visudo.c:466 +#, c-format +msgid "unable to re-open temporary file (%s), %s unchanged." +msgstr "一時ファイル (%s) を再度開くことができません。%s は変更されません。" + +#: plugins/sudoers/visudo.c:476 +#, c-format +msgid "unabled to parse temporary file (%s), unknown error" +msgstr "一時ファイル (%s) の構文解析ができません。不明なエラーです" + +#: plugins/sudoers/visudo.c:511 +#, c-format +msgid "internal error, unable to find %s in list!" +msgstr "内部エラー、リスト内に %s が見つかりません!" + +#: plugins/sudoers/visudo.c:546 plugins/sudoers/visudo.c:555 +#, c-format +msgid "unable to set (uid, gid) of %s to (%u, %u)" +msgstr "%s の (ユーザーID, グループID) を (%u, %u) に設定できません" + +#: plugins/sudoers/visudo.c:550 plugins/sudoers/visudo.c:560 +#, c-format +msgid "unable to change mode of %s to 0%o" +msgstr "%s のアクセス権限のモードを 0%o に変更できません" + +#: plugins/sudoers/visudo.c:577 +#, c-format +msgid "%s and %s not on the same file system, using mv to rename" +msgstr "%s と %s は同じファイルシステム上にありません。名前を変更するために mv を使用しています" + +#: plugins/sudoers/visudo.c:591 +#, c-format +msgid "command failed: '%s %s %s', %s unchanged" +msgstr "コマンドの失敗です: '%s %s %s'。%s は変更されません" + +#: plugins/sudoers/visudo.c:601 +#, c-format +msgid "error renaming %s, %s unchanged" +msgstr "%s の名前変更に失敗しました。%s は変更されません" + +#: plugins/sudoers/visudo.c:661 +msgid "What now? " +msgstr "次は何でしょうか? " + +#: plugins/sudoers/visudo.c:675 +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 "" +"オプション:\n" +" e -- sudoers ファイルを再度編集します\n" +" x -- sudoers ファイルへの変更を保存せずに終了します\n" +" Q -- sudoers ファイルへの変更を保存して終了します (*危険です!*)\n" + +#: plugins/sudoers/visudo.c:712 +#, c-format +msgid "unable to execute %s" +msgstr "%s を実行できません" + +#: plugins/sudoers/visudo.c:719 +#, c-format +msgid "unable to run %s" +msgstr "%s を実行できません" + +#: plugins/sudoers/visudo.c:750 +#, c-format +msgid "failed to parse %s file, unknown error" +msgstr "%s ファイルの構文解析に失敗しました。不明なエラーです" + +#: plugins/sudoers/visudo.c:762 +#, c-format +msgid "parse error in %s near line %d\n" +msgstr "%s 内 %d 行付近で構文解析エラーが発生しました\n" + +#: plugins/sudoers/visudo.c:765 +#, c-format +msgid "parse error in %s\n" +msgstr "%s 内で構文解析エラーが発生しました\n" + +#: plugins/sudoers/visudo.c:767 +#, c-format +msgid "%s: parsed OK\n" +msgstr "%s: 正しく構文解析されました\n" + +#: plugins/sudoers/visudo.c:776 +#, c-format +msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" +msgstr "%s: 所有権に誤りがあります。(ユーザーID, グループID) は (%u, %u) であるべきです\n" + +#: plugins/sudoers/visudo.c:783 +#, c-format +msgid "%s: bad permissions, should be mode 0%o\n" +msgstr "%s: アクセス権限に誤りがあります。モードは 0%o であるべきです\n" + +#: plugins/sudoers/visudo.c:822 +#, c-format +msgid "%s busy, try again later" +msgstr "%s がビジー状態です。後で再試行してください" + +#: plugins/sudoers/visudo.c:865 +#, c-format +msgid "specified editor (%s) doesn't exist" +msgstr "指定したエディター (%s) が存在しません" + +#: plugins/sudoers/visudo.c:888 +#, c-format +msgid "unable to stat editor (%s)" +msgstr "エディター (%s) の状態取得 (stat) ができません" + +#: plugins/sudoers/visudo.c:936 +#, c-format +msgid "no editor found (editor path = %s)" +msgstr "エディターが見つかりません (エディターのパス = %s)" + +#: plugins/sudoers/visudo.c:1025 +#, c-format +msgid "Error: cycle in %s_Alias `%s'" +msgstr "エラー: %s_Alias `%s' 内に循環があります" + +#: plugins/sudoers/visudo.c:1026 +#, c-format +msgid "Warning: cycle in %s_Alias `%s'" +msgstr "警告: %s_Alias `%s' 内に循環があります" + +#: plugins/sudoers/visudo.c:1029 +#, c-format +msgid "Error: %s_Alias `%s' referenced but not defined" +msgstr "エラー: %s_Alias `%s' は参照されていますが定義されていません" + +#: plugins/sudoers/visudo.c:1030 +#, c-format +msgid "Warning: %s_Alias `%s' referenced but not defined" +msgstr "警告: %s_Alias `%s' は参照されていますが定義されていません" + +#: plugins/sudoers/visudo.c:1167 +#, c-format +msgid "%s: unused %s_Alias %s" +msgstr "%s: %s_Alias %s は使用されていません" + +#: plugins/sudoers/visudo.c:1224 +#, c-format +msgid "" +"%s - safely edit the sudoers file\n" +"\n" +msgstr "" +"%s - sudoers ファイルを安全に編集する\n" +"\n" + +#: plugins/sudoers/visudo.c:1226 +msgid "" +"\n" +"Options:\n" +" -c check-only mode\n" +" -f sudoers specify sudoers file location\n" +" -h display help message and exit\n" +" -q less verbose (quiet) syntax error messages\n" +" -s strict syntax checking\n" +" -V display version information and exit" +msgstr "" +"\n" +"オプション:\n" +" -c 検査のみを行う\n" +" -f sudoers sudoers ファイルの位置を指定する\n" +" -h ヘルプメッセージを表示して終了する\n" +" -q 文法エラーメッセージをより少なく (静かに) する\n" +" -s 厳密な文法検査を行う\n" +" -V バージョン情報を表示して終了する" + +#: plugins/sudoers/auth/bsdauth.c:64 +msgid "unable to begin bsd authentication" +msgstr "BSD 認証を開始できません" + +#: plugins/sudoers/auth/bsdauth.c:71 +msgid "invalid authentication type" +msgstr "無効な認証タイプです" + +#: plugins/sudoers/auth/bsdauth.c:79 +msgid "unable to setup authentication" +msgstr "認証をセットアップできません" + +#: plugins/sudoers/auth/fwtk.c:59 +#, c-format +msgid "unable to read fwtk config" +msgstr "fwtk 設定を読み込めません" + +#: plugins/sudoers/auth/fwtk.c:64 +#, c-format +msgid "unable to connect to authentication server" +msgstr "認証サーバーに接続できません" + +#: plugins/sudoers/auth/fwtk.c:70 plugins/sudoers/auth/fwtk.c:93 +#: plugins/sudoers/auth/fwtk.c:126 +#, c-format +msgid "lost connection to authentication server" +msgstr "認証サーバーへの接続が失われました" + +#: plugins/sudoers/auth/fwtk.c:74 +#, c-format +msgid "" +"authentication server error:\n" +"%s" +msgstr "" +"認証サーバーエラーです:\n" +"%s" + +#: plugins/sudoers/auth/kerb5.c:114 +#, c-format +msgid "%s: unable to parse '%s': %s" +msgstr "%s: '%s' を構文解析できません: %s" + +#: plugins/sudoers/auth/kerb5.c:127 +#, c-format +msgid "%s: unable to unparse princ ('%s'): %s" +msgstr "%s: princ ('%s') を符号化できません: %s" + +#: plugins/sudoers/auth/kerb5.c:144 +#, c-format +msgid "%s: unable to resolve ccache: %s" +msgstr "%s: 資格情報キャッシュ (ccache) を解決できません: %s" + +#: plugins/sudoers/auth/kerb5.c:188 +#, c-format +msgid "%s: unable to allocate options: %s" +msgstr "%s: オプションを設定できません: %s" + +#: plugins/sudoers/auth/kerb5.c:204 +#, c-format +msgid "%s: unable to get credentials: %s" +msgstr "%s: 資格情報を取得できません: %s" + +#: plugins/sudoers/auth/kerb5.c:217 +#, c-format +msgid "%s: unable to initialize ccache: %s" +msgstr "%s: 資格情報キャッシュ (ccache) を初期化できません: %s" + +#: plugins/sudoers/auth/kerb5.c:221 +#, c-format +msgid "%s: unable to store cred in ccache: %s" +msgstr "%s: 資格情報を資格情報キャッシュ (ccache) 内に保存できません: %s" + +#: plugins/sudoers/auth/kerb5.c:284 +#, c-format +msgid "%s: unable to get host principal: %s" +msgstr "%s: ホストプリンシパルを取得できません: %s" + +#: plugins/sudoers/auth/kerb5.c:299 +#, c-format +msgid "%s: Cannot verify TGT! Possible attack!: %s" +msgstr "%s: TGT を検証できません! おそらく攻撃です!: %s" + +#: plugins/sudoers/auth/pam.c:99 +msgid "unable to initialize PAM" +msgstr "PAM を初期化できません" + +#: plugins/sudoers/auth/pam.c:142 +msgid "account validation failure, is your account locked?" +msgstr "アカウントの有効性検証に失敗しました。あなたのアカウントはロックされていませんか?" + +#: plugins/sudoers/auth/pam.c:146 +msgid "Account or password is expired, reset your password and try again" +msgstr "アカウントまたはパスワードが期限切れです。パスワードをリセットして再試行してください" + +#: plugins/sudoers/auth/pam.c:153 +#, c-format +msgid "pam_chauthtok: %s" +msgstr "pam_chauthtok: %s" + +#: plugins/sudoers/auth/pam.c:157 +msgid "Password expired, contact your system administrator" +msgstr "パスワードが期限切れです。システム管理者に連絡してください" + +#: plugins/sudoers/auth/pam.c:161 +msgid "Account expired or PAM config lacks an \"account\" section for sudo, contact your system administrator" +msgstr "アカウントの期限切れ、または sudo 用の PAM 設定に \"account\" セクションがありません。システム管理者に連絡してください" + +#: plugins/sudoers/auth/pam.c:176 +#, c-format +msgid "pam_authenticate: %s" +msgstr "pam_authenticate: %s" + +#: plugins/sudoers/auth/pam.c:296 +msgid "Password: " +msgstr "パスワード: " + +#: plugins/sudoers/auth/pam.c:297 +msgid "Password:" +msgstr "パスワード:" + +#: plugins/sudoers/auth/securid.c:82 plugins/sudoers/auth/securid5.c:106 +#, c-format +msgid "unable to contact the SecurID server" +msgstr "SecurID サーバーに接続できません" + +#: plugins/sudoers/auth/securid5.c:81 +#, c-format +msgid "failed to initialise the ACE API library" +msgstr "ACE API ライブラリの初期化に失敗しました" + +#: plugins/sudoers/auth/securid5.c:115 +#, c-format +msgid "User ID locked for SecurID Authentication" +msgstr "SecurID 認証のユーザーIDがロックされています" + +#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:169 +#, c-format +msgid "invalid username length for SecurID" +msgstr "SecurID 用のユーザー名の長さが無効です" + +#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:174 +#, c-format +msgid "invalid Authentication Handle for SecurID" +msgstr "SecurID 用の認証ハンドルが無効です" + +#: plugins/sudoers/auth/securid5.c:127 +#, c-format +msgid "SecurID communication failed" +msgstr "SecurID 通信に失敗しました" + +#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:213 +#, c-format +msgid "unknown SecurID error" +msgstr "不明な SecurID エラーです" + +#: plugins/sudoers/auth/securid5.c:164 +#, c-format +msgid "invalid passcode length for SecurID" +msgstr "SecurID 用のパスコード長が無効です" + +#: plugins/sudoers/auth/sia.c:106 +msgid "unable to initialize SIA session" +msgstr "SIA セッションを初期化できません" + +#: plugins/sudoers/auth/sudo_auth.c:124 +msgid "There are no authentication methods compiled into sudo! If you want to turn off authentication, use the --disable-authentication configure option." +msgstr "認証方法が sudo のコンパイル時に組み込まれていません! 認証を無効にする場合には、configure オプションで --disable-authentication を指定してください。" + +#: plugins/sudoers/auth/sudo_auth.c:134 +msgid "Invalid authentication methods compiled into sudo! You may mix standalone and non-standalone authentication." +msgstr "無効な認証方法が sudo のコンパイル時に組み込まれています! スタンドアローンと非スタンドアローン認証を組み合わせているようです。" + +#: plugins/sudoers/auth/sudo_auth.c:243 +#, c-format +msgid "%d incorrect password attempt" +msgid_plural "%d incorrect password attempts" +msgstr[0] "%d 回パスワード試行を間違えました" + +#: plugins/sudoers/auth/sudo_auth.c:335 +msgid "Authentication methods:" +msgstr "認証方法:" diff --git a/plugins/sudoers/po/pl.mo b/plugins/sudoers/po/pl.mo index a804700..e2fa758 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 9f94c9e..574b887 100644 --- a/plugins/sudoers/po/pl.po +++ b/plugins/sudoers/po/pl.po @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.8.2-rc9\n" +"Project-Id-Version: sudoers 1.8.3rc1\n" "Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" -"POT-Creation-Date: 2011-08-05 13:34-0400\n" -"PO-Revision-Date: 2011-08-09 17:40+0200\n" +"POT-Creation-Date: 2011-09-16 16:52-0400\n" +"PO-Revision-Date: 2011-09-17 14:02+0200\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" "Language: pl\n" @@ -69,9 +69,9 @@ msgid "sorry, a password is required to run %s" msgstr "niestety do uruchomienia %s wymagane jest hasło" #: plugins/sudoers/check.c:225 plugins/sudoers/iolog.c:169 -#: plugins/sudoers/sudoers.c:970 plugins/sudoers/sudoreplay.c:325 +#: plugins/sudoers/sudoers.c:971 plugins/sudoers/sudoreplay.c:325 #: plugins/sudoers/sudoreplay.c:334 plugins/sudoers/sudoreplay.c:675 -#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:700 +#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:744 #, c-format msgid "unable to open %s" msgstr "nie udało się otworzyć %s" @@ -116,8 +116,8 @@ msgid "%s writable by non-owner (0%o), should be mode 0700" msgstr "%s zapisywalny nie tylko dla właściciela (uprawnienia 0%o, powinny być 0700)" #: plugins/sudoers/check.c:470 plugins/sudoers/check.c:514 -#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:956 -#: plugins/sudoers/visudo.c:284 plugins/sudoers/visudo.c:500 +#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:957 +#: plugins/sudoers/visudo.c:304 plugins/sudoers/visudo.c:544 #, c-format msgid "unable to stat %s" msgstr "nie udało się wykonać stat na %s" @@ -152,10 +152,10 @@ msgstr "nie udało się zresetować %s do epoch" msgid "unknown uid: %u" msgstr "nieznany uid: %u" -#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:747 -#: plugins/sudoers/sudoers.c:813 plugins/sudoers/sudoers.c:814 -#: plugins/sudoers/sudoers.c:1087 plugins/sudoers/testsudoers.c:200 -#: plugins/sudoers/testsudoers.c:330 +#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:748 +#: plugins/sudoers/sudoers.c:814 plugins/sudoers/sudoers.c:815 +#: plugins/sudoers/sudoers.c:1088 plugins/sudoers/testsudoers.c:202 +#: plugins/sudoers/testsudoers.c:337 #, c-format msgid "unknown user: %s" msgstr "nieznany użytkownik: %s" @@ -515,53 +515,35 @@ msgstr "Dodawanie wpisu do pliku utmp/utmpx przy przydzielaniu pty" msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "Ustawianie użytkownika w utmp jako docelowego, nie wywołującego" -#: plugins/sudoers/defaults.c:197 -msgid "" -"Available options in a sudoers ``Defaults'' line:\n" -"\n" -msgstr "" -"Opcje dostępne w linii \"Defaults\" pliku sudoers:\n" -"\n" - -#: plugins/sudoers/defaults.c:204 plugins/sudoers/defaults.c:215 -#, c-format -msgid "%s: %s\n" -msgstr "%s: %s\n" - -#: plugins/sudoers/defaults.c:211 -#, c-format -msgid "%s: %.*s\n" -msgstr "%s: %.*s\n" - -#: plugins/sudoers/defaults.c:241 +#: plugins/sudoers/defaults.c:205 #, c-format msgid "unknown defaults entry `%s'" msgstr "nieznany wpis domyślny `%s'" -#: plugins/sudoers/defaults.c:249 plugins/sudoers/defaults.c:259 -#: plugins/sudoers/defaults.c:279 plugins/sudoers/defaults.c:292 -#: plugins/sudoers/defaults.c:305 plugins/sudoers/defaults.c:318 -#: plugins/sudoers/defaults.c:331 plugins/sudoers/defaults.c:351 -#: plugins/sudoers/defaults.c:361 +#: plugins/sudoers/defaults.c:213 plugins/sudoers/defaults.c:223 +#: plugins/sudoers/defaults.c:243 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 #, c-format msgid "value `%s' is invalid for option `%s'" msgstr "błędna wartość `%s' dla opcji `%s'" -#: plugins/sudoers/defaults.c:252 plugins/sudoers/defaults.c:262 -#: plugins/sudoers/defaults.c:270 plugins/sudoers/defaults.c:287 -#: plugins/sudoers/defaults.c:300 plugins/sudoers/defaults.c:313 -#: plugins/sudoers/defaults.c:326 plugins/sudoers/defaults.c:346 -#: plugins/sudoers/defaults.c:357 +#: plugins/sudoers/defaults.c:216 plugins/sudoers/defaults.c:226 +#: plugins/sudoers/defaults.c:234 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 #, c-format msgid "no value specified for `%s'" msgstr "nie podano wartości dla `%s'" -#: plugins/sudoers/defaults.c:275 +#: plugins/sudoers/defaults.c:239 #, c-format msgid "values for `%s' must start with a '/'" msgstr "wartości `%s' muszą zaczynać się od '/'" -#: plugins/sudoers/defaults.c:337 +#: plugins/sudoers/defaults.c:301 #, c-format msgid "option `%s' does not take a value" msgstr "opcja `%s' nie przyjmuje wartości" @@ -583,7 +565,7 @@ msgstr "niestety nie jest dozwolone ustawianie następujących zmiennych środow #: plugins/sudoers/find_path.c:68 plugins/sudoers/find_path.c:107 #: plugins/sudoers/find_path.c:122 plugins/sudoers/iolog.c:124 -#: plugins/sudoers/sudoers.c:899 toke.l:663 toke.l:814 +#: plugins/sudoers/sudoers.c:903 toke.l:663 toke.l:814 #, c-format msgid "%s: %s" msgstr "%s: %s" @@ -627,7 +609,7 @@ msgstr "%s: niezgodna główna wersja wtyczki grup %d, oczekiwano %d" msgid "Local IP address and netmask pairs:\n" msgstr "Pary lokalnych adresów IP i masek:\n" -#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:977 +#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:978 #, c-format msgid "unable to read %s" msgstr "nie udało się odczytać %s" @@ -646,72 +628,72 @@ msgstr "błędny numer sekwencyjny %s" msgid "unable to create %s" msgstr "nie udało się utworzyć %s" -#: plugins/sudoers/iolog_path.c:245 plugins/sudoers/sudoers.c:356 +#: plugins/sudoers/iolog_path.c:247 plugins/sudoers/sudoers.c:357 #, c-format msgid "unable to set locale to \"%s\", using \"C\"" msgstr "nie udało się ustawić lokalizacji na \"%s\", użyto \"C\"" -#: plugins/sudoers/ldap.c:363 +#: plugins/sudoers/ldap.c:368 #, c-format msgid "sudo_ldap_conf_add_ports: port too large" msgstr "sudo_ldap_conf_add_ports: port zbyt duży" -#: plugins/sudoers/ldap.c:386 +#: plugins/sudoers/ldap.c:391 #, c-format msgid "sudo_ldap_conf_add_ports: out of space expanding hostbuf" msgstr "sudo_ldap_conf_add_ports: brak miejsca podczas rozszerzania hostbuf" -#: plugins/sudoers/ldap.c:415 +#: plugins/sudoers/ldap.c:420 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "nieobsługiwany rodzaj URI LDAP: %s" -#: plugins/sudoers/ldap.c:444 +#: plugins/sudoers/ldap.c:449 #, c-format msgid "invalid uri: %s" msgstr "błędny URI: %s" -#: plugins/sudoers/ldap.c:450 +#: plugins/sudoers/ldap.c:455 #, c-format msgid "unable to mix ldap and ldaps URIs" msgstr "nie można mieszać URI ldap i ldaps" -#: plugins/sudoers/ldap.c:454 +#: plugins/sudoers/ldap.c:459 #, c-format msgid "unable to mix ldaps and starttls" msgstr "nie można mieszać ldaps i starttls" -#: plugins/sudoers/ldap.c:473 +#: plugins/sudoers/ldap.c:478 #, c-format msgid "sudo_ldap_parse_uri: out of space building hostbuf" msgstr "sudo_ldap_parse_uri: brak miejsca podczas konstruowania hostbuf" -#: plugins/sudoers/ldap.c:536 +#: plugins/sudoers/ldap.c:541 #, c-format msgid "unable to initialize SSL cert and key db: %s" msgstr "nie udało się zainicjować bazy certyfikatów i kluczy SSL: %s" -#: plugins/sudoers/ldap.c:932 +#: plugins/sudoers/ldap.c:937 #, c-format msgid "unable to get GMT time" msgstr "nie udało się pobrać czasu GMT" -#: plugins/sudoers/ldap.c:938 +#: plugins/sudoers/ldap.c:943 #, c-format msgid "unable to format timestamp" msgstr "nie udało się sformatować znacznika czasu" -#: plugins/sudoers/ldap.c:946 +#: plugins/sudoers/ldap.c:951 #, c-format msgid "unable to build time filter" msgstr "nie udało się stworzyć filtra czasu" -#: plugins/sudoers/ldap.c:1047 +#: plugins/sudoers/ldap.c:1052 #, c-format msgid "sudo_ldap_build_pass1 allocation mismatch" msgstr "niezgodność przydzielenia sudo_ldap_build_pass1" -#: plugins/sudoers/ldap.c:1542 +#: plugins/sudoers/ldap.c:1562 #, c-format msgid "" "\n" @@ -720,7 +702,7 @@ msgstr "" "\n" "Rola LDAP: %s\n" -#: plugins/sudoers/ldap.c:1544 +#: plugins/sudoers/ldap.c:1564 #, c-format msgid "" "\n" @@ -729,27 +711,27 @@ msgstr "" "\n" "Rola LDAP: NIEZNANA\n" -#: plugins/sudoers/ldap.c:1591 +#: plugins/sudoers/ldap.c:1611 #, c-format msgid " Order: %s\n" msgstr " Porządek: %s\n" -#: plugins/sudoers/ldap.c:1599 +#: plugins/sudoers/ldap.c:1619 #, c-format msgid " Commands:\n" msgstr " Polecenia:\n" -#: plugins/sudoers/ldap.c:1986 +#: plugins/sudoers/ldap.c:2006 #, c-format msgid "unable to initialize LDAP: %s" msgstr "nie udało się zainicjować LDAP: %s" -#: plugins/sudoers/ldap.c:2017 +#: plugins/sudoers/ldap.c:2037 #, c-format 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:2248 +#: plugins/sudoers/ldap.c:2268 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "błędny atrybut sudoOrder: %s" @@ -846,7 +828,7 @@ msgstr "błąd wewnętrzny: za mało miejsca na linię logu" msgid "parse error in %s near line %d" msgstr "błąd składni w %s w okolicy linii %d" -#: plugins/sudoers/parse.c:369 +#: plugins/sudoers/parse.c:371 #, c-format msgid "" "\n" @@ -855,17 +837,17 @@ msgstr "" "\n" "Wpis sudoers:\n" -#: plugins/sudoers/parse.c:371 +#: plugins/sudoers/parse.c:373 #, c-format msgid " RunAsUsers: " msgstr " Jako użytkownicy: " -#: plugins/sudoers/parse.c:386 +#: plugins/sudoers/parse.c:388 #, c-format msgid " RunAsGroups: " msgstr " Jako grupy: " -#: plugins/sudoers/parse.c:395 +#: plugins/sudoers/parse.c:397 #, c-format msgid "" " Commands:\n" @@ -908,38 +890,38 @@ msgstr "nie udało się zapamiętać gid-a %u, już istnieje" msgid "unable to cache group %s, already exists" msgstr "nie udało się zapamiętać grupy %s, już istnieje" -#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:355 -#: plugins/sudoers/set_perms.c:587 plugins/sudoers/set_perms.c:821 +#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:358 +#: plugins/sudoers/set_perms.c:590 plugins/sudoers/set_perms.c:824 msgid "perm stack overflow" msgstr "przepełnienie stosu uprawnień" -#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:595 plugins/sudoers/set_perms.c:829 +#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:366 +#: plugins/sudoers/set_perms.c:598 plugins/sudoers/set_perms.c:832 msgid "perm stack underflow" msgstr "niedopełnienie stosu uprawnień" -#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:455 -#: plugins/sudoers/set_perms.c:692 +#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:458 +#: plugins/sudoers/set_perms.c:695 msgid "unable to change to runas gid" msgstr "nie udało się zmienić na docelowy gid" -#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:462 -#: plugins/sudoers/set_perms.c:699 +#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:465 +#: plugins/sudoers/set_perms.c:702 msgid "unable to change to runas uid" msgstr "nie udało się zmienić na docelowy uid" -#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:475 -#: plugins/sudoers/set_perms.c:712 +#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:478 +#: plugins/sudoers/set_perms.c:715 #, c-format msgid "unable to change to sudoers gid" msgstr "nie udało się zmienić na gid sudoers" -#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:513 -#: plugins/sudoers/set_perms.c:750 plugins/sudoers/set_perms.c:890 +#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:516 +#: plugins/sudoers/set_perms.c:753 plugins/sudoers/set_perms.c:893 msgid "too many processes" msgstr "zbyt dużo procesów" -#: plugins/sudoers/set_perms.c:952 +#: plugins/sudoers/set_perms.c:955 msgid "unable to set runas group vector" msgstr "nie udało się ustawić wektora grup docelowych" @@ -963,57 +945,57 @@ msgstr "Użytkownik %s może uruchamiać na tym hoście następujące polecenia: 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" -#: plugins/sudoers/sudoers.c:198 plugins/sudoers/sudoers.c:233 -#: plugins/sudoers/sudoers.c:907 +#: plugins/sudoers/sudoers.c:199 plugins/sudoers/sudoers.c:234 +#: plugins/sudoers/sudoers.c:911 msgid "problem with defaults entries" msgstr "problem z wpisami domyślnymi" -#: plugins/sudoers/sudoers.c:202 +#: plugins/sudoers/sudoers.c:203 #, c-format msgid "no valid sudoers sources found, quitting" msgstr "nie znaleziono poprawnych źródeł sudoers, zakończenie" -#: plugins/sudoers/sudoers.c:256 +#: plugins/sudoers/sudoers.c:257 #, c-format msgid "unable to execute %s: %s" msgstr "nie udało się wywołać %s: %s" -#: plugins/sudoers/sudoers.c:305 +#: plugins/sudoers/sudoers.c:306 #, c-format msgid "sudoers specifies that root is not allowed to sudo" msgstr "wg sudoers root nie ma prawa używać sudo" -#: plugins/sudoers/sudoers.c:312 +#: plugins/sudoers/sudoers.c:313 #, c-format msgid "you are not permitted to use the -C option" msgstr "brak uprawnień do używania opcji -C" -#: plugins/sudoers/sudoers.c:402 +#: plugins/sudoers/sudoers.c:403 #, 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:418 +#: plugins/sudoers/sudoers.c:419 msgid "no tty" msgstr "brak tty" -#: plugins/sudoers/sudoers.c:419 +#: plugins/sudoers/sudoers.c:420 #, c-format msgid "sorry, you must have a tty to run sudo" msgstr "niestety do uruchomienia sudo konieczny jest tty" -#: plugins/sudoers/sudoers.c:462 +#: plugins/sudoers/sudoers.c:463 msgid "No user or host" msgstr "Brak użytkownika lub hosta" -#: plugins/sudoers/sudoers.c:476 plugins/sudoers/sudoers.c:497 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:1452 -#: plugins/sudoers/sudoers.c:1453 +#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:499 plugins/sudoers/sudoers.c:1465 +#: plugins/sudoers/sudoers.c:1466 #, c-format msgid "%s: command not found" msgstr "%s: nie znaleziono polecenia" -#: plugins/sudoers/sudoers.c:478 plugins/sudoers/sudoers.c:494 +#: plugins/sudoers/sudoers.c:479 plugins/sudoers/sudoers.c:495 #, c-format msgid "" "ignoring `%s' found in '.'\n" @@ -1022,95 +1004,95 @@ msgstr "" "zignorowano plik `%s' znaleziony w '.'\n" "Proszę użyć `sudo ./%s', jeśli to `%s' ma być uruchomiony." -#: plugins/sudoers/sudoers.c:483 +#: plugins/sudoers/sudoers.c:484 msgid "validation failure" msgstr "błąd kontroli poprawności" -#: plugins/sudoers/sudoers.c:493 +#: plugins/sudoers/sudoers.c:494 msgid "command in current directory" msgstr "polecenie w bieżącym katalogu" -#: plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:506 #, c-format msgid "sorry, you are not allowed to preserve the environment" msgstr "niestety brak uprawnień do zachowania środowiska" -#: plugins/sudoers/sudoers.c:890 +#: plugins/sudoers/sudoers.c:894 #, c-format msgid "internal error, set_cmnd() overflow" msgstr "błąd wewnętrzny, przepełnienie set_cmnd()" -#: plugins/sudoers/sudoers.c:935 +#: plugins/sudoers/sudoers.c:936 #, c-format msgid "fixed mode on %s" msgstr "poprawiono uprawnienia %s" -#: plugins/sudoers/sudoers.c:939 +#: plugins/sudoers/sudoers.c:940 #, c-format msgid "set group on %s" msgstr "ustawiono grupę %s" -#: plugins/sudoers/sudoers.c:942 +#: plugins/sudoers/sudoers.c:943 #, c-format msgid "unable to set group on %s" msgstr "nie udało się ustawić grupy %s" -#: plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:946 #, c-format msgid "unable to fix mode on %s" msgstr "nie udało się poprawić uprawnień %s" -#: plugins/sudoers/sudoers.c:958 +#: plugins/sudoers/sudoers.c:959 #, c-format msgid "%s is not a regular file" msgstr "%s nie jest zwykłym plikiem" -#: plugins/sudoers/sudoers.c:960 +#: plugins/sudoers/sudoers.c:961 #, c-format msgid "%s is mode 0%o, should be 0%o" msgstr "%s ma uprawnienia 0%o, powinny być 0%o" -#: plugins/sudoers/sudoers.c:964 +#: plugins/sudoers/sudoers.c:965 #, 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:967 +#: plugins/sudoers/sudoers.c:968 #, 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:1011 +#: plugins/sudoers/sudoers.c:1012 #, c-format msgid "only root can use `-c %s'" msgstr "tylko root może używać `-c %s'" -#: plugins/sudoers/sudoers.c:1021 +#: plugins/sudoers/sudoers.c:1022 #, c-format msgid "unknown login class: %s" msgstr "nieznana klasa logowania: %s" -#: plugins/sudoers/sudoers.c:1055 +#: plugins/sudoers/sudoers.c:1056 #, c-format msgid "unable to resolve host %s" msgstr "nie udało się rozwiązać nazwy hosta %s" -#: plugins/sudoers/sudoers.c:1105 plugins/sudoers/testsudoers.c:342 +#: plugins/sudoers/sudoers.c:1106 plugins/sudoers/testsudoers.c:351 #, c-format msgid "unknown group: %s" msgstr "nieznana grupa: %s" -#: plugins/sudoers/sudoers.c:1137 +#: plugins/sudoers/sudoers.c:1150 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Wersja wtyczki polityki sudoers %s\n" -#: plugins/sudoers/sudoers.c:1139 +#: plugins/sudoers/sudoers.c:1152 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Wersja gramatyki pliku sudoers %d\n" -#: plugins/sudoers/sudoers.c:1143 +#: plugins/sudoers/sudoers.c:1156 #, c-format msgid "" "\n" @@ -1119,17 +1101,17 @@ msgstr "" "\n" "Ścieżka do sudoers: %s\n" -#: plugins/sudoers/sudoers.c:1146 +#: plugins/sudoers/sudoers.c:1159 #, c-format msgid "nsswitch path: %s\n" msgstr "ścieżka do nsswitch: %s\n" -#: plugins/sudoers/sudoers.c:1148 +#: plugins/sudoers/sudoers.c:1161 #, c-format msgid "ldap.conf path: %s\n" msgstr "ścieżka do ldap.conf: %s\n" -#: plugins/sudoers/sudoers.c:1149 +#: plugins/sudoers/sudoers.c:1162 #, c-format msgid "ldap.secret path: %s\n" msgstr "ścieżka do ldap.secret: %s\n" @@ -1290,16 +1272,16 @@ msgstr "" " -s wsp_szybkości przyspieszenie lub spowolnienie wyjścia\n" " -V wyświetlenie informacji o wersji i zakończenie" -#: plugins/sudoers/testsudoers.c:228 +#: plugins/sudoers/testsudoers.c:230 #, c-format msgid "internal error, init_vars() overflow" msgstr "błąd wewnętrzny, przepełnienie init_vars()" -#: plugins/sudoers/testsudoers.c:304 +#: plugins/sudoers/testsudoers.c:309 msgid "\thost unmatched" msgstr "\thost nie znaleziony" -#: plugins/sudoers/testsudoers.c:307 +#: plugins/sudoers/testsudoers.c:312 msgid "" "\n" "Command allowed" @@ -1307,7 +1289,7 @@ msgstr "" "\n" "Polecenie dozwolone" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command denied" @@ -1315,7 +1297,7 @@ msgstr "" "\n" "Polecenie niedozwolone" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command unmatched" @@ -1346,81 +1328,81 @@ msgstr "%s, wersja gramatyki %d\n" msgid "you do not exist in the %s database" msgstr "nie istniejesz w bazie danych %s" -#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:470 +#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:518 #, c-format msgid "press return to edit %s: " msgstr "wciśnięcie return przejdzie do edycji %s: " -#: plugins/sudoers/visudo.c:300 plugins/sudoers/visudo.c:306 +#: plugins/sudoers/visudo.c:320 plugins/sudoers/visudo.c:326 #, c-format msgid "write error" msgstr "błąd zapisu" -#: plugins/sudoers/visudo.c:360 +#: plugins/sudoers/visudo.c:408 #, 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:365 +#: plugins/sudoers/visudo.c:413 #, 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:371 +#: plugins/sudoers/visudo.c:419 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "błąd edytora (%s), %s nie zmieniony" -#: plugins/sudoers/visudo.c:394 +#: plugins/sudoers/visudo.c:442 #, c-format msgid "%s unchanged" msgstr "%s nie zmieniony" -#: plugins/sudoers/visudo.c:418 +#: plugins/sudoers/visudo.c:466 #, 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:428 +#: plugins/sudoers/visudo.c:476 #, c-format msgid "unabled to parse temporary file (%s), unknown error" msgstr "nie udało się przeanalizować pliku tymczasowego (%s), nieznany błąd" -#: plugins/sudoers/visudo.c:463 +#: plugins/sudoers/visudo.c:511 #, c-format msgid "internal error, unable to find %s in list!" msgstr "błąd wewnętrzny, nie znaleziono %s na liście!" -#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:511 +#: plugins/sudoers/visudo.c:546 plugins/sudoers/visudo.c:555 #, c-format -msgid "unable to set (uid, gid) of %s to (%d, %d)" -msgstr "nie udało się ustawić (uid, gid) %s na (%d, %d)" +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:506 plugins/sudoers/visudo.c:516 +#: plugins/sudoers/visudo.c:550 plugins/sudoers/visudo.c:560 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "nie udało się zmienić uprawnień %s na 0%o" -#: plugins/sudoers/visudo.c:533 +#: plugins/sudoers/visudo.c:577 #, 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:547 +#: plugins/sudoers/visudo.c:591 #, 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:557 +#: plugins/sudoers/visudo.c:601 #, c-format msgid "error renaming %s, %s unchanged" msgstr "błąd podczas zmiany nazwy %s, %s nie zmieniony" -#: plugins/sudoers/visudo.c:617 +#: plugins/sudoers/visudo.c:661 msgid "What now? " msgstr "Co teraz? " -#: plugins/sudoers/visudo.c:631 +#: plugins/sudoers/visudo.c:675 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -1432,92 +1414,92 @@ 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:668 +#: plugins/sudoers/visudo.c:712 #, c-format msgid "unable to execute %s" msgstr "nie udało się wywołać %s" -#: plugins/sudoers/visudo.c:675 +#: plugins/sudoers/visudo.c:719 #, c-format msgid "unable to run %s" msgstr "nie udało się uruchomić %s" -#: plugins/sudoers/visudo.c:706 +#: plugins/sudoers/visudo.c:750 #, c-format msgid "failed to parse %s file, unknown error" msgstr "nie udało się przeanalizować pliku %s, nieznany błąd" -#: plugins/sudoers/visudo.c:718 +#: plugins/sudoers/visudo.c:762 #, c-format msgid "parse error in %s near line %d\n" msgstr "błąd składni w %s w okolicy linii %d\n" -#: plugins/sudoers/visudo.c:721 +#: plugins/sudoers/visudo.c:765 #, c-format msgid "parse error in %s\n" msgstr "błąd składni w %s\n" -#: plugins/sudoers/visudo.c:723 +#: plugins/sudoers/visudo.c:767 #, c-format msgid "%s: parsed OK\n" msgstr "%s: składnia poprawna\n" -#: plugins/sudoers/visudo.c:737 +#: plugins/sudoers/visudo.c:776 #, c-format -msgid "%s: wrong owner (uid, gid) should be (%d, %d)\n" -msgstr "%s: błędny właściciel, (uid, gid) powinny wynosić (%d, %d)\n" +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:744 +#: plugins/sudoers/visudo.c:783 #, 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:783 +#: plugins/sudoers/visudo.c:822 #, c-format msgid "%s busy, try again later" msgstr "%s zajęty, proszę spróbować później" -#: plugins/sudoers/visudo.c:826 +#: plugins/sudoers/visudo.c:865 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "podany edytor (%s) nie istnieje" -#: plugins/sudoers/visudo.c:849 +#: plugins/sudoers/visudo.c:888 #, c-format msgid "unable to stat editor (%s)" msgstr "nie udało się wykonać stat na edytorze (%s)" -#: plugins/sudoers/visudo.c:897 +#: plugins/sudoers/visudo.c:936 #, c-format msgid "no editor found (editor path = %s)" msgstr "nie znaleziono edytora (ścieżka = %s)" -#: plugins/sudoers/visudo.c:986 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "Error: cycle in %s_Alias `%s'" msgstr "Błąd: cykl w %s_Alias `%s'" -#: plugins/sudoers/visudo.c:987 +#: plugins/sudoers/visudo.c:1026 #, c-format msgid "Warning: cycle in %s_Alias `%s'" msgstr "Uwaga: cykl w %s_Alias `%s'" -#: plugins/sudoers/visudo.c:990 +#: plugins/sudoers/visudo.c:1029 #, c-format msgid "Error: %s_Alias `%s' referenced but not defined" msgstr "Błąd: %s_Alias `%s' użyty, ale nie zdefiniowany" -#: plugins/sudoers/visudo.c:991 +#: plugins/sudoers/visudo.c:1030 #, c-format msgid "Warning: %s_Alias `%s' referenced but not defined" msgstr "Uwaga: %s_Alias `%s' użyty, ale nie zdefiniowany" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1167 #, c-format msgid "%s: unused %s_Alias %s" msgstr "%s: nie użyty %s_Alias %s" -#: plugins/sudoers/visudo.c:1185 +#: plugins/sudoers/visudo.c:1224 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -1526,7 +1508,7 @@ msgstr "" "%s - bezpieczna edycja pliku sudoers\n" "\n" -#: plugins/sudoers/visudo.c:1187 +#: plugins/sudoers/visudo.c:1226 msgid "" "\n" "Options:\n" diff --git a/plugins/sudoers/po/sudoers.pot b/plugins/sudoers/po/sudoers.pot index 21f6196..abd875b 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.8.2\n" +"Project-Id-Version: sudo 1.8.3\n" "Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" -"POT-Creation-Date: 2011-08-17 11:40-0400\n" +"POT-Creation-Date: 2011-10-10 15:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -64,98 +64,98 @@ msgstr "" msgid "au_to_text: failed" msgstr "" -#: plugins/sudoers/check.c:141 +#: plugins/sudoers/check.c:149 #, c-format msgid "sorry, a password is required to run %s" msgstr "" -#: plugins/sudoers/check.c:225 plugins/sudoers/iolog.c:169 -#: plugins/sudoers/sudoers.c:971 plugins/sudoers/sudoreplay.c:325 +#: plugins/sudoers/check.c:236 plugins/sudoers/iolog.c:169 +#: plugins/sudoers/sudoers.c:964 plugins/sudoers/sudoreplay.c:325 #: plugins/sudoers/sudoreplay.c:334 plugins/sudoers/sudoreplay.c:675 -#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:700 +#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:744 #, c-format msgid "unable to open %s" msgstr "" -#: plugins/sudoers/check.c:229 plugins/sudoers/iolog.c:199 +#: plugins/sudoers/check.c:240 plugins/sudoers/iolog.c:199 #, c-format msgid "unable to write to %s" msgstr "" -#: plugins/sudoers/check.c:237 plugins/sudoers/check.c:475 -#: plugins/sudoers/check.c:525 plugins/sudoers/iolog.c:122 +#: plugins/sudoers/check.c:248 plugins/sudoers/check.c:486 +#: plugins/sudoers/check.c:536 plugins/sudoers/iolog.c:122 #: plugins/sudoers/iolog.c:153 #, c-format msgid "unable to mkdir %s" msgstr "" -#: plugins/sudoers/check.c:370 +#: plugins/sudoers/check.c:381 #, c-format msgid "internal error, expand_prompt() overflow" msgstr "" -#: plugins/sudoers/check.c:426 +#: plugins/sudoers/check.c:437 #, c-format msgid "timestamp path too long: %s" msgstr "" -#: plugins/sudoers/check.c:454 plugins/sudoers/check.c:498 +#: plugins/sudoers/check.c:465 plugins/sudoers/check.c:509 #: plugins/sudoers/iolog.c:155 #, c-format msgid "%s exists but is not a directory (0%o)" msgstr "" -#: plugins/sudoers/check.c:457 plugins/sudoers/check.c:501 -#: plugins/sudoers/check.c:546 +#: plugins/sudoers/check.c:468 plugins/sudoers/check.c:512 +#: plugins/sudoers/check.c:557 #, c-format msgid "%s owned by uid %u, should be uid %u" msgstr "" -#: plugins/sudoers/check.c:462 plugins/sudoers/check.c:506 +#: plugins/sudoers/check.c:473 plugins/sudoers/check.c:517 #, c-format msgid "%s writable by non-owner (0%o), should be mode 0700" msgstr "" -#: plugins/sudoers/check.c:470 plugins/sudoers/check.c:514 -#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:957 -#: plugins/sudoers/visudo.c:284 plugins/sudoers/visudo.c:500 +#: plugins/sudoers/check.c:481 plugins/sudoers/check.c:525 +#: plugins/sudoers/check.c:593 plugins/sudoers/sudoers.c:950 +#: plugins/sudoers/visudo.c:304 plugins/sudoers/visudo.c:544 #, c-format msgid "unable to stat %s" msgstr "" -#: plugins/sudoers/check.c:540 +#: plugins/sudoers/check.c:551 #, c-format msgid "%s exists but is not a regular file (0%o)" msgstr "" -#: plugins/sudoers/check.c:552 +#: plugins/sudoers/check.c:563 #, c-format msgid "%s writable by non-owner (0%o), should be mode 0600" msgstr "" -#: plugins/sudoers/check.c:606 +#: plugins/sudoers/check.c:617 #, c-format msgid "timestamp too far in the future: %20.20s" msgstr "" -#: plugins/sudoers/check.c:652 +#: plugins/sudoers/check.c:663 #, c-format msgid "unable to remove %s (%s), will reset to the epoch" msgstr "" -#: plugins/sudoers/check.c:660 +#: plugins/sudoers/check.c:671 #, c-format msgid "unable to reset %s to the epoch" msgstr "" -#: plugins/sudoers/check.c:714 plugins/sudoers/check.c:720 +#: plugins/sudoers/check.c:725 plugins/sudoers/check.c:731 +#: plugins/sudoers/sudoers.c:804 plugins/sudoers/sudoers.c:808 #, c-format msgid "unknown uid: %u" msgstr "" -#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:748 -#: plugins/sudoers/sudoers.c:814 plugins/sudoers/sudoers.c:815 -#: plugins/sudoers/sudoers.c:1088 plugins/sudoers/testsudoers.c:202 +#: plugins/sudoers/check.c:728 plugins/sudoers/sudoers.c:746 +#: plugins/sudoers/sudoers.c:1081 plugins/sudoers/testsudoers.c:202 #: plugins/sudoers/testsudoers.c:337 #, c-format msgid "unknown user: %s" @@ -519,51 +519,35 @@ msgstr "" msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "" -#: plugins/sudoers/defaults.c:197 -msgid "" -"Available options in a sudoers ``Defaults'' line:\n" -"\n" -msgstr "" - -#: plugins/sudoers/defaults.c:204 plugins/sudoers/defaults.c:215 -#, c-format -msgid "%s: %s\n" -msgstr "" - -#: plugins/sudoers/defaults.c:211 -#, c-format -msgid "%s: %.*s\n" -msgstr "" - -#: plugins/sudoers/defaults.c:241 +#: plugins/sudoers/defaults.c:205 #, c-format msgid "unknown defaults entry `%s'" msgstr "" -#: plugins/sudoers/defaults.c:249 plugins/sudoers/defaults.c:259 -#: plugins/sudoers/defaults.c:279 plugins/sudoers/defaults.c:292 -#: plugins/sudoers/defaults.c:305 plugins/sudoers/defaults.c:318 -#: plugins/sudoers/defaults.c:331 plugins/sudoers/defaults.c:351 -#: plugins/sudoers/defaults.c:361 +#: plugins/sudoers/defaults.c:213 plugins/sudoers/defaults.c:223 +#: plugins/sudoers/defaults.c:243 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 #, c-format msgid "value `%s' is invalid for option `%s'" msgstr "" -#: plugins/sudoers/defaults.c:252 plugins/sudoers/defaults.c:262 -#: plugins/sudoers/defaults.c:270 plugins/sudoers/defaults.c:287 -#: plugins/sudoers/defaults.c:300 plugins/sudoers/defaults.c:313 -#: plugins/sudoers/defaults.c:326 plugins/sudoers/defaults.c:346 -#: plugins/sudoers/defaults.c:357 +#: plugins/sudoers/defaults.c:216 plugins/sudoers/defaults.c:226 +#: plugins/sudoers/defaults.c:234 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 #, c-format msgid "no value specified for `%s'" msgstr "" -#: plugins/sudoers/defaults.c:275 +#: plugins/sudoers/defaults.c:239 #, c-format msgid "values for `%s' must start with a '/'" msgstr "" -#: plugins/sudoers/defaults.c:337 +#: plugins/sudoers/defaults.c:301 #, c-format msgid "option `%s' does not take a value" msgstr "" @@ -578,7 +562,7 @@ msgstr "" msgid "sudo_putenv: corrupted envp, length mismatch" msgstr "" -#: plugins/sudoers/env.c:698 +#: plugins/sudoers/env.c:703 #, c-format msgid "" "sorry, you are not allowed to set the following environment variables: %s" @@ -586,7 +570,7 @@ msgstr "" #: plugins/sudoers/find_path.c:68 plugins/sudoers/find_path.c:107 #: plugins/sudoers/find_path.c:122 plugins/sudoers/iolog.c:124 -#: plugins/sudoers/sudoers.c:903 toke.l:663 toke.l:814 +#: plugins/sudoers/sudoers.c:896 toke.l:663 toke.l:814 #, c-format msgid "%s: %s" msgstr "" @@ -630,7 +614,7 @@ msgstr "" msgid "Local IP address and netmask pairs:\n" msgstr "" -#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:978 +#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:971 #, c-format msgid "unable to read %s" msgstr "" @@ -649,108 +633,108 @@ msgstr "" msgid "unable to create %s" msgstr "" -#: plugins/sudoers/iolog_path.c:245 plugins/sudoers/sudoers.c:357 +#: plugins/sudoers/iolog_path.c:247 plugins/sudoers/sudoers.c:355 #, c-format msgid "unable to set locale to \"%s\", using \"C\"" msgstr "" -#: plugins/sudoers/ldap.c:363 +#: plugins/sudoers/ldap.c:368 #, c-format msgid "sudo_ldap_conf_add_ports: port too large" msgstr "" -#: plugins/sudoers/ldap.c:386 +#: plugins/sudoers/ldap.c:391 #, c-format msgid "sudo_ldap_conf_add_ports: out of space expanding hostbuf" msgstr "" -#: plugins/sudoers/ldap.c:415 +#: plugins/sudoers/ldap.c:420 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "" -#: plugins/sudoers/ldap.c:444 +#: plugins/sudoers/ldap.c:449 #, c-format msgid "invalid uri: %s" msgstr "" -#: plugins/sudoers/ldap.c:450 +#: plugins/sudoers/ldap.c:455 #, c-format msgid "unable to mix ldap and ldaps URIs" msgstr "" -#: plugins/sudoers/ldap.c:454 +#: plugins/sudoers/ldap.c:459 #, c-format msgid "unable to mix ldaps and starttls" msgstr "" -#: plugins/sudoers/ldap.c:473 +#: plugins/sudoers/ldap.c:478 #, c-format msgid "sudo_ldap_parse_uri: out of space building hostbuf" msgstr "" -#: plugins/sudoers/ldap.c:536 +#: plugins/sudoers/ldap.c:541 #, c-format msgid "unable to initialize SSL cert and key db: %s" msgstr "" -#: plugins/sudoers/ldap.c:932 +#: plugins/sudoers/ldap.c:937 #, c-format msgid "unable to get GMT time" msgstr "" -#: plugins/sudoers/ldap.c:938 +#: plugins/sudoers/ldap.c:943 #, c-format msgid "unable to format timestamp" msgstr "" -#: plugins/sudoers/ldap.c:946 +#: plugins/sudoers/ldap.c:951 #, c-format msgid "unable to build time filter" msgstr "" -#: plugins/sudoers/ldap.c:1047 +#: plugins/sudoers/ldap.c:1052 #, c-format msgid "sudo_ldap_build_pass1 allocation mismatch" msgstr "" -#: plugins/sudoers/ldap.c:1542 +#: plugins/sudoers/ldap.c:1562 #, c-format msgid "" "\n" "LDAP Role: %s\n" msgstr "" -#: plugins/sudoers/ldap.c:1544 +#: plugins/sudoers/ldap.c:1564 #, c-format msgid "" "\n" "LDAP Role: UNKNOWN\n" msgstr "" -#: plugins/sudoers/ldap.c:1591 +#: plugins/sudoers/ldap.c:1611 #, c-format msgid " Order: %s\n" msgstr "" -#: plugins/sudoers/ldap.c:1599 +#: plugins/sudoers/ldap.c:1619 #, c-format msgid " Commands:\n" msgstr "" -#: plugins/sudoers/ldap.c:1986 +#: plugins/sudoers/ldap.c:2006 #, c-format msgid "unable to initialize LDAP: %s" msgstr "" -#: plugins/sudoers/ldap.c:2017 +#: plugins/sudoers/ldap.c:2037 #, c-format 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:2248 +#: plugins/sudoers/ldap.c:2268 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "" @@ -847,24 +831,24 @@ msgstr "" msgid "parse error in %s near line %d" msgstr "" -#: plugins/sudoers/parse.c:369 +#: plugins/sudoers/parse.c:371 #, c-format msgid "" "\n" "Sudoers entry:\n" msgstr "" -#: plugins/sudoers/parse.c:371 +#: plugins/sudoers/parse.c:373 #, c-format msgid " RunAsUsers: " msgstr "" -#: plugins/sudoers/parse.c:386 +#: plugins/sudoers/parse.c:388 #, c-format msgid " RunAsGroups: " msgstr "" -#: plugins/sudoers/parse.c:395 +#: plugins/sudoers/parse.c:397 #, c-format msgid "" " Commands:\n" @@ -890,53 +874,53 @@ msgstr "" msgid "unable to cache user %s, already exists" msgstr "" -#: plugins/sudoers/pwutil.c:607 +#: plugins/sudoers/pwutil.c:622 #, c-format msgid "unable to cache gid %u (%s), already exists" msgstr "" -#: plugins/sudoers/pwutil.c:615 +#: plugins/sudoers/pwutil.c:630 #, c-format msgid "unable to cache gid %u, already exists" msgstr "" -#: plugins/sudoers/pwutil.c:644 plugins/sudoers/pwutil.c:653 +#: plugins/sudoers/pwutil.c:659 plugins/sudoers/pwutil.c:668 #, c-format msgid "unable to cache group %s, already exists" msgstr "" -#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:355 -#: plugins/sudoers/set_perms.c:587 plugins/sudoers/set_perms.c:821 +#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:358 +#: plugins/sudoers/set_perms.c:591 plugins/sudoers/set_perms.c:825 msgid "perm stack overflow" msgstr "" -#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:595 plugins/sudoers/set_perms.c:829 +#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:366 +#: plugins/sudoers/set_perms.c:599 plugins/sudoers/set_perms.c:833 msgid "perm stack underflow" msgstr "" -#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:455 -#: plugins/sudoers/set_perms.c:692 +#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:458 +#: plugins/sudoers/set_perms.c:696 msgid "unable to change to runas gid" msgstr "" -#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:462 -#: plugins/sudoers/set_perms.c:699 +#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:465 +#: plugins/sudoers/set_perms.c:703 msgid "unable to change to runas uid" msgstr "" -#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:475 -#: plugins/sudoers/set_perms.c:712 +#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:478 +#: plugins/sudoers/set_perms.c:716 #, c-format msgid "unable to change to sudoers gid" msgstr "" -#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:513 -#: plugins/sudoers/set_perms.c:750 plugins/sudoers/set_perms.c:890 +#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:516 +#: plugins/sudoers/set_perms.c:754 plugins/sudoers/set_perms.c:894 msgid "too many processes" msgstr "" -#: plugins/sudoers/set_perms.c:952 +#: plugins/sudoers/set_perms.c:956 msgid "unable to set runas group vector" msgstr "" @@ -960,169 +944,169 @@ msgstr "" msgid "User %s is not allowed to run sudo on %s.\n" msgstr "" -#: plugins/sudoers/sudoers.c:199 plugins/sudoers/sudoers.c:234 -#: plugins/sudoers/sudoers.c:911 +#: plugins/sudoers/sudoers.c:201 plugins/sudoers/sudoers.c:232 +#: plugins/sudoers/sudoers.c:904 msgid "problem with defaults entries" msgstr "" -#: plugins/sudoers/sudoers.c:203 +#: plugins/sudoers/sudoers.c:205 #, c-format msgid "no valid sudoers sources found, quitting" msgstr "" -#: plugins/sudoers/sudoers.c:257 +#: plugins/sudoers/sudoers.c:255 #, c-format msgid "unable to execute %s: %s" msgstr "" -#: plugins/sudoers/sudoers.c:306 +#: plugins/sudoers/sudoers.c:304 #, c-format msgid "sudoers specifies that root is not allowed to sudo" msgstr "" -#: plugins/sudoers/sudoers.c:313 +#: plugins/sudoers/sudoers.c:311 #, c-format msgid "you are not permitted to use the -C option" msgstr "" -#: plugins/sudoers/sudoers.c:403 +#: plugins/sudoers/sudoers.c:401 #, c-format msgid "timestamp owner (%s): No such user" msgstr "" -#: plugins/sudoers/sudoers.c:419 +#: plugins/sudoers/sudoers.c:417 msgid "no tty" msgstr "" -#: plugins/sudoers/sudoers.c:420 +#: plugins/sudoers/sudoers.c:418 #, c-format msgid "sorry, you must have a tty to run sudo" msgstr "" -#: plugins/sudoers/sudoers.c:463 +#: plugins/sudoers/sudoers.c:461 msgid "No user or host" msgstr "" -#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:498 -#: plugins/sudoers/sudoers.c:499 plugins/sudoers/sudoers.c:1465 -#: plugins/sudoers/sudoers.c:1466 +#: plugins/sudoers/sudoers.c:475 plugins/sudoers/sudoers.c:496 +#: plugins/sudoers/sudoers.c:497 plugins/sudoers/sudoers.c:1458 +#: plugins/sudoers/sudoers.c:1459 #, c-format msgid "%s: command not found" msgstr "" -#: plugins/sudoers/sudoers.c:479 plugins/sudoers/sudoers.c:495 +#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:493 #, c-format msgid "" "ignoring `%s' found in '.'\n" "Use `sudo ./%s' if this is the `%s' you wish to run." msgstr "" -#: plugins/sudoers/sudoers.c:484 +#: plugins/sudoers/sudoers.c:482 msgid "validation failure" msgstr "" -#: plugins/sudoers/sudoers.c:494 +#: plugins/sudoers/sudoers.c:492 msgid "command in current directory" msgstr "" -#: plugins/sudoers/sudoers.c:506 +#: plugins/sudoers/sudoers.c:504 #, c-format msgid "sorry, you are not allowed to preserve the environment" msgstr "" -#: plugins/sudoers/sudoers.c:894 +#: plugins/sudoers/sudoers.c:887 #, c-format msgid "internal error, set_cmnd() overflow" msgstr "" -#: plugins/sudoers/sudoers.c:936 +#: plugins/sudoers/sudoers.c:929 #, c-format msgid "fixed mode on %s" msgstr "" -#: plugins/sudoers/sudoers.c:940 +#: plugins/sudoers/sudoers.c:933 #, c-format msgid "set group on %s" msgstr "" -#: plugins/sudoers/sudoers.c:943 +#: plugins/sudoers/sudoers.c:936 #, c-format msgid "unable to set group on %s" msgstr "" -#: plugins/sudoers/sudoers.c:946 +#: plugins/sudoers/sudoers.c:939 #, c-format msgid "unable to fix mode on %s" msgstr "" -#: plugins/sudoers/sudoers.c:959 +#: plugins/sudoers/sudoers.c:952 #, c-format msgid "%s is not a regular file" msgstr "" -#: plugins/sudoers/sudoers.c:961 +#: plugins/sudoers/sudoers.c:954 #, c-format msgid "%s is mode 0%o, should be 0%o" msgstr "" -#: plugins/sudoers/sudoers.c:965 +#: plugins/sudoers/sudoers.c:958 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "" -#: plugins/sudoers/sudoers.c:968 +#: plugins/sudoers/sudoers.c:961 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "" -#: plugins/sudoers/sudoers.c:1012 +#: plugins/sudoers/sudoers.c:1005 #, c-format msgid "only root can use `-c %s'" msgstr "" -#: plugins/sudoers/sudoers.c:1022 +#: plugins/sudoers/sudoers.c:1015 #, c-format msgid "unknown login class: %s" msgstr "" -#: plugins/sudoers/sudoers.c:1056 +#: plugins/sudoers/sudoers.c:1049 #, c-format msgid "unable to resolve host %s" msgstr "" -#: plugins/sudoers/sudoers.c:1106 plugins/sudoers/testsudoers.c:351 +#: plugins/sudoers/sudoers.c:1099 plugins/sudoers/testsudoers.c:351 #, c-format msgid "unknown group: %s" msgstr "" -#: plugins/sudoers/sudoers.c:1150 +#: plugins/sudoers/sudoers.c:1143 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "" -#: plugins/sudoers/sudoers.c:1152 +#: plugins/sudoers/sudoers.c:1145 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "" -#: plugins/sudoers/sudoers.c:1156 +#: plugins/sudoers/sudoers.c:1149 #, c-format msgid "" "\n" "Sudoers path: %s\n" msgstr "" -#: plugins/sudoers/sudoers.c:1159 +#: plugins/sudoers/sudoers.c:1152 #, c-format msgid "nsswitch path: %s\n" msgstr "" -#: plugins/sudoers/sudoers.c:1161 +#: plugins/sudoers/sudoers.c:1154 #, c-format msgid "ldap.conf path: %s\n" msgstr "" -#: plugins/sudoers/sudoers.c:1162 +#: plugins/sudoers/sudoers.c:1155 #, c-format msgid "ldap.secret path: %s\n" msgstr "" @@ -1322,81 +1306,81 @@ msgstr "" msgid "you do not exist in the %s database" msgstr "" -#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:470 +#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:518 #, c-format msgid "press return to edit %s: " msgstr "" -#: plugins/sudoers/visudo.c:300 plugins/sudoers/visudo.c:306 +#: plugins/sudoers/visudo.c:320 plugins/sudoers/visudo.c:326 #, c-format msgid "write error" msgstr "" -#: plugins/sudoers/visudo.c:360 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:365 +#: plugins/sudoers/visudo.c:413 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:371 +#: plugins/sudoers/visudo.c:419 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:394 +#: plugins/sudoers/visudo.c:442 #, c-format msgid "%s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:418 +#: plugins/sudoers/visudo.c:466 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "" -#: plugins/sudoers/visudo.c:428 +#: plugins/sudoers/visudo.c:476 #, c-format msgid "unabled to parse temporary file (%s), unknown error" msgstr "" -#: plugins/sudoers/visudo.c:463 +#: plugins/sudoers/visudo.c:511 #, c-format msgid "internal error, unable to find %s in list!" msgstr "" -#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:511 +#: plugins/sudoers/visudo.c:546 plugins/sudoers/visudo.c:555 #, c-format -msgid "unable to set (uid, gid) of %s to (%d, %d)" +msgid "unable to set (uid, gid) of %s to (%u, %u)" msgstr "" -#: plugins/sudoers/visudo.c:506 plugins/sudoers/visudo.c:516 +#: plugins/sudoers/visudo.c:550 plugins/sudoers/visudo.c:560 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "" -#: plugins/sudoers/visudo.c:533 +#: plugins/sudoers/visudo.c:577 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "" -#: plugins/sudoers/visudo.c:547 +#: plugins/sudoers/visudo.c:591 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:557 +#: plugins/sudoers/visudo.c:601 #, c-format msgid "error renaming %s, %s unchanged" msgstr "" -#: plugins/sudoers/visudo.c:617 +#: plugins/sudoers/visudo.c:661 msgid "What now? " msgstr "" -#: plugins/sudoers/visudo.c:631 +#: plugins/sudoers/visudo.c:675 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -1404,99 +1388,99 @@ msgid "" " (Q)uit and save changes to sudoers file (DANGER!)\n" msgstr "" -#: plugins/sudoers/visudo.c:668 +#: plugins/sudoers/visudo.c:712 #, c-format msgid "unable to execute %s" msgstr "" -#: plugins/sudoers/visudo.c:675 +#: plugins/sudoers/visudo.c:719 #, c-format msgid "unable to run %s" msgstr "" -#: plugins/sudoers/visudo.c:706 +#: plugins/sudoers/visudo.c:750 #, c-format msgid "failed to parse %s file, unknown error" msgstr "" -#: plugins/sudoers/visudo.c:718 +#: plugins/sudoers/visudo.c:762 #, c-format msgid "parse error in %s near line %d\n" msgstr "" -#: plugins/sudoers/visudo.c:721 +#: plugins/sudoers/visudo.c:765 #, c-format msgid "parse error in %s\n" msgstr "" -#: plugins/sudoers/visudo.c:723 +#: plugins/sudoers/visudo.c:767 #, c-format msgid "%s: parsed OK\n" msgstr "" -#: plugins/sudoers/visudo.c:737 +#: plugins/sudoers/visudo.c:776 #, c-format -msgid "%s: wrong owner (uid, gid) should be (%d, %d)\n" +msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" msgstr "" -#: plugins/sudoers/visudo.c:744 +#: plugins/sudoers/visudo.c:783 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "" -#: plugins/sudoers/visudo.c:783 +#: plugins/sudoers/visudo.c:822 #, c-format msgid "%s busy, try again later" msgstr "" -#: plugins/sudoers/visudo.c:826 +#: plugins/sudoers/visudo.c:865 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "" -#: plugins/sudoers/visudo.c:849 +#: plugins/sudoers/visudo.c:888 #, c-format msgid "unable to stat editor (%s)" msgstr "" -#: plugins/sudoers/visudo.c:897 +#: plugins/sudoers/visudo.c:936 #, c-format msgid "no editor found (editor path = %s)" msgstr "" -#: plugins/sudoers/visudo.c:986 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "Error: cycle in %s_Alias `%s'" msgstr "" -#: plugins/sudoers/visudo.c:987 +#: plugins/sudoers/visudo.c:1026 #, c-format msgid "Warning: cycle in %s_Alias `%s'" msgstr "" -#: plugins/sudoers/visudo.c:990 +#: plugins/sudoers/visudo.c:1029 #, c-format msgid "Error: %s_Alias `%s' referenced but not defined" msgstr "" -#: plugins/sudoers/visudo.c:991 +#: plugins/sudoers/visudo.c:1030 #, c-format msgid "Warning: %s_Alias `%s' referenced but not defined" msgstr "" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1167 #, c-format msgid "%s: unused %s_Alias %s" msgstr "" -#: plugins/sudoers/visudo.c:1185 +#: plugins/sudoers/visudo.c:1224 #, c-format msgid "" "%s - safely edit the sudoers file\n" "\n" msgstr "" -#: plugins/sudoers/visudo.c:1187 +#: plugins/sudoers/visudo.c:1226 msgid "" "\n" "Options:\n" @@ -1543,47 +1527,47 @@ msgid "" "%s" msgstr "" -#: plugins/sudoers/auth/kerb5.c:114 +#: plugins/sudoers/auth/kerb5.c:110 #, c-format -msgid "%s: unable to parse '%s': %s" +msgid "%s: unable to unparse princ ('%s'): %s" msgstr "" -#: plugins/sudoers/auth/kerb5.c:127 +#: plugins/sudoers/auth/kerb5.c:149 #, c-format -msgid "%s: unable to unparse princ ('%s'): %s" +msgid "%s: unable to parse '%s': %s" msgstr "" -#: plugins/sudoers/auth/kerb5.c:144 +#: plugins/sudoers/auth/kerb5.c:160 #, c-format msgid "%s: unable to resolve ccache: %s" msgstr "" -#: plugins/sudoers/auth/kerb5.c:188 +#: plugins/sudoers/auth/kerb5.c:204 #, c-format msgid "%s: unable to allocate options: %s" msgstr "" -#: plugins/sudoers/auth/kerb5.c:204 +#: plugins/sudoers/auth/kerb5.c:220 #, c-format msgid "%s: unable to get credentials: %s" msgstr "" -#: plugins/sudoers/auth/kerb5.c:217 +#: plugins/sudoers/auth/kerb5.c:233 #, c-format msgid "%s: unable to initialize ccache: %s" msgstr "" -#: plugins/sudoers/auth/kerb5.c:221 +#: plugins/sudoers/auth/kerb5.c:237 #, c-format msgid "%s: unable to store cred in ccache: %s" msgstr "" -#: plugins/sudoers/auth/kerb5.c:284 +#: plugins/sudoers/auth/kerb5.c:300 #, c-format msgid "%s: unable to get host principal: %s" msgstr "" -#: plugins/sudoers/auth/kerb5.c:299 +#: plugins/sudoers/auth/kerb5.c:315 #, c-format msgid "%s: Cannot verify TGT! Possible attack!: %s" msgstr "" @@ -1620,50 +1604,50 @@ msgstr "" msgid "pam_authenticate: %s" msgstr "" -#: plugins/sudoers/auth/pam.c:296 +#: plugins/sudoers/auth/pam.c:300 msgid "Password: " msgstr "" -#: plugins/sudoers/auth/pam.c:297 +#: plugins/sudoers/auth/pam.c:301 msgid "Password:" msgstr "" -#: plugins/sudoers/auth/securid.c:82 plugins/sudoers/auth/securid5.c:106 +#: plugins/sudoers/auth/securid.c:82 plugins/sudoers/auth/securid5.c:105 #, c-format msgid "unable to contact the SecurID server" msgstr "" -#: plugins/sudoers/auth/securid5.c:81 +#: plugins/sudoers/auth/securid5.c:80 #, c-format msgid "failed to initialise the ACE API library" msgstr "" -#: plugins/sudoers/auth/securid5.c:115 +#: plugins/sudoers/auth/securid5.c:114 #, c-format msgid "User ID locked for SecurID Authentication" msgstr "" -#: plugins/sudoers/auth/securid5.c:119 plugins/sudoers/auth/securid5.c:169 +#: plugins/sudoers/auth/securid5.c:118 plugins/sudoers/auth/securid5.c:168 #, c-format msgid "invalid username length for SecurID" msgstr "" -#: plugins/sudoers/auth/securid5.c:123 plugins/sudoers/auth/securid5.c:174 +#: plugins/sudoers/auth/securid5.c:122 plugins/sudoers/auth/securid5.c:173 #, c-format msgid "invalid Authentication Handle for SecurID" msgstr "" -#: plugins/sudoers/auth/securid5.c:127 +#: plugins/sudoers/auth/securid5.c:126 #, c-format msgid "SecurID communication failed" msgstr "" -#: plugins/sudoers/auth/securid5.c:131 plugins/sudoers/auth/securid5.c:213 +#: plugins/sudoers/auth/securid5.c:130 plugins/sudoers/auth/securid5.c:212 #, c-format msgid "unknown SecurID error" msgstr "" -#: plugins/sudoers/auth/securid5.c:164 +#: plugins/sudoers/auth/securid5.c:163 #, c-format msgid "invalid passcode length for SecurID" msgstr "" @@ -1672,25 +1656,25 @@ msgstr "" msgid "unable to initialize SIA session" msgstr "" -#: plugins/sudoers/auth/sudo_auth.c:124 +#: plugins/sudoers/auth/sudo_auth.c:119 msgid "" -"There are no authentication methods compiled into sudo! If you want to turn " -"off authentication, use the --disable-authentication configure option." +"Invalid authentication methods compiled into sudo! You may mix standalone " +"and non-standalone authentication." msgstr "" -#: plugins/sudoers/auth/sudo_auth.c:134 +#: plugins/sudoers/auth/sudo_auth.c:199 msgid "" -"Invalid authentication methods compiled into sudo! You may mix standalone " -"and non-standalone authentication." +"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:243 +#: plugins/sudoers/auth/sudo_auth.c:271 #, c-format msgid "%d incorrect password attempt" msgid_plural "%d incorrect password attempts" msgstr[0] "" msgstr[1] "" -#: plugins/sudoers/auth/sudo_auth.c:335 +#: plugins/sudoers/auth/sudo_auth.c:367 msgid "Authentication methods:" msgstr "" diff --git a/plugins/sudoers/po/uk.mo b/plugins/sudoers/po/uk.mo index 131c776..f277235 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 706220b..4fe0c35 100644 --- a/plugins/sudoers/po/uk.po +++ b/plugins/sudoers/po/uk.po @@ -4,10 +4,10 @@ # Yuri Chornoivan , 2011. msgid "" msgstr "" -"Project-Id-Version: sudoers 1.8.2-rc9\n" +"Project-Id-Version: sudoers 1.8.3rc1\n" "Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" -"POT-Creation-Date: 2011-08-05 13:34-0400\n" -"PO-Revision-Date: 2011-08-09 08:41+0300\n" +"POT-Creation-Date: 2011-09-16 16:52-0400\n" +"PO-Revision-Date: 2011-09-17 12:50+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: \n" @@ -70,9 +70,9 @@ msgid "sorry, a password is required to run %s" msgstr "вибачте, для виконання %s слід вказати пароль" #: plugins/sudoers/check.c:225 plugins/sudoers/iolog.c:169 -#: plugins/sudoers/sudoers.c:970 plugins/sudoers/sudoreplay.c:325 +#: plugins/sudoers/sudoers.c:971 plugins/sudoers/sudoreplay.c:325 #: plugins/sudoers/sudoreplay.c:334 plugins/sudoers/sudoreplay.c:675 -#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:700 +#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:744 #, c-format msgid "unable to open %s" msgstr "не вдалося відкрити %s" @@ -117,8 +117,8 @@ msgid "%s writable by non-owner (0%o), should be mode 0700" msgstr "%s доступний до запису невласником (0%o), має бути встановлено режим 0700" #: plugins/sudoers/check.c:470 plugins/sudoers/check.c:514 -#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:956 -#: plugins/sudoers/visudo.c:284 plugins/sudoers/visudo.c:500 +#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:957 +#: plugins/sudoers/visudo.c:304 plugins/sudoers/visudo.c:544 #, c-format msgid "unable to stat %s" msgstr "не вдалося виконати stat для %s" @@ -153,10 +153,10 @@ msgstr "не вдалося встановити для %s час епохи" msgid "unknown uid: %u" msgstr "невідоме значення uid: %u" -#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:747 -#: plugins/sudoers/sudoers.c:813 plugins/sudoers/sudoers.c:814 -#: plugins/sudoers/sudoers.c:1087 plugins/sudoers/testsudoers.c:200 -#: plugins/sudoers/testsudoers.c:330 +#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:748 +#: plugins/sudoers/sudoers.c:814 plugins/sudoers/sudoers.c:815 +#: plugins/sudoers/sudoers.c:1088 plugins/sudoers/testsudoers.c:202 +#: plugins/sudoers/testsudoers.c:337 #, c-format msgid "unknown user: %s" msgstr "невідомий користувач: %s" @@ -516,53 +516,35 @@ msgstr "Додати запис до файла utmp/utmpx під час роз msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "Встановити користувача у utmp у значення користувача, від імені якого виконується команда" -#: plugins/sudoers/defaults.c:197 -msgid "" -"Available options in a sudoers ``Defaults'' line:\n" -"\n" -msgstr "" -"Можливі параметри у рядку «Defaults» sudoers:\n" -"\n" - -#: plugins/sudoers/defaults.c:204 plugins/sudoers/defaults.c:215 -#, c-format -msgid "%s: %s\n" -msgstr "%s: %s\n" - -#: plugins/sudoers/defaults.c:211 -#, c-format -msgid "%s: %.*s\n" -msgstr "%s: %.*s\n" - -#: plugins/sudoers/defaults.c:241 +#: plugins/sudoers/defaults.c:205 #, c-format msgid "unknown defaults entry `%s'" msgstr "невідомий запис типових параметрів «%s»" -#: plugins/sudoers/defaults.c:249 plugins/sudoers/defaults.c:259 -#: plugins/sudoers/defaults.c:279 plugins/sudoers/defaults.c:292 -#: plugins/sudoers/defaults.c:305 plugins/sudoers/defaults.c:318 -#: plugins/sudoers/defaults.c:331 plugins/sudoers/defaults.c:351 -#: plugins/sudoers/defaults.c:361 +#: plugins/sudoers/defaults.c:213 plugins/sudoers/defaults.c:223 +#: plugins/sudoers/defaults.c:243 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 #, c-format msgid "value `%s' is invalid for option `%s'" msgstr "значення «%s» є некоректним для параметра «%s»" -#: plugins/sudoers/defaults.c:252 plugins/sudoers/defaults.c:262 -#: plugins/sudoers/defaults.c:270 plugins/sudoers/defaults.c:287 -#: plugins/sudoers/defaults.c:300 plugins/sudoers/defaults.c:313 -#: plugins/sudoers/defaults.c:326 plugins/sudoers/defaults.c:346 -#: plugins/sudoers/defaults.c:357 +#: plugins/sudoers/defaults.c:216 plugins/sudoers/defaults.c:226 +#: plugins/sudoers/defaults.c:234 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 #, c-format msgid "no value specified for `%s'" msgstr "не вказано значення для «%s»" -#: plugins/sudoers/defaults.c:275 +#: plugins/sudoers/defaults.c:239 #, c-format msgid "values for `%s' must start with a '/'" msgstr "значення для «%s» має починатися з «/»" -#: plugins/sudoers/defaults.c:337 +#: plugins/sudoers/defaults.c:301 #, c-format msgid "option `%s' does not take a value" msgstr "параметру «%s» не потрібно передавати значення" @@ -584,7 +566,7 @@ msgstr "вибачте, вам не дозволено встановлюват #: plugins/sudoers/find_path.c:68 plugins/sudoers/find_path.c:107 #: plugins/sudoers/find_path.c:122 plugins/sudoers/iolog.c:124 -#: plugins/sudoers/sudoers.c:899 toke.l:663 toke.l:814 +#: plugins/sudoers/sudoers.c:903 toke.l:663 toke.l:814 #, c-format msgid "%s: %s" msgstr "%s: %s" @@ -628,7 +610,7 @@ msgstr "%s: несумісна основна версія додатка обр msgid "Local IP address and netmask pairs:\n" msgstr "Пари локальних IP-адрес і масок мережі:\n" -#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:977 +#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:978 #, c-format msgid "unable to read %s" msgstr "не вдалося прочитати %s" @@ -647,72 +629,72 @@ msgstr "некоректний номер у послідовності %s" msgid "unable to create %s" msgstr "не вдалося створити %s" -#: plugins/sudoers/iolog_path.c:245 plugins/sudoers/sudoers.c:356 +#: plugins/sudoers/iolog_path.c:247 plugins/sudoers/sudoers.c:357 #, c-format msgid "unable to set locale to \"%s\", using \"C\"" msgstr "не вдалося встановити локаль у значення «%s», використовуємо локаль «C»" -#: plugins/sudoers/ldap.c:363 +#: plugins/sudoers/ldap.c:368 #, c-format msgid "sudo_ldap_conf_add_ports: port too large" msgstr "sudo_ldap_conf_add_ports: занадто великий номер порту" -#: plugins/sudoers/ldap.c:386 +#: plugins/sudoers/ldap.c:391 #, c-format msgid "sudo_ldap_conf_add_ports: out of space expanding hostbuf" msgstr "sudo_ldap_conf_add_ports: вихід за межі розширеного буфера вузла" -#: plugins/sudoers/ldap.c:415 +#: plugins/sudoers/ldap.c:420 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "непідтримуваний тип адреси LDAP: %s" -#: plugins/sudoers/ldap.c:444 +#: plugins/sudoers/ldap.c:449 #, c-format msgid "invalid uri: %s" msgstr "некоректна адреса: %s" -#: plugins/sudoers/ldap.c:450 +#: plugins/sudoers/ldap.c:455 #, c-format msgid "unable to mix ldap and ldaps URIs" msgstr "не можна використовувати суміш з адрес ldap і ldaps" -#: plugins/sudoers/ldap.c:454 +#: plugins/sudoers/ldap.c:459 #, c-format msgid "unable to mix ldaps and starttls" msgstr "не можна використовувати суміш з ldaps і starttls" -#: plugins/sudoers/ldap.c:473 +#: plugins/sudoers/ldap.c:478 #, c-format msgid "sudo_ldap_parse_uri: out of space building hostbuf" msgstr "sudo_ldap_parse_uri: вихід за межі пам’яті під час побудови буфера вузла" -#: plugins/sudoers/ldap.c:536 +#: plugins/sudoers/ldap.c:541 #, c-format msgid "unable to initialize SSL cert and key db: %s" msgstr "не вдалося ініціалізувати базу даних сертифікатів і ключів SSL: %s" -#: plugins/sudoers/ldap.c:932 +#: plugins/sudoers/ldap.c:937 #, c-format msgid "unable to get GMT time" msgstr "не вдалося отримати гринвіцький час" -#: plugins/sudoers/ldap.c:938 +#: plugins/sudoers/ldap.c:943 #, c-format msgid "unable to format timestamp" msgstr "не вдалося виконати форматування часового штампа" -#: plugins/sudoers/ldap.c:946 +#: plugins/sudoers/ldap.c:951 #, c-format msgid "unable to build time filter" msgstr "не вдалося побудувати фільтр часу" -#: plugins/sudoers/ldap.c:1047 +#: plugins/sudoers/ldap.c:1052 #, c-format msgid "sudo_ldap_build_pass1 allocation mismatch" msgstr "sudo_ldap_build_pass1: невідповідність розміщення" -#: plugins/sudoers/ldap.c:1542 +#: plugins/sudoers/ldap.c:1562 #, c-format msgid "" "\n" @@ -721,7 +703,7 @@ msgstr "" "\n" "Роль LDAP: %s\n" -#: plugins/sudoers/ldap.c:1544 +#: plugins/sudoers/ldap.c:1564 #, c-format msgid "" "\n" @@ -730,27 +712,27 @@ msgstr "" "\n" "Роль у LDAP: НЕВІДОМА\n" -#: plugins/sudoers/ldap.c:1591 +#: plugins/sudoers/ldap.c:1611 #, c-format msgid " Order: %s\n" msgstr " Порядок: %s\n" -#: plugins/sudoers/ldap.c:1599 +#: plugins/sudoers/ldap.c:1619 #, c-format msgid " Commands:\n" msgstr " Команди:\n" -#: plugins/sudoers/ldap.c:1986 +#: plugins/sudoers/ldap.c:2006 #, c-format msgid "unable to initialize LDAP: %s" msgstr "не вдалося ініціалізувати LDAP: %s" -#: plugins/sudoers/ldap.c:2017 +#: plugins/sudoers/ldap.c:2037 #, c-format 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:2248 +#: plugins/sudoers/ldap.c:2268 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "некоректний атрибут sudoOrder: %s" @@ -847,7 +829,7 @@ msgstr "внутрішня помилка: недостатньо місця д msgid "parse error in %s near line %d" msgstr "помилка обробки у %s поблизу рядка %d" -#: plugins/sudoers/parse.c:369 +#: plugins/sudoers/parse.c:371 #, c-format msgid "" "\n" @@ -856,17 +838,17 @@ msgstr "" "\n" "Запис sudoers:\n" -#: plugins/sudoers/parse.c:371 +#: plugins/sudoers/parse.c:373 #, c-format msgid " RunAsUsers: " msgstr " Користувачі для запуску: " -#: plugins/sudoers/parse.c:386 +#: plugins/sudoers/parse.c:388 #, c-format msgid " RunAsGroups: " msgstr " Групи для запуску: " -#: plugins/sudoers/parse.c:395 +#: plugins/sudoers/parse.c:397 #, c-format msgid "" " Commands:\n" @@ -909,38 +891,38 @@ msgstr "не вдалося кешувати gid %u, запис вже існу msgid "unable to cache group %s, already exists" msgstr "не вдалося кешувати групу %s, запис вже існує" -#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:355 -#: plugins/sudoers/set_perms.c:587 plugins/sudoers/set_perms.c:821 +#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:358 +#: plugins/sudoers/set_perms.c:590 plugins/sudoers/set_perms.c:824 msgid "perm stack overflow" msgstr "переповнення стека доступу" -#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:363 -#: plugins/sudoers/set_perms.c:595 plugins/sudoers/set_perms.c:829 +#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:366 +#: plugins/sudoers/set_perms.c:598 plugins/sudoers/set_perms.c:832 msgid "perm stack underflow" msgstr "вичерпання стека доступу" -#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:455 -#: plugins/sudoers/set_perms.c:692 +#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:458 +#: plugins/sudoers/set_perms.c:695 msgid "unable to change to runas gid" msgstr "не вдалося змінити gid на runas" -#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:462 -#: plugins/sudoers/set_perms.c:699 +#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:465 +#: plugins/sudoers/set_perms.c:702 msgid "unable to change to runas uid" msgstr "не вдалося змінити uid на runas" -#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:475 -#: plugins/sudoers/set_perms.c:712 +#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:478 +#: plugins/sudoers/set_perms.c:715 #, c-format msgid "unable to change to sudoers gid" msgstr "не вдалося змінити gid на sudoers" -#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:513 -#: plugins/sudoers/set_perms.c:750 plugins/sudoers/set_perms.c:890 +#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:516 +#: plugins/sudoers/set_perms.c:753 plugins/sudoers/set_perms.c:893 msgid "too many processes" msgstr "забагато процесів" -#: plugins/sudoers/set_perms.c:952 +#: plugins/sudoers/set_perms.c:955 msgid "unable to set runas group vector" msgstr "не вдалося встановити вектор групи виконання" @@ -964,57 +946,57 @@ msgstr "Користувач %s має право виконувати на ць msgid "User %s is not allowed to run sudo on %s.\n" msgstr "Користувач %s не має права виконувати sudo на %s.\n" -#: plugins/sudoers/sudoers.c:198 plugins/sudoers/sudoers.c:233 -#: plugins/sudoers/sudoers.c:907 +#: plugins/sudoers/sudoers.c:199 plugins/sudoers/sudoers.c:234 +#: plugins/sudoers/sudoers.c:911 msgid "problem with defaults entries" msgstr "проблема з типовими записами" -#: plugins/sudoers/sudoers.c:202 +#: plugins/sudoers/sudoers.c:203 #, c-format msgid "no valid sudoers sources found, quitting" msgstr "не знайдено коректних джерел даних sudoers, завершення роботи" -#: plugins/sudoers/sudoers.c:256 +#: plugins/sudoers/sudoers.c:257 #, c-format msgid "unable to execute %s: %s" msgstr "не вдалося виконати %s: %s" -#: plugins/sudoers/sudoers.c:305 +#: plugins/sudoers/sudoers.c:306 #, c-format msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers вказує, що sudo не можна користуватися для виконання команд від root" -#: plugins/sudoers/sudoers.c:312 +#: plugins/sudoers/sudoers.c:313 #, c-format msgid "you are not permitted to use the -C option" msgstr "вам не дозволено використовувати параметр -C" -#: plugins/sudoers/sudoers.c:402 +#: plugins/sudoers/sudoers.c:403 #, c-format msgid "timestamp owner (%s): No such user" msgstr "власник часового штампа (%s): не знайдено користувача з таким іменем" -#: plugins/sudoers/sudoers.c:418 +#: plugins/sudoers/sudoers.c:419 msgid "no tty" msgstr "немає tty" -#: plugins/sudoers/sudoers.c:419 +#: plugins/sudoers/sudoers.c:420 #, c-format msgid "sorry, you must have a tty to run sudo" msgstr "вибачте, для виконання sudo вашому користувачеві потрібен tty" -#: plugins/sudoers/sudoers.c:462 +#: plugins/sudoers/sudoers.c:463 msgid "No user or host" msgstr "Немає користувача або вузла" -#: plugins/sudoers/sudoers.c:476 plugins/sudoers/sudoers.c:497 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:1452 -#: plugins/sudoers/sudoers.c:1453 +#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:499 plugins/sudoers/sudoers.c:1465 +#: plugins/sudoers/sudoers.c:1466 #, c-format msgid "%s: command not found" msgstr "%s: команду не знайдено" -#: plugins/sudoers/sudoers.c:478 plugins/sudoers/sudoers.c:494 +#: plugins/sudoers/sudoers.c:479 plugins/sudoers/sudoers.c:495 #, c-format msgid "" "ignoring `%s' found in '.'\n" @@ -1023,95 +1005,95 @@ msgstr "" "пропущено «%s» знайдений у «.»\n" "Скористайтеся командою «sudo ./%s», якщо вам потрібно виконати саме «%s»." -#: plugins/sudoers/sudoers.c:483 +#: plugins/sudoers/sudoers.c:484 msgid "validation failure" msgstr "помилка під час спроби перевірки" -#: plugins/sudoers/sudoers.c:493 +#: plugins/sudoers/sudoers.c:494 msgid "command in current directory" msgstr "команда у поточному каталозі" -#: plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:506 #, c-format msgid "sorry, you are not allowed to preserve the environment" msgstr "вибачте, вам не дозволено зберігати середовище" -#: plugins/sudoers/sudoers.c:890 +#: plugins/sudoers/sudoers.c:894 #, c-format msgid "internal error, set_cmnd() overflow" msgstr "внутрішня помилка, переповнення set_cmnd()" -#: plugins/sudoers/sudoers.c:935 +#: plugins/sudoers/sudoers.c:936 #, c-format msgid "fixed mode on %s" msgstr "виправлено режим на %s" -#: plugins/sudoers/sudoers.c:939 +#: plugins/sudoers/sudoers.c:940 #, c-format msgid "set group on %s" msgstr "встановлено групу у %s" -#: plugins/sudoers/sudoers.c:942 +#: plugins/sudoers/sudoers.c:943 #, c-format msgid "unable to set group on %s" msgstr "не вдалося встановити групу на %s" -#: plugins/sudoers/sudoers.c:945 +#: plugins/sudoers/sudoers.c:946 #, c-format msgid "unable to fix mode on %s" msgstr "не вдалося виправити режим на %s" -#: plugins/sudoers/sudoers.c:958 +#: plugins/sudoers/sudoers.c:959 #, c-format msgid "%s is not a regular file" msgstr "%s не є звичайним файлом" -#: plugins/sudoers/sudoers.c:960 +#: plugins/sudoers/sudoers.c:961 #, c-format msgid "%s is mode 0%o, should be 0%o" msgstr "%s має режим доступу 0%o, має бути 0%o" -#: plugins/sudoers/sudoers.c:964 +#: plugins/sudoers/sudoers.c:965 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s належить uid %u, має належати %u" -#: plugins/sudoers/sudoers.c:967 +#: plugins/sudoers/sudoers.c:968 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s належить gid %u, має належати %u" -#: plugins/sudoers/sudoers.c:1011 +#: plugins/sudoers/sudoers.c:1012 #, c-format msgid "only root can use `-c %s'" msgstr "використовувати «-c %s» може лише root" -#: plugins/sudoers/sudoers.c:1021 +#: plugins/sudoers/sudoers.c:1022 #, c-format msgid "unknown login class: %s" msgstr "невідомий клас входу: %s" -#: plugins/sudoers/sudoers.c:1055 +#: plugins/sudoers/sudoers.c:1056 #, c-format msgid "unable to resolve host %s" msgstr "не вдалося визначити адресу вузла %s" -#: plugins/sudoers/sudoers.c:1105 plugins/sudoers/testsudoers.c:342 +#: plugins/sudoers/sudoers.c:1106 plugins/sudoers/testsudoers.c:351 #, c-format msgid "unknown group: %s" msgstr "невідома група: %s" -#: plugins/sudoers/sudoers.c:1137 +#: plugins/sudoers/sudoers.c:1150 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Додаток правил sudoers версії %s\n" -#: plugins/sudoers/sudoers.c:1139 +#: plugins/sudoers/sudoers.c:1152 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Граматична перевірка файла sudoers версії %d\n" -#: plugins/sudoers/sudoers.c:1143 +#: plugins/sudoers/sudoers.c:1156 #, c-format msgid "" "\n" @@ -1120,17 +1102,17 @@ msgstr "" "\n" "Шлях до sudoers: %s\n" -#: plugins/sudoers/sudoers.c:1146 +#: plugins/sudoers/sudoers.c:1159 #, c-format msgid "nsswitch path: %s\n" msgstr "Шлях до nsswitch: %s\n" -#: plugins/sudoers/sudoers.c:1148 +#: plugins/sudoers/sudoers.c:1161 #, c-format msgid "ldap.conf path: %s\n" msgstr "Шлях до ldap.conf: %s\n" -#: plugins/sudoers/sudoers.c:1149 +#: plugins/sudoers/sudoers.c:1162 #, c-format msgid "ldap.secret path: %s\n" msgstr "Шлях до ldap.secret: %s\n" @@ -1291,16 +1273,16 @@ msgstr "" " -s коеф_швидк коефіцієнт прискорення або сповільнення виводу даних\n" " -V показати дані щодо версії і завершити роботу" -#: plugins/sudoers/testsudoers.c:228 +#: plugins/sudoers/testsudoers.c:230 #, c-format msgid "internal error, init_vars() overflow" msgstr "внутрішня помилка, переповнення init_vars()" -#: plugins/sudoers/testsudoers.c:304 +#: plugins/sudoers/testsudoers.c:309 msgid "\thost unmatched" msgstr "\tвідповідника вузла не знайдено" -#: plugins/sudoers/testsudoers.c:307 +#: plugins/sudoers/testsudoers.c:312 msgid "" "\n" "Command allowed" @@ -1308,7 +1290,7 @@ msgstr "" "\n" "Команду дозволено" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command denied" @@ -1316,7 +1298,7 @@ msgstr "" "\n" "Команду заборонено" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command unmatched" @@ -1347,81 +1329,81 @@ msgstr "Граматична перевірка %s, версія %d\n" msgid "you do not exist in the %s database" msgstr "вас немає у базі даних %s" -#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:470 +#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:518 #, c-format msgid "press return to edit %s: " msgstr "натисніть Enter для редагування %s: " -#: plugins/sudoers/visudo.c:300 plugins/sudoers/visudo.c:306 +#: plugins/sudoers/visudo.c:320 plugins/sudoers/visudo.c:326 #, c-format msgid "write error" msgstr "помилка запису" -#: plugins/sudoers/visudo.c:360 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "не вдалося обробити stat файл тимчасових даних (%s), %s не змінено" -#: plugins/sudoers/visudo.c:365 +#: plugins/sudoers/visudo.c:413 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "файл тимчасових даних має нульовий об’єм (%s), %s не змінено" -#: plugins/sudoers/visudo.c:371 +#: plugins/sudoers/visudo.c:419 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "помилка редактора (%s), %s не змінено" -#: plugins/sudoers/visudo.c:394 +#: plugins/sudoers/visudo.c:442 #, c-format msgid "%s unchanged" msgstr "%s не змінено" -#: plugins/sudoers/visudo.c:418 +#: plugins/sudoers/visudo.c:466 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "не вдалося повторно відкрити файл тимчасових даних (%s), %s не змінено." -#: plugins/sudoers/visudo.c:428 +#: plugins/sudoers/visudo.c:476 #, c-format msgid "unabled to parse temporary file (%s), unknown error" msgstr "не вдалося обробити файл тимчасових даних (%s), невідома помилка" -#: plugins/sudoers/visudo.c:463 +#: plugins/sudoers/visudo.c:511 #, c-format msgid "internal error, unable to find %s in list!" msgstr "внутрішня помилка, не вдалося знайти %s у списку!" -#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:511 +#: plugins/sudoers/visudo.c:546 plugins/sudoers/visudo.c:555 #, c-format -msgid "unable to set (uid, gid) of %s to (%d, %d)" -msgstr "не вдалося встановити (uid, gid) %s у значення (%d, %d)" +msgid "unable to set (uid, gid) of %s to (%u, %u)" +msgstr "не вдалося встановити (uid, gid) %s у значення (%u, %u)" -#: plugins/sudoers/visudo.c:506 plugins/sudoers/visudo.c:516 +#: plugins/sudoers/visudo.c:550 plugins/sudoers/visudo.c:560 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "не вдалося змінити режим доступу до %s на значення 0%o" -#: plugins/sudoers/visudo.c:533 +#: plugins/sudoers/visudo.c:577 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s і %s не перебувають у одній файловій системі, використовуємо mv для перейменування" -#: plugins/sudoers/visudo.c:547 +#: plugins/sudoers/visudo.c:591 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "помилка команди: «%s %s %s», %s не змінено" -#: plugins/sudoers/visudo.c:557 +#: plugins/sudoers/visudo.c:601 #, c-format msgid "error renaming %s, %s unchanged" msgstr "помилка перейменування %s, %s не змінено" -#: plugins/sudoers/visudo.c:617 +#: plugins/sudoers/visudo.c:661 msgid "What now? " msgstr "А зараз що? " -#: plugins/sudoers/visudo.c:631 +#: plugins/sudoers/visudo.c:675 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -1433,92 +1415,92 @@ msgstr "" " (x) — вийти без внесення змін до файла sudoers\n" " (Q) — вийти зі збереженням файла sudoers (НЕБЕЗПЕЧНО!)\n" -#: plugins/sudoers/visudo.c:668 +#: plugins/sudoers/visudo.c:712 #, c-format msgid "unable to execute %s" msgstr "не вдалося виконати %s" -#: plugins/sudoers/visudo.c:675 +#: plugins/sudoers/visudo.c:719 #, c-format msgid "unable to run %s" msgstr "не вдалося виконати %s" -#: plugins/sudoers/visudo.c:706 +#: plugins/sudoers/visudo.c:750 #, c-format msgid "failed to parse %s file, unknown error" msgstr "не вдалося обробити файл %s, невідома помилка" -#: plugins/sudoers/visudo.c:718 +#: plugins/sudoers/visudo.c:762 #, c-format msgid "parse error in %s near line %d\n" msgstr "помилка обробки у %s поблизу рядка %d\n" -#: plugins/sudoers/visudo.c:721 +#: plugins/sudoers/visudo.c:765 #, c-format msgid "parse error in %s\n" msgstr "помилка обробки у %s\n" -#: plugins/sudoers/visudo.c:723 +#: plugins/sudoers/visudo.c:767 #, c-format msgid "%s: parsed OK\n" msgstr "%s: вдала обробка\n" -#: plugins/sudoers/visudo.c:737 +#: plugins/sudoers/visudo.c:776 #, c-format -msgid "%s: wrong owner (uid, gid) should be (%d, %d)\n" -msgstr "%s: помилковий власник (uid, gid), має бути (%d, %d)\n" +msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" +msgstr "%s: помилковий власник (uid, gid), має бути (%u, %u)\n" -#: plugins/sudoers/visudo.c:744 +#: plugins/sudoers/visudo.c:783 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s: помилкові права доступу, режим доступу має бути 0%o\n" -#: plugins/sudoers/visudo.c:783 +#: plugins/sudoers/visudo.c:822 #, c-format msgid "%s busy, try again later" msgstr "%s зайнято, повторіть спробу пізніше" -#: plugins/sudoers/visudo.c:826 +#: plugins/sudoers/visudo.c:865 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "вказаного редактора (%s) не існує" -#: plugins/sudoers/visudo.c:849 +#: plugins/sudoers/visudo.c:888 #, c-format msgid "unable to stat editor (%s)" msgstr "не вдалося виконати stat для редактора (%s)" -#: plugins/sudoers/visudo.c:897 +#: plugins/sudoers/visudo.c:936 #, c-format msgid "no editor found (editor path = %s)" msgstr "не знайдено жодного редактора (шлях до редактора = %s)" -#: plugins/sudoers/visudo.c:986 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "Error: cycle in %s_Alias `%s'" msgstr "Помилка: цикл у %s_Alias «%s»" -#: plugins/sudoers/visudo.c:987 +#: plugins/sudoers/visudo.c:1026 #, c-format msgid "Warning: cycle in %s_Alias `%s'" msgstr "Попередження: цикл у %s_Alias «%s»" -#: plugins/sudoers/visudo.c:990 +#: plugins/sudoers/visudo.c:1029 #, c-format msgid "Error: %s_Alias `%s' referenced but not defined" msgstr "Помилка: виявлено посилання %s_Alias «%s», яке не визначено" -#: plugins/sudoers/visudo.c:991 +#: plugins/sudoers/visudo.c:1030 #, c-format msgid "Warning: %s_Alias `%s' referenced but not defined" msgstr "Попередження: виявлено посилання %s_Alias «%s», яке не визначено" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1167 #, c-format msgid "%s: unused %s_Alias %s" msgstr "%s: невикористаний %s_Alias %s" -#: plugins/sudoers/visudo.c:1185 +#: plugins/sudoers/visudo.c:1224 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -1527,7 +1509,7 @@ msgstr "" "%s — безпечне редагування файла sudoers\n" "\n" -#: plugins/sudoers/visudo.c:1187 +#: plugins/sudoers/visudo.c:1226 msgid "" "\n" "Options:\n" @@ -1732,6 +1714,19 @@ msgstr[3] "одна невдала спроба введення пароля" msgid "Authentication methods:" msgstr "Способи розпізнавання:" +#~ msgid "" +#~ "Available options in a sudoers ``Defaults'' line:\n" +#~ "\n" +#~ msgstr "" +#~ "Можливі параметри у рядку «Defaults» sudoers:\n" +#~ "\n" + +#~ msgid "%s: %s\n" +#~ msgstr "%s: %s\n" + +#~ msgid "%s: %.*s\n" +#~ msgstr "%s: %.*s\n" + #~ msgid "unable to get runas group vector" #~ msgstr "не вдалося отримати вектор групи виконання" diff --git a/plugins/sudoers/po/zh_CN.mo b/plugins/sudoers/po/zh_CN.mo index a569b80..daa4ad4 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 55b7206..69be1fe 100644 --- a/plugins/sudoers/po/zh_CN.po +++ b/plugins/sudoers/po/zh_CN.po @@ -4,10 +4,10 @@ # msgid "" msgstr "" -"Project-Id-Version: sudoers 1.8.2-rc8\n" +"Project-Id-Version: sudoers 1.8.3rc1\n" "Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" -"POT-Creation-Date: 2011-07-27 14:21-0400\n" -"PO-Revision-Date: 2011-07-28 19:21+0800\n" +"POT-Creation-Date: 2011-09-16 16:52-0400\n" +"PO-Revision-Date: 2011-09-18 10:01+0800\n" "Last-Translator: Wylmer Wang \n" "Language-Team: Chinese (simplified) \n" "Language: \n" @@ -69,9 +69,9 @@ msgid "sorry, a password is required to run %s" msgstr "抱歉,执行 %s 需要密码" #: plugins/sudoers/check.c:225 plugins/sudoers/iolog.c:169 -#: plugins/sudoers/sudoers.c:953 plugins/sudoers/sudoreplay.c:325 +#: plugins/sudoers/sudoers.c:971 plugins/sudoers/sudoreplay.c:325 #: plugins/sudoers/sudoreplay.c:334 plugins/sudoers/sudoreplay.c:675 -#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:700 +#: plugins/sudoers/sudoreplay.c:767 plugins/sudoers/visudo.c:744 #, c-format msgid "unable to open %s" msgstr "无法打开 %s" @@ -116,8 +116,8 @@ msgid "%s writable by non-owner (0%o), should be mode 0700" msgstr "%s 对非所有者可写(0%o),模式应该为 0700" #: plugins/sudoers/check.c:470 plugins/sudoers/check.c:514 -#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:939 -#: plugins/sudoers/visudo.c:284 plugins/sudoers/visudo.c:500 +#: plugins/sudoers/check.c:582 plugins/sudoers/sudoers.c:957 +#: plugins/sudoers/visudo.c:304 plugins/sudoers/visudo.c:544 #, c-format msgid "unable to stat %s" msgstr "无法 stat %s" @@ -142,20 +142,20 @@ msgstr "时间戳太超前:%20.20s" msgid "unable to remove %s (%s), will reset to the epoch" msgstr "无法移除 %s (%s),将重设为戳记" -#: plugins/sudoers/check.c:659 +#: plugins/sudoers/check.c:660 #, c-format msgid "unable to reset %s to the epoch" msgstr "无法将 %s 重设为戳记" -#: plugins/sudoers/check.c:713 plugins/sudoers/check.c:719 +#: plugins/sudoers/check.c:714 plugins/sudoers/check.c:720 #, c-format msgid "unknown uid: %u" msgstr "未知的用户 ID:%u" -#: plugins/sudoers/check.c:716 plugins/sudoers/sudoers.c:747 -#: plugins/sudoers/sudoers.c:813 plugins/sudoers/sudoers.c:814 -#: plugins/sudoers/sudoers.c:1070 plugins/sudoers/testsudoers.c:200 -#: plugins/sudoers/testsudoers.c:330 +#: plugins/sudoers/check.c:717 plugins/sudoers/sudoers.c:748 +#: plugins/sudoers/sudoers.c:814 plugins/sudoers/sudoers.c:815 +#: plugins/sudoers/sudoers.c:1088 plugins/sudoers/testsudoers.c:202 +#: plugins/sudoers/testsudoers.c:337 #, c-format msgid "unknown user: %s" msgstr "未知用户:%s" @@ -403,12 +403,11 @@ msgid "When to require a password for 'verify' pseudocommand: %s" msgstr "何时为“verify”伪命令请求密码:%s" #: plugins/sudoers/def_data.c:243 -#, fuzzy msgid "Preload the dummy exec functions contained in 'noexec_file'" msgstr "预加载“noexec_file”中包含的哑 exec 函数" #: plugins/sudoers/def_data.c:247 -#, fuzzy, c-format +#, c-format msgid "File containing dummy exec functions: %s" msgstr "含有哑 exec 函数的文件:%s" @@ -517,53 +516,35 @@ msgstr "在分配伪终端时向 utmp/utmpx 文件中添加一条记录" msgid "Set the user in utmp to the runas user, not the invoking user" msgstr "将 utmp 中的用户设为 runas 用户,而不是调用用户" -#: plugins/sudoers/defaults.c:197 -msgid "" -"Available options in a sudoers ``Defaults'' line:\n" -"\n" -msgstr "" -"sudoers 中“Defaults”行中的可用选项:\n" -"\n" - -#: plugins/sudoers/defaults.c:204 plugins/sudoers/defaults.c:215 -#, c-format -msgid "%s: %s\n" -msgstr "%s:%s\n" - -#: plugins/sudoers/defaults.c:211 -#, c-format -msgid "%s: %.*s\n" -msgstr "%s:%.*s\n" - -#: plugins/sudoers/defaults.c:241 +#: plugins/sudoers/defaults.c:205 #, c-format msgid "unknown defaults entry `%s'" msgstr "未知的默认条目“%s”" -#: plugins/sudoers/defaults.c:249 plugins/sudoers/defaults.c:259 -#: plugins/sudoers/defaults.c:279 plugins/sudoers/defaults.c:292 -#: plugins/sudoers/defaults.c:305 plugins/sudoers/defaults.c:318 -#: plugins/sudoers/defaults.c:331 plugins/sudoers/defaults.c:351 -#: plugins/sudoers/defaults.c:361 +#: plugins/sudoers/defaults.c:213 plugins/sudoers/defaults.c:223 +#: plugins/sudoers/defaults.c:243 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 #, c-format msgid "value `%s' is invalid for option `%s'" msgstr "值“%s”对选项“%s”无效" -#: plugins/sudoers/defaults.c:252 plugins/sudoers/defaults.c:262 -#: plugins/sudoers/defaults.c:270 plugins/sudoers/defaults.c:287 -#: plugins/sudoers/defaults.c:300 plugins/sudoers/defaults.c:313 -#: plugins/sudoers/defaults.c:326 plugins/sudoers/defaults.c:346 -#: plugins/sudoers/defaults.c:357 +#: plugins/sudoers/defaults.c:216 plugins/sudoers/defaults.c:226 +#: plugins/sudoers/defaults.c:234 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 #, c-format msgid "no value specified for `%s'" msgstr "没有给“%s”指定值" -#: plugins/sudoers/defaults.c:275 +#: plugins/sudoers/defaults.c:239 #, c-format msgid "values for `%s' must start with a '/'" msgstr "“%s”的值必须以“/”开头" -#: plugins/sudoers/defaults.c:337 +#: plugins/sudoers/defaults.c:301 #, c-format msgid "option `%s' does not take a value" msgstr "“%s”选项不带值" @@ -585,7 +566,7 @@ msgstr "对不起,您无权设置以下环境变量:%s" #: plugins/sudoers/find_path.c:68 plugins/sudoers/find_path.c:107 #: plugins/sudoers/find_path.c:122 plugins/sudoers/iolog.c:124 -#: plugins/sudoers/sudoers.c:882 toke.l:663 toke.l:814 +#: plugins/sudoers/sudoers.c:903 toke.l:663 toke.l:814 #, c-format msgid "%s: %s" msgstr "%s:%s" @@ -595,32 +576,32 @@ msgstr "%s:%s" msgid ">>> %s: %s near line %d <<<" msgstr ">>> %s:%s 在行 %d 附近<<<" -#: plugins/sudoers/group_plugin.c:91 +#: plugins/sudoers/group_plugin.c:90 #, c-format msgid "%s%s: %s" msgstr "%s%s:%s" -#: plugins/sudoers/group_plugin.c:103 +#: plugins/sudoers/group_plugin.c:102 #, c-format msgid "%s must be owned by uid %d" msgstr "%s 必须属于用户 ID %d" -#: plugins/sudoers/group_plugin.c:107 +#: plugins/sudoers/group_plugin.c:106 #, c-format msgid "%s must only be writable by owner" msgstr "%s 必须只对所有者可写" -#: plugins/sudoers/group_plugin.c:114 +#: plugins/sudoers/group_plugin.c:113 #, c-format msgid "unable to dlopen %s: %s" msgstr "无法执行 dlopen %s:%s" -#: plugins/sudoers/group_plugin.c:119 +#: plugins/sudoers/group_plugin.c:118 #, c-format msgid "unable to find symbol \"group_plugin\" in %s" msgstr "无法在 %s 中找到符号“group_plugin”" -#: plugins/sudoers/group_plugin.c:124 +#: plugins/sudoers/group_plugin.c:123 #, c-format msgid "%s: incompatible group plugin major version %d, expected %d" msgstr "%s:不兼容的组插件主版本号 %d,应为 %d" @@ -629,7 +610,7 @@ msgstr "%s:不兼容的组插件主版本号 %d,应为 %d" msgid "Local IP address and netmask pairs:\n" msgstr "本地 IP 地址和网络掩码对:\n" -#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:960 +#: plugins/sudoers/iolog.c:176 plugins/sudoers/sudoers.c:978 #, c-format msgid "unable to read %s" msgstr "无法读取 %s" @@ -648,72 +629,72 @@ msgstr "无效的序列号:%s" msgid "unable to create %s" msgstr "无法创建 %s" -#: plugins/sudoers/iolog_path.c:245 plugins/sudoers/sudoers.c:356 +#: plugins/sudoers/iolog_path.c:247 plugins/sudoers/sudoers.c:357 #, c-format msgid "unable to set locale to \"%s\", using \"C\"" msgstr "无法将区域设置为“%s”,将使用“C”" -#: plugins/sudoers/ldap.c:363 +#: plugins/sudoers/ldap.c:368 #, c-format msgid "sudo_ldap_conf_add_ports: port too large" msgstr "sudo_ldap_conf_add_ports:端口太大" -#: plugins/sudoers/ldap.c:386 +#: plugins/sudoers/ldap.c:391 #, c-format msgid "sudo_ldap_conf_add_ports: out of space expanding hostbuf" msgstr "sudo_ldap_conf_add_ports:扩展主机缓存时空间不足" -#: plugins/sudoers/ldap.c:415 +#: plugins/sudoers/ldap.c:420 #, c-format msgid "unsupported LDAP uri type: %s" msgstr "不支持的 LDAP URI 类型:%s" -#: plugins/sudoers/ldap.c:444 +#: plugins/sudoers/ldap.c:449 #, c-format msgid "invalid uri: %s" msgstr "无效的 URI:%s" -#: plugins/sudoers/ldap.c:450 +#: plugins/sudoers/ldap.c:455 #, c-format msgid "unable to mix ldap and ldaps URIs" msgstr "无法混合 ldap 和 ldaps URI" -#: plugins/sudoers/ldap.c:454 +#: plugins/sudoers/ldap.c:459 #, c-format msgid "unable to mix ldaps and starttls" msgstr "无法混合 ldaps 和 starttls" -#: plugins/sudoers/ldap.c:473 +#: plugins/sudoers/ldap.c:478 #, c-format msgid "sudo_ldap_parse_uri: out of space building hostbuf" msgstr "sudo_ldap_parse_uri:构建主机缓存时空间不足" -#: plugins/sudoers/ldap.c:536 +#: plugins/sudoers/ldap.c:541 #, c-format msgid "unable to initialize SSL cert and key db: %s" msgstr "无法初始化 SSL 证书和密钥数据库:%s" -#: plugins/sudoers/ldap.c:932 +#: plugins/sudoers/ldap.c:937 #, c-format msgid "unable to get GMT time" msgstr "无法获取 GMT 时间" -#: plugins/sudoers/ldap.c:938 +#: plugins/sudoers/ldap.c:943 #, c-format msgid "unable to format timestamp" msgstr "无法格式化时间戳" -#: plugins/sudoers/ldap.c:946 +#: plugins/sudoers/ldap.c:951 #, c-format msgid "unable to build time filter" msgstr "无法构建时间过滤器" -#: plugins/sudoers/ldap.c:1047 +#: plugins/sudoers/ldap.c:1052 #, c-format msgid "sudo_ldap_build_pass1 allocation mismatch" msgstr "sudo_ldap_build_pass1 分配不匹配" -#: plugins/sudoers/ldap.c:1542 +#: plugins/sudoers/ldap.c:1562 #, c-format msgid "" "\n" @@ -722,7 +703,7 @@ msgstr "" "\n" "LDAP 角色:%s\n" -#: plugins/sudoers/ldap.c:1544 +#: plugins/sudoers/ldap.c:1564 #, c-format msgid "" "\n" @@ -731,27 +712,27 @@ msgstr "" "\n" "LDAP 角色:未知\n" -#: plugins/sudoers/ldap.c:1591 +#: plugins/sudoers/ldap.c:1611 #, c-format msgid " Order: %s\n" msgstr " 顺序:%s\n" -#: plugins/sudoers/ldap.c:1599 +#: plugins/sudoers/ldap.c:1619 #, c-format msgid " Commands:\n" msgstr " 命令:\n" -#: plugins/sudoers/ldap.c:1986 +#: plugins/sudoers/ldap.c:2006 #, c-format msgid "unable to initialize LDAP: %s" msgstr "无法初始化 LDAP:%s" -#: plugins/sudoers/ldap.c:2017 +#: plugins/sudoers/ldap.c:2037 #, c-format 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:2248 +#: plugins/sudoers/ldap.c:2268 #, c-format msgid "invalid sudoOrder attribute: %s" msgstr "无效的 sudoOrder 属性:%s" @@ -848,7 +829,7 @@ msgstr "内部错误:没有足够的空间存放日志行" msgid "parse error in %s near line %d" msgstr "%s 中第 %d 行附近有解析错误" -#: plugins/sudoers/parse.c:369 +#: plugins/sudoers/parse.c:371 #, c-format msgid "" "\n" @@ -857,17 +838,17 @@ msgstr "" "\n" "Sudoers 条目:\n" -#: plugins/sudoers/parse.c:371 +#: plugins/sudoers/parse.c:373 #, c-format msgid " RunAsUsers: " msgstr " RunAs 用户:" -#: plugins/sudoers/parse.c:386 +#: plugins/sudoers/parse.c:388 #, c-format msgid " RunAsGroups: " msgstr " RunAs 组:" -#: plugins/sudoers/parse.c:395 +#: plugins/sudoers/parse.c:397 #, c-format msgid "" " Commands:\n" @@ -910,33 +891,40 @@ msgstr "无法缓存组 ID %u,已存在" msgid "unable to cache group %s, already exists" msgstr "无法缓存组 %s,已存在" -#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:350 -#: plugins/sudoers/set_perms.c:577 plugins/sudoers/set_perms.c:806 +#: plugins/sudoers/set_perms.c:109 plugins/sudoers/set_perms.c:358 +#: plugins/sudoers/set_perms.c:590 plugins/sudoers/set_perms.c:824 +#, fuzzy msgid "perm stack overflow" -msgstr "" +msgstr "perm 堆栈上溢" -#: plugins/sudoers/set_perms.c:218 plugins/sudoers/set_perms.c:445 -#: plugins/sudoers/set_perms.c:677 +#: plugins/sudoers/set_perms.c:117 plugins/sudoers/set_perms.c:366 +#: plugins/sudoers/set_perms.c:598 plugins/sudoers/set_perms.c:832 +#, fuzzy +msgid "perm stack underflow" +msgstr "perm 堆栈下溢" + +#: plugins/sudoers/set_perms.c:223 plugins/sudoers/set_perms.c:458 +#: plugins/sudoers/set_perms.c:695 msgid "unable to change to runas gid" msgstr "无法切换为 runas 组 ID" -#: plugins/sudoers/set_perms.c:226 plugins/sudoers/set_perms.c:452 -#: plugins/sudoers/set_perms.c:684 +#: plugins/sudoers/set_perms.c:231 plugins/sudoers/set_perms.c:465 +#: plugins/sudoers/set_perms.c:702 msgid "unable to change to runas uid" msgstr "无法切换为 runas 用户 ID" -#: plugins/sudoers/set_perms.c:240 plugins/sudoers/set_perms.c:465 -#: plugins/sudoers/set_perms.c:697 +#: plugins/sudoers/set_perms.c:245 plugins/sudoers/set_perms.c:478 +#: plugins/sudoers/set_perms.c:715 #, c-format msgid "unable to change to sudoers gid" msgstr "无法切换为 sudoers 组 ID" -#: plugins/sudoers/set_perms.c:281 plugins/sudoers/set_perms.c:503 -#: plugins/sudoers/set_perms.c:735 plugins/sudoers/set_perms.c:870 +#: plugins/sudoers/set_perms.c:286 plugins/sudoers/set_perms.c:516 +#: plugins/sudoers/set_perms.c:753 plugins/sudoers/set_perms.c:893 msgid "too many processes" msgstr "进程过多" -#: plugins/sudoers/set_perms.c:932 +#: plugins/sudoers/set_perms.c:955 msgid "unable to set runas group vector" msgstr "无法设置 runas 组向量" @@ -960,57 +948,57 @@ msgstr "用户 %s 可以在该主机上运行以下命令:\n" msgid "User %s is not allowed to run sudo on %s.\n" msgstr "用户 %s 无权在 %s 上运行 sudo。\n" -#: plugins/sudoers/sudoers.c:198 plugins/sudoers/sudoers.c:233 -#: plugins/sudoers/sudoers.c:890 +#: plugins/sudoers/sudoers.c:199 plugins/sudoers/sudoers.c:234 +#: plugins/sudoers/sudoers.c:911 msgid "problem with defaults entries" msgstr "默认条目有问题" -#: plugins/sudoers/sudoers.c:202 +#: plugins/sudoers/sudoers.c:203 #, c-format msgid "no valid sudoers sources found, quitting" msgstr "没有找到有效的 sudoers 资源,退出" -#: plugins/sudoers/sudoers.c:256 +#: plugins/sudoers/sudoers.c:257 #, c-format msgid "unable to execute %s: %s" msgstr "无法执行 %s:%s" -#: plugins/sudoers/sudoers.c:305 +#: plugins/sudoers/sudoers.c:306 #, c-format msgid "sudoers specifies that root is not allowed to sudo" msgstr "sudoers 指定 root 不允许执行 sudo" -#: plugins/sudoers/sudoers.c:312 +#: plugins/sudoers/sudoers.c:313 #, c-format msgid "you are not permitted to use the -C option" msgstr "您无权使用 -C 选项" -#: plugins/sudoers/sudoers.c:402 +#: plugins/sudoers/sudoers.c:403 #, c-format msgid "timestamp owner (%s): No such user" msgstr "时间戳所有者(%s):无此用户" -#: plugins/sudoers/sudoers.c:418 +#: plugins/sudoers/sudoers.c:419 msgid "no tty" msgstr "无终端" -#: plugins/sudoers/sudoers.c:419 +#: plugins/sudoers/sudoers.c:420 #, c-format msgid "sorry, you must have a tty to run sudo" msgstr "抱歉,您必须拥有一个终端来执行 sudo" -#: plugins/sudoers/sudoers.c:462 +#: plugins/sudoers/sudoers.c:463 msgid "No user or host" msgstr "无用户或主机" -#: plugins/sudoers/sudoers.c:476 plugins/sudoers/sudoers.c:497 -#: plugins/sudoers/sudoers.c:498 plugins/sudoers/sudoers.c:1435 -#: plugins/sudoers/sudoers.c:1436 +#: plugins/sudoers/sudoers.c:477 plugins/sudoers/sudoers.c:498 +#: plugins/sudoers/sudoers.c:499 plugins/sudoers/sudoers.c:1465 +#: plugins/sudoers/sudoers.c:1466 #, c-format msgid "%s: command not found" msgstr "%s:找不到命令" -#: plugins/sudoers/sudoers.c:478 plugins/sudoers/sudoers.c:494 +#: plugins/sudoers/sudoers.c:479 plugins/sudoers/sudoers.c:495 #, c-format msgid "" "ignoring `%s' found in '.'\n" @@ -1019,95 +1007,95 @@ msgstr "" "忽略在“.”中找到的“%s”\n" "请使用“sudo ./%s”,如果这是您想运行的“%s”。" -#: plugins/sudoers/sudoers.c:483 +#: plugins/sudoers/sudoers.c:484 msgid "validation failure" msgstr "校验失败" -#: plugins/sudoers/sudoers.c:493 +#: plugins/sudoers/sudoers.c:494 msgid "command in current directory" msgstr "当前目录中的命令" -#: plugins/sudoers/sudoers.c:505 +#: plugins/sudoers/sudoers.c:506 #, c-format msgid "sorry, you are not allowed to preserve the environment" msgstr "抱歉,您无权保留环境" -#: plugins/sudoers/sudoers.c:874 +#: plugins/sudoers/sudoers.c:894 #, c-format msgid "internal error, set_cmnd() overflow" msgstr "内部错误:set_cmnd() 溢出" -#: plugins/sudoers/sudoers.c:918 +#: plugins/sudoers/sudoers.c:936 #, fuzzy, c-format msgid "fixed mode on %s" msgstr "对 %s 修正了模式" -#: plugins/sudoers/sudoers.c:922 +#: plugins/sudoers/sudoers.c:940 #, c-format msgid "set group on %s" msgstr "对 %s 设置组" -#: plugins/sudoers/sudoers.c:925 +#: plugins/sudoers/sudoers.c:943 #, c-format msgid "unable to set group on %s" msgstr "无法对 %s 设置组" -#: plugins/sudoers/sudoers.c:928 +#: plugins/sudoers/sudoers.c:946 #, c-format msgid "unable to fix mode on %s" msgstr "无法对 %s 修正模式" -#: plugins/sudoers/sudoers.c:941 +#: plugins/sudoers/sudoers.c:959 #, c-format msgid "%s is not a regular file" msgstr "%s 不是常规文件" -#: plugins/sudoers/sudoers.c:943 +#: plugins/sudoers/sudoers.c:961 #, c-format msgid "%s is mode 0%o, should be 0%o" msgstr "%s 的模式为 0%o,应为 0%o" -#: plugins/sudoers/sudoers.c:947 +#: plugins/sudoers/sudoers.c:965 #, c-format msgid "%s is owned by uid %u, should be %u" msgstr "%s 属于用户 ID %u,应为 %u" -#: plugins/sudoers/sudoers.c:950 +#: plugins/sudoers/sudoers.c:968 #, c-format msgid "%s is owned by gid %u, should be %u" msgstr "%s 属于组 ID %u,应为 %u" -#: plugins/sudoers/sudoers.c:994 +#: plugins/sudoers/sudoers.c:1012 #, c-format msgid "only root can use `-c %s'" msgstr "只有 root 才能使用“-c %s”" -#: plugins/sudoers/sudoers.c:1004 +#: plugins/sudoers/sudoers.c:1022 #, c-format msgid "unknown login class: %s" msgstr "未知的登录类别:%s" -#: plugins/sudoers/sudoers.c:1038 +#: plugins/sudoers/sudoers.c:1056 #, c-format msgid "unable to resolve host %s" msgstr "无法解析主机:%s" -#: plugins/sudoers/sudoers.c:1088 plugins/sudoers/testsudoers.c:342 +#: plugins/sudoers/sudoers.c:1106 plugins/sudoers/testsudoers.c:351 #, c-format msgid "unknown group: %s" msgstr "未知组:%s" -#: plugins/sudoers/sudoers.c:1120 +#: plugins/sudoers/sudoers.c:1150 #, c-format msgid "Sudoers policy plugin version %s\n" msgstr "Sudoers 策略插件版本 %s\n" -#: plugins/sudoers/sudoers.c:1122 +#: plugins/sudoers/sudoers.c:1152 #, c-format msgid "Sudoers file grammar version %d\n" msgstr "Sudoers 文件语法版本 %d\n" -#: plugins/sudoers/sudoers.c:1126 +#: plugins/sudoers/sudoers.c:1156 #, c-format msgid "" "\n" @@ -1116,17 +1104,17 @@ msgstr "" "\n" "Sudoers 路径:%s\n" -#: plugins/sudoers/sudoers.c:1129 +#: plugins/sudoers/sudoers.c:1159 #, c-format msgid "nsswitch path: %s\n" msgstr "nsswitch 路径:%s\n" -#: plugins/sudoers/sudoers.c:1131 +#: plugins/sudoers/sudoers.c:1161 #, c-format msgid "ldap.conf path: %s\n" msgstr "ldap.conf 路径:%s\n" -#: plugins/sudoers/sudoers.c:1132 +#: plugins/sudoers/sudoers.c:1162 #, c-format msgid "ldap.secret path: %s\n" msgstr "ldap.secret 路径:%s\n" @@ -1287,16 +1275,16 @@ msgstr "" " -s 速度系数 加速或减慢输出\n" " -V 显示版本信息并退出" -#: plugins/sudoers/testsudoers.c:228 +#: plugins/sudoers/testsudoers.c:230 #, c-format msgid "internal error, init_vars() overflow" msgstr "内部错误,init_vars() 溢出" -#: plugins/sudoers/testsudoers.c:304 +#: plugins/sudoers/testsudoers.c:309 msgid "\thost unmatched" msgstr "\t主机不匹配" -#: plugins/sudoers/testsudoers.c:307 +#: plugins/sudoers/testsudoers.c:312 msgid "" "\n" "Command allowed" @@ -1304,7 +1292,7 @@ msgstr "" "\n" "命令允许" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command denied" @@ -1312,7 +1300,7 @@ msgstr "" "\n" "命令被拒" -#: plugins/sudoers/testsudoers.c:308 +#: plugins/sudoers/testsudoers.c:313 msgid "" "\n" "Command unmatched" @@ -1326,7 +1314,6 @@ msgid "unable to allocate memory" msgstr "无法分配内存" #: toke.l:786 -#, fuzzy msgid "too many levels of includes" msgstr "include 嵌套层数过多" @@ -1344,81 +1331,81 @@ msgstr "%s 语法版本 %d\n" msgid "you do not exist in the %s database" msgstr "%s 数据库中没有您" -#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:470 +#: plugins/sudoers/visudo.c:238 plugins/sudoers/visudo.c:518 #, c-format msgid "press return to edit %s: " msgstr "按回车键编辑 %s:" -#: plugins/sudoers/visudo.c:300 plugins/sudoers/visudo.c:306 +#: plugins/sudoers/visudo.c:320 plugins/sudoers/visudo.c:326 #, c-format msgid "write error" msgstr "写错误" -#: plugins/sudoers/visudo.c:360 +#: plugins/sudoers/visudo.c:408 #, c-format msgid "unable to stat temporary file (%s), %s unchanged" msgstr "无法 stat 临时文件(%s),%s 未更改" -#: plugins/sudoers/visudo.c:365 +#: plugins/sudoers/visudo.c:413 #, c-format msgid "zero length temporary file (%s), %s unchanged" msgstr "零长度的临时文件(%s),%s 未更改" -#: plugins/sudoers/visudo.c:371 +#: plugins/sudoers/visudo.c:419 #, c-format msgid "editor (%s) failed, %s unchanged" msgstr "编辑器(%s)失败,%s 未更改" -#: plugins/sudoers/visudo.c:394 +#: plugins/sudoers/visudo.c:442 #, c-format msgid "%s unchanged" msgstr "%s 未更改" -#: plugins/sudoers/visudo.c:418 +#: plugins/sudoers/visudo.c:466 #, c-format msgid "unable to re-open temporary file (%s), %s unchanged." msgstr "无法重新打开临时文件(%s),%s 未更改" -#: plugins/sudoers/visudo.c:428 +#: plugins/sudoers/visudo.c:476 #, c-format msgid "unabled to parse temporary file (%s), unknown error" msgstr "无法解析临时文件(%s),未知错误" -#: plugins/sudoers/visudo.c:463 +#: plugins/sudoers/visudo.c:511 #, c-format msgid "internal error, unable to find %s in list!" msgstr "内部错误,在列表中找不到 %s!" -#: plugins/sudoers/visudo.c:502 plugins/sudoers/visudo.c:511 +#: plugins/sudoers/visudo.c:546 plugins/sudoers/visudo.c:555 #, c-format -msgid "unable to set (uid, gid) of %s to (%d, %d)" -msgstr "无法将 %s 的 (uid, gid) 设为 (%d, %d)" +msgid "unable to set (uid, gid) of %s to (%u, %u)" +msgstr "无法将 %s 的 (uid, gid) 设为 (%u, %u)" -#: plugins/sudoers/visudo.c:506 plugins/sudoers/visudo.c:516 +#: plugins/sudoers/visudo.c:550 plugins/sudoers/visudo.c:560 #, c-format msgid "unable to change mode of %s to 0%o" msgstr "无法将 %s 的模式更改为 0%o" -#: plugins/sudoers/visudo.c:533 +#: plugins/sudoers/visudo.c:577 #, c-format msgid "%s and %s not on the same file system, using mv to rename" msgstr "%s 和 %s 不在同一个文件系统,使用 mv 进行重命名" -#: plugins/sudoers/visudo.c:547 +#: plugins/sudoers/visudo.c:591 #, c-format msgid "command failed: '%s %s %s', %s unchanged" msgstr "命令失败:“%s %s %s”,%s 未更改" -#: plugins/sudoers/visudo.c:557 +#: plugins/sudoers/visudo.c:601 #, c-format msgid "error renaming %s, %s unchanged" msgstr "重命名 %s 出错,%s 未更改" -#: plugins/sudoers/visudo.c:617 +#: plugins/sudoers/visudo.c:661 msgid "What now? " msgstr "现在做什么?" -#: plugins/sudoers/visudo.c:631 +#: plugins/sudoers/visudo.c:675 msgid "" "Options are:\n" " (e)dit sudoers file again\n" @@ -1430,92 +1417,92 @@ msgstr "" " 退出,不保存对 sudoers 文件的更改(x)\n" " 退出并将更改保存到 sudoers 文件(危险!)(Q)\n" -#: plugins/sudoers/visudo.c:668 +#: plugins/sudoers/visudo.c:712 #, c-format msgid "unable to execute %s" msgstr "无法执行 %s" -#: plugins/sudoers/visudo.c:675 +#: plugins/sudoers/visudo.c:719 #, c-format msgid "unable to run %s" msgstr "无法运行 %s" -#: plugins/sudoers/visudo.c:706 +#: plugins/sudoers/visudo.c:750 #, c-format msgid "failed to parse %s file, unknown error" msgstr "解析 %s 文件失败,未知错误" -#: plugins/sudoers/visudo.c:718 +#: plugins/sudoers/visudo.c:762 #, c-format msgid "parse error in %s near line %d\n" msgstr "%s 中第 %d 行附近出现解析错误\n" -#: plugins/sudoers/visudo.c:721 +#: plugins/sudoers/visudo.c:765 #, c-format msgid "parse error in %s\n" msgstr "%s 中出现解析错误\n" -#: plugins/sudoers/visudo.c:723 +#: plugins/sudoers/visudo.c:767 #, c-format msgid "%s: parsed OK\n" msgstr "%s:解析正确\n" -#: plugins/sudoers/visudo.c:737 +#: plugins/sudoers/visudo.c:776 #, c-format -msgid "%s: wrong owner (uid, gid) should be (%d, %d)\n" -msgstr "%s:错误的所有者(uid, gid),应为(%d, %d)\n" +msgid "%s: wrong owner (uid, gid) should be (%u, %u)\n" +msgstr "%s:错误的所有者(uid, gid),应为 (%u, %u)\n" -#: plugins/sudoers/visudo.c:744 +#: plugins/sudoers/visudo.c:783 #, c-format msgid "%s: bad permissions, should be mode 0%o\n" msgstr "%s:权限不正确,模式应该是 0%o\n" -#: plugins/sudoers/visudo.c:783 +#: plugins/sudoers/visudo.c:822 #, c-format msgid "%s busy, try again later" msgstr "%s 忙,请稍后重试" -#: plugins/sudoers/visudo.c:826 +#: plugins/sudoers/visudo.c:865 #, c-format msgid "specified editor (%s) doesn't exist" msgstr "指定的编辑器(%s)不存在" -#: plugins/sudoers/visudo.c:849 +#: plugins/sudoers/visudo.c:888 #, c-format msgid "unable to stat editor (%s)" msgstr "无法 stat 编辑器(%s)" -#: plugins/sudoers/visudo.c:897 +#: plugins/sudoers/visudo.c:936 #, c-format msgid "no editor found (editor path = %s)" msgstr "未找到编辑器(编辑器路径 = %s)" -#: plugins/sudoers/visudo.c:986 +#: plugins/sudoers/visudo.c:1025 #, c-format msgid "Error: cycle in %s_Alias `%s'" msgstr "错误:在 %s_Alias “%s”中循环" -#: plugins/sudoers/visudo.c:987 +#: plugins/sudoers/visudo.c:1026 #, c-format msgid "Warning: cycle in %s_Alias `%s'" msgstr "警告:在 %s_Alias “%s”中循环" -#: plugins/sudoers/visudo.c:990 +#: plugins/sudoers/visudo.c:1029 #, fuzzy, c-format msgid "Error: %s_Alias `%s' referenced but not defined" -msgstr "%s:引用了 %s_Alias “%s”但未定义" +msgstr "错误:引用了 %s_Alias “%s”但尚未定义" -#: plugins/sudoers/visudo.c:991 +#: plugins/sudoers/visudo.c:1030 #, fuzzy, c-format msgid "Warning: %s_Alias `%s' referenced but not defined" -msgstr "%s:引用了 %s_Alias “%s”但未定义" +msgstr "警告:引用了 %s_Alias “%s”但尚未定义" -#: plugins/sudoers/visudo.c:1128 +#: plugins/sudoers/visudo.c:1167 #, c-format msgid "%s: unused %s_Alias %s" msgstr "%s:未使用的 %s_Alias %s" -#: plugins/sudoers/visudo.c:1185 +#: plugins/sudoers/visudo.c:1224 #, c-format msgid "" "%s - safely edit the sudoers file\n" @@ -1524,7 +1511,7 @@ msgstr "" "%s - 安全地编辑 sudoers 文件\n" "\n" -#: plugins/sudoers/visudo.c:1187 +#: plugins/sudoers/visudo.c:1226 msgid "" "\n" "Options:\n" @@ -1622,7 +1609,7 @@ msgid "%s: unable to get host principal: %s" msgstr "" #: plugins/sudoers/auth/kerb5.c:299 -#, fuzzy, c-format +#, c-format msgid "%s: Cannot verify TGT! Possible attack!: %s" msgstr "%s:无法验证目标!可能遭到了攻击!:%s" @@ -1715,7 +1702,7 @@ msgstr "sudo 编译时没有加入任何认证方法!如果您想关闭认证 #: plugins/sudoers/auth/sudo_auth.c:134 #, fuzzy msgid "Invalid authentication methods compiled into sudo! You may mix standalone and non-standalone authentication." -msgstr "编译进 sudo 的认证方法无效!您可以混用独立和非独立认证。" +msgstr "编译进 sudo 的认证方法无效!您可能混用了独立和非独立认证。" #: plugins/sudoers/auth/sudo_auth.c:243 #, c-format @@ -1727,6 +1714,19 @@ msgstr[0] "%d 次错误密码尝试" msgid "Authentication methods:" msgstr "认证方法:" +#~ msgid "" +#~ "Available options in a sudoers ``Defaults'' line:\n" +#~ "\n" +#~ msgstr "" +#~ "sudoers 中“Defaults”行中的可用选项:\n" +#~ "\n" + +#~ msgid "%s: %s\n" +#~ msgstr "%s:%s\n" + +#~ msgid "%s: %.*s\n" +#~ msgstr "%s:%.*s\n" + #~ msgid "unable to get runas group vector" #~ msgstr "无法获取 runas 组向量" diff --git a/plugins/sudoers/pwutil.c b/plugins/sudoers/pwutil.c index b511472..aac3232 100644 --- a/plugins/sudoers/pwutil.c +++ b/plugins/sudoers/pwutil.c @@ -312,10 +312,10 @@ done: } /* - * Take a uid in string form "#123" and return a faked up passwd struct. + * Take a user, uid and gid and return a faked up passwd struct. */ struct passwd * -sudo_fakepwnam(const char *user, gid_t gid) +sudo_fakepwnamid(const char *user, uid_t uid, gid_t gid) { struct cache_item *item; struct passwd *pw; @@ -332,7 +332,7 @@ sudo_fakepwnam(const char *user, gid_t gid) item = emalloc(len); zero_bytes(item, sizeof(*item) + sizeof(*pw)); pw = (struct passwd *) ((char *)item + sizeof(*item)); - pw->pw_uid = (uid_t) atoi(user + 1); + pw->pw_uid = uid; pw->pw_gid = gid; pw->pw_name = (char *)pw + sizeof(struct passwd); memcpy(pw->pw_name, user, namelen + 1); @@ -367,6 +367,18 @@ sudo_fakepwnam(const char *user, gid_t gid) return pw; } +/* + * Take a uid in string form "#123" and return a faked up passwd struct. + */ +struct passwd * +sudo_fakepwnam(const char *user, gid_t gid) +{ + uid_t uid; + + uid = (uid_t) atoi(user + 1); + return sudo_fakepwnamid(user, uid, gid); +} + void sudo_setpwent(void) { @@ -474,12 +486,12 @@ make_gritem(const struct group *gr, const char *name) } #ifdef HAVE_UTMPX_H -# define GROUPNAME_LEN (sizeof((struct utmpx *)0)->ut_user) +# define GROUPNAME_LEN (sizeof((struct utmpx *)0)->ut_user + 1) #else # ifdef HAVE_STRUCT_UTMP_UT_USER -# define GROUPNAME_LEN (sizeof((struct utmp *)0)->ut_user) +# define GROUPNAME_LEN (sizeof((struct utmp *)0)->ut_user + 1) # else -# define GROUPNAME_LEN (sizeof((struct utmp *)0)->ut_name) +# define GROUPNAME_LEN (sizeof((struct utmp *)0)->ut_name + 1) # endif #endif /* HAVE_UTMPX_H */ @@ -491,11 +503,15 @@ static struct cache_item * make_grlist_item(const char *user, GETGROUPS_T *gids, int ngids) { char *cp; - size_t i, nsize, ngroups = 0, total, len; + size_t i, nsize, ngroups, total, len; struct cache_item *item; struct group_list *grlist; struct group *grp; +#ifdef HAVE_SETAUTHDB + aix_setauthdb((char *) user); +#endif + /* Allocate in one big chunk for easy freeing. */ nsize = strlen(user) + 1; total = sizeof(struct cache_item) + sizeof(struct group_list) + nsize; @@ -503,21 +519,22 @@ make_grlist_item(const char *user, GETGROUPS_T *gids, int ngids) total += sizeof(gid_t *) * ngids; total += GROUPNAME_LEN * ngids; +again: item = emalloc(total); cp = (char *) item + sizeof(struct cache_item); /* * Copy in group list and make pointers relative to space - * at the end of the buffer. Note that the gids array must come + * at the end of the buffer. Note that the groups array must come * immediately after struct group to guarantee proper alignment. */ grlist = (struct group_list *)cp; zero_bytes(grlist, sizeof(struct group_list)); cp += sizeof(struct group_list); - grlist->gids = (gid_t *)cp; - cp += sizeof(gid_t) * ngids; grlist->groups = (char **)cp; cp += sizeof(char *) * ngids; + grlist->gids = (gid_t *)cp; + cp += sizeof(gid_t) * ngids; /* Set key and datum. */ memcpy(cp, user, nsize); @@ -533,20 +550,18 @@ make_grlist_item(const char *user, GETGROUPS_T *gids, int ngids) grlist->gids[i] = gids[i]; grlist->ngids = ngids; -#ifdef HAVE_SETAUTHDB - aix_setauthdb((char *) user); -#endif /* - * Resolve group names by ID and store at the end. + * Resolve and store group names by ID. */ + ngroups = 0; for (i = 0; i < ngids; i++) { if ((grp = sudo_getgrgid(gids[i])) != NULL) { len = strlen(grp->gr_name) + 1; - if (cp - (char *)grlist + len > total) { - void *ptr = erealloc(grlist, total + len + GROUPNAME_LEN); + if (cp - (char *)item + len > total) { total += len + GROUPNAME_LEN; - cp = (char *)ptr + (cp - (char *)grlist); - grlist = ptr; + efree(item); + gr_delref(grp); + goto again; } memcpy(cp, grp->gr_name, len); grlist->groups[ngroups++] = cp; diff --git a/plugins/sudoers/regress/iolog_path/check_iolog_path.c b/plugins/sudoers/regress/iolog_path/check_iolog_path.c index cef22ff..036d86a 100644 --- a/plugins/sudoers/regress/iolog_path/check_iolog_path.c +++ b/plugins/sudoers/regress/iolog_path/check_iolog_path.c @@ -105,6 +105,10 @@ main(int argc, char *argv[]) int errors = 0; int tests = 0; +#if !defined(HAVE_GETPROGNAME) && !defined(HAVE___PROGNAME) + setprogname(argc > 0 ? argv[0] : "check_iolog_path"); +#endif + if (argc != 2) usage(); diff --git a/plugins/sudoers/regress/iolog_path/data b/plugins/sudoers/regress/iolog_path/data index e2877b2..dcc3942 100644 --- a/plugins/sudoers/regress/iolog_path/data +++ b/plugins/sudoers/regress/iolog_path/data @@ -70,3 +70,27 @@ su /var/log/sudo-io nobody/root/su_%Y%m%s_%H%M +000001 +nobody +1 +root +0 +somehost +su +/var/log/sudo-io/%d%m%Y +%{user}/%{runas_user}/%{command} +/var/log/sudo-io/%d%m%Y +nobody/root/su + +000001 +nobody +1 +root +0 +somehost +su +//////// +%{user}/%{runas_user}/%{command} +/ +nobody/root/su + diff --git a/plugins/sudoers/regress/logging/check_wrap.c b/plugins/sudoers/regress/logging/check_wrap.c index 2b904d9..33d7b9d 100644 --- a/plugins/sudoers/regress/logging/check_wrap.c +++ b/plugins/sudoers/regress/logging/check_wrap.c @@ -56,6 +56,10 @@ main(int argc, char *argv[]) char *cp, *dash, *line, lines[2][2048]; int which = 0; +#if !defined(HAVE_GETPROGNAME) && !defined(HAVE___PROGNAME) + setprogname(argc > 0 ? argv[0] : "check_wrap"); +#endif + if (argc != 2) usage(); diff --git a/plugins/sudoers/regress/parser/check_addr.c b/plugins/sudoers/regress/parser/check_addr.c new file mode 100644 index 0000000..184b99f --- /dev/null +++ b/plugins/sudoers/regress/parser/check_addr.c @@ -0,0 +1,182 @@ +/* + * Copyright (c) 2011 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 +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif /* STDC_HEADERS */ +#include +#ifdef HAVE_STRING_H +# include +#endif /* HAVE_STRING_H */ +#ifdef HAVE_STRINGS_H +# include +#endif /* HAVE_STRINGS_H */ +#include +#include +#include +#include + +#include +#include +#include + +#include "sudoers.h" +#include "parse.h" +#include "interfaces.h" + +static int check_addr_printf(int msg_type, const char *fmt, ...); + +/* for match_addr.c */ +struct interface *interfaces; +sudo_printf_t sudo_printf = check_addr_printf; + +static int +check_addr(char *input) +{ + int expected, matched; + size_t len; + char *cp; + + while (isspace((unsigned char)*input)) + input++; + + /* input: "addr[/mask] 1/0" */ + len = strcspn(input, " \t"); + cp = input + len; + while (isspace((unsigned char)*cp)) + cp++; + expected = atoi(cp); + input[len] = '\0'; + + matched = addr_matches(input); + if (matched != expected) { + warningx("%s %smatched: FAIL", input, matched ? "" : "not "); + return 1; + } + return 0; +} + +static void +usage(void) +{ + fprintf(stderr, "usage: check_addr datafile\n"); + exit(1); +} + +int +main(int argc, char *argv[]) +{ + int ntests = 0, errors = 0; + char *cp, line[2048]; + size_t len; + FILE *fp; + +#if !defined(HAVE_GETPROGNAME) && !defined(HAVE___PROGNAME) + setprogname(argc > 0 ? argv[0] : "check_addr"); +#endif + + if (argc != 2) + usage(); + + fp = fopen(argv[1], "r"); + if (fp == NULL) + errorx(1, "unable to open %s", argv[1]); + + /* + * Input is in the following format. There are two types of + * lines: interfaces, which sets the address and mask of the + * locally connected ethernet interfaces for the lines that + * follow and, address lines that include and address (with + * optional netmask) to match, followed by expected match status + * (1 or 0). E.g. + * + * interfaces: addr1/mask addr2/mask ... + * address: addr[/mask] 1/0 + * address: addr[/mask] 1/0 + * interfaces: addr3/mask addr4/mask ... + * address: addr[/mask] 1/0 + */ + + while (fgets(line, sizeof(line), fp) != NULL) { + len = strcspn(line, "\n"); + line[len] = '\0'; + + /* Ignore comments */ + if ((cp = strchr(line, '#')) != NULL) + *cp = '\0'; + + /* Skip blank lines. */ + if (line[0] == '\0') + continue; + + if (strncmp(line, "interfaces:", sizeof("interfaces:") - 1) == 0) { + set_interfaces(line + sizeof("interfaces:") - 1); + } else if (strncmp(line, "address:", sizeof("address:") - 1) == 0) { + errors += check_addr(line + sizeof("address:") - 1); + ntests++; + } else { + warningx("unexpected data line: %s\n", line); + continue; + } + } + + printf("check_addr: %d tests run, %d errors, %d%% success rate\n", + ntests, errors, (ntests - errors) * 100 / ntests); + + exit(errors); +} + +/* STUB */ +void +cleanup(int gotsig) +{ + return; +} + +static int +check_addr_printf(int msg_type, const char *fmt, ...) +{ + va_list ap; + FILE *fp; + + switch (msg_type) { + case SUDO_CONV_INFO_MSG: + fp = stdout; + break; + case SUDO_CONV_ERROR_MSG: + fp = stderr; + break; + default: + errno = EINVAL; + return -1; + } + + va_start(ap, fmt); + vfprintf(fp, fmt, ap); + va_end(ap); + + return 0; +} diff --git a/plugins/sudoers/regress/parser/check_addr.in b/plugins/sudoers/regress/parser/check_addr.in new file mode 100644 index 0000000..a3c8612 --- /dev/null +++ b/plugins/sudoers/regress/parser/check_addr.in @@ -0,0 +1,13 @@ +# +interfaces: 10.5.54.73/255.255.240.0 +address: 10.5.48.0 1 +address: 10.5.54.0/20 1 +# +interfaces: 128.138.243.151/255.255.255.0 128.138.241.53/255.255.255.0 +address: 128.138.243.0 1 +address: 128.138.243.0/24 1 +address: 128.138.241.0 1 +address: 128.138.241.0/24 1 +address: 128.138.242.0/24 0 +address: 128.138.0.0 0 +address: 128.138.0.0/16 1 diff --git a/plugins/sudoers/set_perms.c b/plugins/sudoers/set_perms.c index 84215fb..655ed29 100644 --- a/plugins/sudoers/set_perms.c +++ b/plugins/sudoers/set_perms.c @@ -98,7 +98,7 @@ rewind_perms(void) int set_perms(int perm) { - struct perm_state *state, *ostate; + struct perm_state *state, *ostate = NULL; const char *errstr; int noexit; @@ -304,19 +304,22 @@ restore_perms(void) /* XXX - more cases here where euid != ruid */ if (OID(euid) == ROOT_UID && state->euid != ROOT_UID) { if (setresuid(-1, ROOT_UID, -1)) { - warning("setresuid() [%d, %d, %d] -> [%d, %d, %d]", state->ruid, - state->euid, state->suid, -1, ROOT_UID, -1); + warning("setresuid() [%d, %d, %d] -> [%d, %d, %d]", + (int)state->ruid, (int)state->euid, (int)state->suid, + -1, ROOT_UID, -1); goto bad; } } if (setresuid(OID(ruid), OID(euid), OID(suid))) { - warning("setresuid() [%d, %d, %d] -> [%d, %d, %d]", state->ruid, - state->euid, state->suid, OID(ruid), OID(euid), OID(suid)); + warning("setresuid() [%d, %d, %d] -> [%d, %d, %d]", + (int)state->ruid, (int)state->euid, (int)state->suid, + (int)OID(ruid), (int)OID(euid), (int)OID(suid)); goto bad; } if (setresgid(OID(rgid), OID(egid), OID(sgid))) { - warning("setresgid() [%d, %d, %d] -> [%d, %d, %d]", state->rgid, - state->egid, state->sgid, OID(rgid), OID(egid), OID(sgid)); + warning("setresgid() [%d, %d, %d] -> [%d, %d, %d]", + (int)state->rgid, (int)state->egid, (int)state->sgid, + (int)OID(rgid), (int)OID(egid), (int)OID(sgid)); goto bad; } if (state->grlist != ostate->grlist) { @@ -344,7 +347,7 @@ bad: int set_perms(int perm) { - struct perm_state *state, *ostate; + struct perm_state *state, *ostate = NULL; const char *errstr; int noexit; @@ -537,18 +540,19 @@ restore_perms(void) if (ID(euid) != ROOT_UID) (void)setreuid(-1, ROOT_UID); if (setuid(ROOT_UID)) { - warning("setuid(%d)", ROOT_UID); + warning("setuid() [%d, %d] -> %d)", (int)state->ruid, + (int)state->euid, ROOT_UID); goto bad; } } if (setreuid(OID(ruid), OID(euid))) { - warning("setreuid() [%d, %d] -> [%d, %d]", state->ruid, - state->euid, OID(ruid), OID(euid)); + warning("setreuid() [%d, %d] -> [%d, %d]", (int)state->ruid, + (int)state->euid, (int)OID(ruid), (int)OID(euid)); goto bad; } if (setregid(OID(rgid), OID(egid))) { - warning("setregid() [%d, %d] -> [%d, %d]", state->rgid, - state->egid, OID(rgid), OID(egid)); + warning("setregid() [%d, %d] -> [%d, %d]", (int)state->rgid, + (int)state->egid, (int)OID(rgid), (int)OID(egid)); goto bad; } if (state->grlist != ostate->grlist) { @@ -576,7 +580,7 @@ bad: int set_perms(int perm) { - struct perm_state *state, *ostate; + struct perm_state *state, *ostate = NULL; const char *errstr; int noexit; @@ -780,7 +784,7 @@ restore_perms(void) } if (setegid(OID(egid))) { - warning("setegid(%d)", OID(egid)); + warning("setegid(%d)", (int)OID(egid)); goto bad; } if (state->grlist != ostate->grlist) { @@ -790,7 +794,7 @@ restore_perms(void) } } if (seteuid(OID(euid))) { - warning("seteuid(%d)", OID(euid)); + warning("seteuid(%d)", (int)OID(euid)); goto bad; } grlist_delref(state->grlist); @@ -810,7 +814,7 @@ bad: int set_perms(int perm) { - struct perm_state *state, *ostate; + struct perm_state *state, *ostate = NULL; const char *errstr; int noexit; @@ -906,7 +910,7 @@ restore_perms(void) perm_stack_depth--; if (OID(rgid) != -1 && setgid(ostate->rgid)) { - warning("setgid(%d)", ostate->rgid); + warning("setgid(%d)", (int)ostate->rgid); goto bad; } if (state->grlist != ostate->grlist) { @@ -917,7 +921,7 @@ restore_perms(void) } grlist_delref(state->grlist); if (OID(ruid) != -1 && setuid(ostate->ruid)) { - warning("setuid(%d)", ostate->ruid); + warning("setuid(%d)", (int)ostate->ruid); goto bad; } return; diff --git a/plugins/sudoers/sudoers.c b/plugins/sudoers/sudoers.c index a3816e2..8f3c548 100644 --- a/plugins/sudoers/sudoers.c +++ b/plugins/sudoers/sudoers.c @@ -189,7 +189,9 @@ sudoers_policy_open(unsigned int version, sudo_conv_t conversation, /* Parse nsswitch.conf for sudoers order. */ snl = sudo_read_nss(); + /* LDAP or NSS may modify the euid so we need to be root for the open. */ set_perms(PERM_INITIAL); + set_perms(PERM_ROOT); /* Open and parse sudoers, set global defaults */ tq_foreach_fwd(snl, nss) { @@ -207,15 +209,11 @@ sudoers_policy_open(unsigned int version, sudo_conv_t conversation, /* XXX - collect post-sudoers parse settings into a function */ /* - * Initialize external group plugin. + * Initialize external group plugin, if any. */ if (def_group_plugin) { - switch (group_plugin_load(def_group_plugin)) { - case -1: - return -1; - case FALSE: + if (group_plugin_load(def_group_plugin) != TRUE) def_group_plugin = NULL; - } } /* @@ -258,7 +256,7 @@ sudoers_policy_close(int exit_status, int error_code) /* Close the session we opened in sudoers_policy_init_session(). */ if (ISSET(sudo_mode, MODE_RUN|MODE_EDIT)) - (void)auth_end_session(); + (void)sudo_auth_end_session(runas_pw); /* Free remaining references to password and group entries. */ pw_delref(sudo_user.pw); @@ -281,7 +279,7 @@ sudoers_policy_init_session(struct passwd *pwd) return -1; } - return auth_begin_session(pwd); + return sudo_auth_begin_session(pwd); } static int @@ -796,23 +794,18 @@ init_vars(char * const envp[]) * if necessary. It is assumed that euid is 0 at this point so we * can read the shadow passwd file if necessary. */ - if ((sudo_user.pw = sudo_getpwnam(user_name)) == NULL) { - struct passwd pw; - - /* Create a fake struct passwd for log_error(). */ - memset(&pw, 0, sizeof(pw)); - pw.pw_uid = getuid(); - pw.pw_name = user_name; - sudo_user.pw = &pw; - + if ((sudo_user.pw = sudo_getpwuid(user_uid)) == NULL) { /* * It is not unusual for users to place "sudo -k" in a .logout * file which can cause sudo to be run during reboot after the * YP/NIS/NIS+/LDAP/etc daemon has died. */ if (sudo_mode == MODE_KILL || sudo_mode == MODE_INVALIDATE) - errorx(1, _("unknown user: %s"), user_name); - log_error(0, _("unknown user: %s"), user_name); + errorx(1, _("unknown uid: %u"), (unsigned int) user_uid); + + /* Need to make a fake struct passwd for the call to log_error(). */ + sudo_user.pw = sudo_fakepwnamid(user_name, user_uid, user_gid); + log_error(0, _("unknown uid: %u"), (unsigned int) user_uid); /* NOTREACHED */ } diff --git a/plugins/sudoers/sudoers.h b/plugins/sudoers/sudoers.h index 3c8c6a1..8b51e1d 100644 --- a/plugins/sudoers/sudoers.h +++ b/plugins/sudoers/sudoers.h @@ -218,8 +218,10 @@ int user_is_exempt(void); /* sudo_auth.c */ int verify_user(struct passwd *, char *); -int auth_begin_session(struct passwd *); -int auth_end_session(); +int sudo_auth_begin_session(struct passwd *); +int sudo_auth_end_session(struct passwd *); +int sudo_auth_init(struct passwd *pw); +int sudo_auth_cleanup(struct passwd *pw); /* parse.c */ int sudo_file_open(struct sudo_nss *); @@ -268,6 +270,7 @@ void sudo_endspent(void); struct group_list *get_group_list(struct passwd *pw); void set_group_list(const char *, GETGROUPS_T *gids, int ngids); struct passwd *sudo_getpwnam(const char *); +struct passwd *sudo_fakepwnamid(const char *user, uid_t uid, gid_t gid); struct passwd *sudo_fakepwnam(const char *, gid_t); struct passwd *sudo_getpwuid(uid_t); struct group *sudo_getgrnam(const char *); @@ -341,9 +344,4 @@ extern sudo_conv_t sudo_conv; extern sudo_printf_t sudo_printf; #endif -/* Some systems don't declare errno in errno.h */ -#ifndef errno -extern int errno; -#endif - #endif /* _SUDO_SUDOERS_H */ diff --git a/plugins/sudoers/visudo.c b/plugins/sudoers/visudo.c index 43119e2..e37f6d5 100644 --- a/plugins/sudoers/visudo.c +++ b/plugins/sudoers/visudo.c @@ -256,6 +256,30 @@ main(int argc, char *argv[]) exit(0); } +/* + * List of editors that support the "+lineno" command line syntax. + * If an entry starts with '*' the tail end of the string is matched. + * No other wild cards are supported. + */ +static char *lineno_editors[] = { + "ex", + "nex", + "vi", + "nvi", + "vim", + "elvis", + "*macs", + "mg", + "vile", + "jove", + "pico", + "nano", + "ee", + "joe", + "zile", + NULL +}; + /* * Edit each sudoers file. * Returns TRUE on success, else FALSE. @@ -276,11 +300,7 @@ edit_sudoers(struct sudoersfile *sp, char *editor, char *args, int lineno) ssize_t nread; /* number of bytes read */ struct stat sb; /* stat buffer */ -#ifdef HAVE_FSTAT if (fstat(sp->fd, &sb) == -1) -#else - if (stat(sp->path, &sb) == -1) -#endif error(1, _("unable to stat %s"), sp->path); orig_size = sb.st_size; mtim_get(&sb, &orig_mtim); @@ -310,6 +330,34 @@ edit_sudoers(struct sudoersfile *sp, char *editor, char *args, int lineno) } (void) touch(-1, sp->tpath, &orig_mtim); + /* Does the editor support +lineno? */ + if (lineno > 0) + { + char *editor_base = strrchr(editor, '/'); + if (editor_base != NULL) + editor_base++; + else + editor_base = editor; + if (*editor_base == 'r') + editor_base++; + + for (av = lineno_editors; (cp = *av) != NULL; av++) { + /* We only handle a leading '*' wildcard. */ + if (*cp == '*') { + size_t blen = strlen(editor_base); + size_t clen = strlen(++cp); + if (blen >= clen) { + if (strcmp(cp, editor_base + blen - clen) == 0) + break; + } + } else if (strcmp(cp, editor_base) == 0) + break; + } + /* Disable +lineno if editor doesn't support it. */ + if (cp == NULL) + lineno = -1; + } + /* Find the length of the argument vector */ ac = 3 + (lineno > 0); if (args) { @@ -492,23 +540,19 @@ install_sudoers(struct sudoersfile *sp, int oldperms) */ if (oldperms) { /* Use perms of the existing file. */ -#ifdef HAVE_FSTAT if (fstat(sp->fd, &sb) == -1) -#else - if (stat(sp->path, &sb) == -1) -#endif error(1, _("unable to stat %s"), sp->path); if (chown(sp->tpath, sb.st_uid, sb.st_gid) != 0) { - warning(_("unable to set (uid, gid) of %s to (%d, %d)"), - sp->tpath, sb.st_uid, sb.st_gid); + warning(_("unable to set (uid, gid) of %s to (%u, %u)"), + sp->tpath, (unsigned int)sb.st_uid, (unsigned int)sb.st_gid); } if (chmod(sp->tpath, sb.st_mode & 0777) != 0) { warning(_("unable to change mode of %s to 0%o"), sp->tpath, - (sb.st_mode & 0777)); + (unsigned int)(sb.st_mode & 0777)); } } else { if (chown(sp->tpath, SUDOERS_UID, SUDOERS_GID) != 0) { - warning(_("unable to set (uid, gid) of %s to (%d, %d)"), + warning(_("unable to set (uid, gid) of %s to (%u, %u)"), sp->tpath, SUDOERS_UID, SUDOERS_GID); return FALSE; } @@ -724,17 +768,12 @@ check_syntax(char *sudoers_path, int quiet, int strict) } } /* Check mode and owner in strict mode. */ -#ifdef HAVE_FSTAT - if (strict && yyin != stdin && fstat(fileno(yyin), &sb) == 0) -#else - if (strict && yyin != stdin && stat(sudoers_path, &sb) == 0) -#endif - { + if (strict && yyin != stdin && fstat(fileno(yyin), &sb) == 0) { if (sb.st_uid != SUDOERS_UID || sb.st_gid != SUDOERS_GID) { error = TRUE; if (!quiet) { fprintf(stderr, - _("%s: wrong owner (uid, gid) should be (%d, %d)\n"), + _("%s: wrong owner (uid, gid) should be (%u, %u)\n"), sudoers_path, SUDOERS_UID, SUDOERS_GID); } } diff --git a/src/exec.c b/src/exec.c index 52dbdbb..fab1980 100644 --- a/src/exec.c +++ b/src/exec.c @@ -451,8 +451,10 @@ handle_signals(int fd, pid_t child, int log_io, struct command_status *cstat) int fd = open(_PATH_TTY, O_RDWR|O_NOCTTY, 0); if (fd != -1) saved_pgrp = tcgetpgrp(fd); - if (kill(getpid(), WSTOPSIG(status)) != 0) - warning("kill(%d, %d)", getpid(), WSTOPSIG(status)); + if (kill(getpid(), WSTOPSIG(status)) != 0) { + warning("kill(%d, %d)", (int)getpid(), + WSTOPSIG(status)); + } if (fd != -1) { if (saved_pgrp != (pid_t)-1) (void)tcsetpgrp(fd, saved_pgrp); @@ -476,7 +478,7 @@ handle_signals(int fd, pid_t child, int log_io, struct command_status *cstat) if (signo == SIGALRM) terminate_child(child, FALSE); else if (kill(child, signo) != 0) - warning("kill(%d, %d)", child, signo); + warning("kill(%d, %d)", (int)child, signo); } } } diff --git a/src/exec_pty.c b/src/exec_pty.c index b24d691..60ed7ef 100644 --- a/src/exec_pty.c +++ b/src/exec_pty.c @@ -323,7 +323,7 @@ suspend_parent(int signo) sigaction(signo, &sa, &osa); sudo_debug(8, "kill parent %d", signo); if (killpg(ppgrp, signo) != 0) - warning("killpg(%d, %d)", ppgrp, signo); + warning("killpg(%d, %d)", (int)ppgrp, signo); /* Check foreground/background status on resume. */ check_foreground(); diff --git a/src/get_pty.c b/src/get_pty.c index 4bac6b9..f303721 100644 --- a/src/get_pty.c +++ b/src/get_pty.c @@ -46,7 +46,9 @@ #include #include -#ifdef HAVE_UTIL_H +#if defined(HAVE_LIBUTIL_H) +# include +#elif defined(HAVE_UTIL_H) # include #endif #ifdef HAVE_PTY_H diff --git a/src/po/eo.mo b/src/po/eo.mo new file mode 100644 index 0000000..8ed6906 Binary files /dev/null and b/src/po/eo.mo differ diff --git a/src/po/eo.po b/src/po/eo.po new file mode 100644 index 0000000..69de1be --- /dev/null +++ b/src/po/eo.po @@ -0,0 +1,740 @@ +# Esperanto translations for sudo package. +# This file is put in the public domain. +# Keith Bowes , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: sudo 1.8.2-rc9\n" +"Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" +"POT-Creation-Date: 2011-08-05 13:34-0400\n" +"PO-Revision-Date: 2011-08-21 18:59-0400\n" +"Last-Translator: Keith Bowes \n" +"Language-Team: Esperanto \n" +"Language: eo\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" + +#: src/error.c:82 src/error.c:86 +msgid ": " +msgstr ": " + +#: src/exec.c:125 src/exec_pty.c:573 src/exec_pty.c:880 src/tgetpass.c:224 +#, c-format +msgid "unable to fork" +msgstr "ne eblas forki" + +#: src/exec.c:246 +#, c-format +msgid "unable to create sockets" +msgstr "ne eblas krei konektingojn" + +#: src/exec.c:253 src/exec_pty.c:526 src/exec_pty.c:534 src/exec_pty.c:541 +#: src/exec_pty.c:826 src/exec_pty.c:877 src/tgetpass.c:221 +#, c-format +msgid "unable to create pipe" +msgstr "ne eblas krei tubon" + +#: src/exec.c:319 src/exec_pty.c:944 src/exec_pty.c:1077 +#, c-format +msgid "select failed" +msgstr "elekto malsukcesis" + +#: src/exec.c:387 +#, c-format +msgid "unable to restore tty label" +msgstr "ne eblis reatingi tty-etikedon" + +#: src/exec_pty.c:136 +#, c-format +msgid "unable to allocate pty" +msgstr "ne eblis generi pty-on" + +#: src/exec_pty.c:566 +#, c-format +msgid "unable to set terminal to raw mode" +msgstr "ne eblas elekti nudan reĝimon ĉe la terminalo" + +#: src/exec_pty.c:858 +#, c-format +msgid "unable to set controlling tty" +msgstr "ne eblas elekti la regan tty-on" + +#: src/exec_pty.c:952 +#, c-format +msgid "error reading from signal pipe" +msgstr "eraro dum legi la signalan tubon" + +#: src/exec_pty.c:971 +#, c-format +msgid "error reading from pipe" +msgstr "eraro dum legi el tubo" + +#: src/exec_pty.c:987 +#, c-format +msgid "error reading from socketpair" +msgstr "eraro dum legi la konektingan paron" + +#: src/exec_pty.c:991 +#, c-format +msgid "unexpected reply type on backchannel: %d" +msgstr "neatendita respondotipo ĉe la postkanalo: %d" + +#: src/load_plugins.c:158 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: src/load_plugins.c:164 +#, c-format +msgid "%s%s: %s" +msgstr "%s%s: %s" + +#: src/load_plugins.c:174 +#, c-format +msgid "%s must be owned by uid %d" +msgstr "%s devas esti estrita de uid %d" + +#: src/load_plugins.c:178 +#, c-format +msgid "%s must be only be writable by owner" +msgstr "%s estas skribebla nur de estro" + +#: src/load_plugins.c:185 +#, c-format +msgid "unable to dlopen %s: %s" +msgstr "malebla: dlopen %s: %s" + +#: src/load_plugins.c:190 +#, c-format +msgid "%s: unable to find symbol %s" +msgstr "%s: ne eblas trovi simbolon %s" + +#: src/load_plugins.c:196 +#, c-format +msgid "%s: unknown policy type %d" +msgstr "%s: nekonata konduta tipo %d" + +#: src/load_plugins.c:200 +#, c-format +msgid "%s: incompatible policy major version %d, expected %d" +msgstr "%s: malkongrua konduto, ĉefa eldono %d, atendita %d" + +#: src/load_plugins.c:207 +#, c-format +msgid "%s: only a single policy plugin may be loaded" +msgstr "%s: nur unu konduta kromprogramo eblas ŝargiĝi" + +#: src/load_plugins.c:225 +#, c-format +msgid "%s: at least one policy plugin must be specified" +msgstr "%s: almenaÅ­ unu konduku devas esti specifita" + +#: src/load_plugins.c:230 +#, 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:155 src/net_ifs.c:164 src/net_ifs.c:176 src/net_ifs.c:185 +#: src/net_ifs.c:295 src/net_ifs.c:319 +#, c-format +msgid "load_interfaces: overflow detected" +msgstr "load_interfaces: superfluo malkovrita" + +#: src/net_ifs.c:224 +#, c-format +msgid "unable to open socket" +msgstr "ne eblas malfermi konektingon" + +#: src/parse_args.c:180 +#, c-format +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:192 +#, c-format +msgid "the argument to -D must be between 1 and 9 inclusive" +msgstr "la argumento de -D devas esti de 1 ĝis 9" + +#: src/parse_args.c:273 +#, c-format +msgid "unknown user: %s" +msgstr "nekonata uzanto: %s" + +#: src/parse_args.c:332 +#, c-format +msgid "you may not specify both the `-i' and `-s' options" +msgstr "vi ne rajtas specifi kaj '-i' kaj '-s'" + +#: src/parse_args.c:336 +#, c-format +msgid "you may not specify both the `-i' and `-E' options" +msgstr "vi ne rajtas specifi kaj '-i' kaj '-E'" + +#: src/parse_args.c:346 +#, c-format +msgid "the `-E' option is not valid in edit mode" +msgstr "la parametro '-E' ne validas en redakta reĝimo" + +#: src/parse_args.c:348 +#, c-format +msgid "you may not specify environment variables in edit mode" +msgstr "vi ne rajtas specifi medivariablojn en redakta reĝimo" + +#: src/parse_args.c:356 +#, c-format +msgid "the `-U' option may only be used with the `-l' option" +msgstr "la parametro '-U' ne validas kun '-l'" + +#: src/parse_args.c:360 +#, c-format +msgid "the `-A' and `-S' options may not be used together" +msgstr "'-A' kaj '-S' ne eblas uziĝi kune" + +#: src/parse_args.c:429 src/sudo.c:435 src/sudo.c:455 src/sudo.c:463 +#: src/sudo.c:473 common/alloc.c:85 common/alloc.c:105 common/alloc.c:123 +#: common/alloc.c:145 common/alloc.c:203 common/alloc.c:217 +#, c-format +msgid "unable to allocate memory" +msgstr "ne eblas generi memoron" + +#: src/parse_args.c:442 +#, c-format +msgid "sudoedit is not supported on this platform" +msgstr "sudoedit ne estas havebla en ĉi tiu platformon" + +#: src/parse_args.c:513 +#, c-format +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:526 +#, c-format +msgid "" +"%s - edit files as another user\n" +"\n" +msgstr "" +"%s - redakti dosierojn kiel alia uzanto\n" +"\n" + +#: src/parse_args.c:528 +#, c-format +msgid "" +"%s - execute a command as another user\n" +"\n" +msgstr "" +"%s - plenumigi komandon kiel alia uzanto\n" +"\n" + +#: src/parse_args.c:533 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Parametroj:\n" + +#: src/parse_args.c:536 +msgid "use helper program for password prompting\n" +msgstr "uzi helpoprogrogramon por pasvortilo\n" + +#: src/parse_args.c:539 +msgid "use specified BSD authentication type\n" +msgstr "uzi specifitan BSD-konstatan tipon\n" + +#: src/parse_args.c:541 +msgid "run command in the background\n" +msgstr "plenumigi komandon fone\n" + +#: src/parse_args.c:543 +msgid "close all file descriptors >= fd\n" +msgstr "fermi ĉiujn dosierpriskribilojn >= fd\n" + +#: src/parse_args.c:546 +msgid "run command with specified login class\n" +msgstr "plenumigi komandon per specifitan ensalutan klason\n" + +#: src/parse_args.c:549 +msgid "preserve user environment when executing command\n" +msgstr "konservi uzanto-medivariablojn dum plenumigi komandon\n" + +#: src/parse_args.c:551 +msgid "edit files instead of running a command\n" +msgstr "redakti dosierojn anstataÅ­ plenumigi komandon\n" + +#: src/parse_args.c:553 +msgid "execute command as the specified group\n" +msgstr "plenumigi komandon kiel la specifitan grupon\n" + +#: src/parse_args.c:555 +msgid "set HOME variable to target user's home dir.\n" +msgstr "valorizi medivariablon HOME je la hejma dosierujo de la cela uzanto.\n" + +#: src/parse_args.c:557 +msgid "display help message and exit\n" +msgstr "elmontri helpan mesaĝon kaj eliri\n" + +#: src/parse_args.c:559 +msgid "run a login shell as target user\n" +msgstr "plenumigi ensalutan ŝelon kiel celan uzanton\n" + +#: src/parse_args.c:561 +msgid "remove timestamp file completely\n" +msgstr "tute forigi tempo-indikilan dosieron\n" + +#: src/parse_args.c:563 +msgid "invalidate timestamp file\n" +msgstr "eksvalidigi tempo-indikilan dosieron\n" + +#: src/parse_args.c:565 +msgid "list user's available commands\n" +msgstr "listigi disponeblajn komandojn de uzanto\n" + +#: src/parse_args.c:567 +msgid "non-interactive mode, will not prompt user\n" +msgstr "neinteraga reĝimo, ne demandos uzanton\n" + +#: src/parse_args.c:569 +msgid "preserve group vector instead of setting to target's\n" +msgstr "konservi grupan vektoron anstataÅ­ elekti celan vektoron\n" + +#: src/parse_args.c:571 +msgid "use specified password prompt\n" +msgstr "uzi specifitan pasvortilon\n" + +#: src/parse_args.c:574 src/parse_args.c:582 +msgid "create SELinux security context with specified role\n" +msgstr "krei SELinux-sekurecan kuntekstan kun specifita rolo\n" + +#: src/parse_args.c:577 +msgid "read password from standard input\n" +msgstr "legi pasvorton el norma enigo\n" + +#: src/parse_args.c:579 +msgid "run a shell as target user\n" +msgstr "plenumigi ŝelon kiel cela uzanto\n" + +#: src/parse_args.c:585 +msgid "when listing, list specified user's privileges\n" +msgstr "dum listigo, listigi privilegiojn de specifita uzanto\n" + +#: src/parse_args.c:587 +msgid "run command (or edit file) as specified user\n" +msgstr "plenumigi komandon (aÅ­ redakti dosieron) kiel specifita uzanto\n" + +#: src/parse_args.c:589 +msgid "display version information and exit\n" +msgstr "elmontri eldonan informon kaj eliri\n" + +#: src/parse_args.c:591 +msgid "update user's timestamp without running a command\n" +msgstr "ĝisdatigi la tempo-indikilon de la uzanto, sed ne plenumigi komandon\n" + +#: src/parse_args.c:593 +msgid "stop processing command line arguments\n" +msgstr "ĉesigi procedi komandliniajn parametrojn\n" + +#: src/selinux.c:75 +#, c-format +msgid "unable to open audit system" +msgstr "ne eblas malfermi aÅ­dan sistemon" + +#: src/selinux.c:85 +#, c-format +msgid "unable to send audit message" +msgstr "ne eblas sendi aÅ­dan mesaĝon" + +#: src/selinux.c:112 +#, c-format +msgid "unable to fgetfilecon %s" +msgstr "ne eblas voki fgetfilecon %s" + +#: src/selinux.c:117 +#, c-format +msgid "%s changed labels" +msgstr "%s ŝanĝis etikedojn" + +#: src/selinux.c:122 +#, c-format +msgid "unable to restore context for %s" +msgstr "ne eblas restarigi kuntekston por %s" + +#: src/selinux.c:161 +#, c-format +msgid "unable to open %s, not relabeling tty" +msgstr "ne eblas malfermi %s, ne remarkanta tty-on" + +#: src/selinux.c:170 +#, c-format +msgid "unable to get current tty context, not relabeling tty" +msgstr "ne eblas akiri aktualan tty-kuntekston, ne remarkanta" + +#: src/selinux.c:177 +#, c-format +msgid "unable to get new tty context, not relabeling tty" +msgstr "ne eblas akiri novan tty-kuntekston, ne remarkanta" + +#: src/selinux.c:184 +#, c-format +msgid "unable to set new tty context" +msgstr "ne eblas elekti novan tty-kuntekston" + +#: src/selinux.c:194 src/selinux.c:207 src/sudo.c:323 +#, c-format +msgid "unable to open %s" +msgstr "ne eblas malfermi %s" + +#: src/selinux.c:249 +#, c-format +msgid "you must specify a role for type %s" +msgstr "vi devas specifi rolon por tipon %s" + +#: src/selinux.c:255 +#, c-format +msgid "unable to get default type for role %s" +msgstr "ne eblas akiri aÅ­tomatan tipon por rolo %s" + +#: src/selinux.c:273 +#, c-format +msgid "failed to set new role %s" +msgstr "malsukcesis elekti novan rolon %s" + +#: src/selinux.c:277 +#, c-format +msgid "failed to set new type %s" +msgstr "malsukcesis elekti novan tipon %s" + +#: src/selinux.c:286 +#, c-format +msgid "%s is not a valid context" +msgstr "%s ne estas valida kunteksto" + +#: src/selinux.c:320 +#, c-format +msgid "failed to get old_context" +msgstr "malsukcesis je old_context" + +#: src/selinux.c:326 +#, c-format +msgid "unable to determine enforcing mode." +msgstr "ne povas determini eldevigan reĝimon." + +#: src/selinux.c:338 +#, c-format +msgid "unable to setup tty context for %s" +msgstr "ne eblas agordi tty-kuntekston por %s" + +#: src/selinux.c:367 +#, c-format +msgid "unable to set exec context to %s" +msgstr "ne eblas elekti exec-kuntekston al %s" + +#: src/selinux.c:374 +#, c-format +msgid "unable to set key creation context to %s" +msgstr "ne eblas elekti ŝlosilkrean kuntekston al %s" + +#: src/sesh.c:48 +msgid "requires at least one argument" +msgstr "postulas almenaÅ­ unu parametron" + +#: src/sesh.c:64 +#, c-format +msgid "unable to execute %s" +msgstr "ne eblas plenumigi: %s" + +#: src/sudo.c:191 +#, c-format +msgid "must be setuid root" +msgstr "devas esti ĉefuzanto setuid" + +#: src/sudo.c:209 +#, c-format +msgid "Sudo version %s\n" +msgstr "Sudo: eldono %s\n" + +#: src/sudo.c:211 +#, c-format +msgid "Configure options: %s\n" +msgstr "Muntaj parametroj: %s\n" + +#: src/sudo.c:216 +#, c-format +msgid "fatal error, unable to load plugins" +msgstr "ĉesiga eraro: ne eblas ŝargi kromprogramojn" + +#: src/sudo.c:224 +#, c-format +msgid "unable to initialize policy plugin" +msgstr "ne eblas komenci konduktan kromprogramon" + +#: src/sudo.c:279 +#, c-format +msgid "error initializing I/O plugin %s" +msgstr "eraro dum komenci eneligan kromprogramon %s" + +#: src/sudo.c:300 +#, c-format +msgid "unexpected sudo mode 0x%x" +msgstr "neatendita sudo-reĝimon 0x%x" + +#: src/sudo.c:389 +#, c-format +msgid "unable to get group vector" +msgstr "ne eblas elekti grupan vektoron" + +#: src/sudo.c:431 +#, c-format +msgid "unknown uid %u: who are you?" +msgstr "nekonata uid %u: kiu vi estas?" + +#: src/sudo.c:773 +#, c-format +msgid "resource control limit has been reached" +msgstr "rimedo-rega limigo estis atingita" + +#: src/sudo.c:776 +#, c-format +msgid "user \"%s\" is not a member of project \"%s\"" +msgstr "uzanto \"%s\" ne estas ano de projekto \"%s\"" + +#: src/sudo.c:780 +#, c-format +msgid "the invoking task is final" +msgstr "la voka tasko estas nenuligebla" + +#: src/sudo.c:783 +#, c-format +msgid "could not join project \"%s\"" +msgstr "ne eblis aliĝi al projekto \"%s\"" + +#: src/sudo.c:788 +#, c-format +msgid "no resource pool accepting default bindings exists for project \"%s\"" +msgstr "neniu rimedujo akceptanta aÅ­tomatajn bindaĵojn ekzistas por projekto \"%s\"" + +#: src/sudo.c:792 +#, c-format +msgid "specified resource pool does not exist for project \"%s\"" +msgstr "specifita rimedujo ne ekzistas por projekto \"%s\"" + +#: src/sudo.c:796 +#, c-format +msgid "could not bind to default resource pool for project \"%s\"" +msgstr "ne eblis bindi al aprioran rimedujo por projekto \"%s\"" + +#: src/sudo.c:802 +#, c-format +msgid "setproject failed for project \"%s\"" +msgstr "setproject malsukcesis por projekto \"%s\"" + +#: src/sudo.c:804 +#, c-format +msgid "warning, resource control assignment failed for project \"%s\"" +msgstr "averto, rimedo-rega asigno malsukcesis por projekto \"%s\"" + +#: src/sudo.c:832 +#, c-format +msgid "unable to remove PRIV_PROC_EXEC from PRIV_LIMIT" +msgstr "ne eblas forigi PRIV_PROC_EXEC-on de PRIV_LIMIT" + +#: src/sudo.c:938 +#, c-format +msgid "unknown login class %s" +msgstr "nekonata ensaluta klaso %s" + +#: src/sudo.c:945 src/sudo.c:948 +#, c-format +msgid "unable to set user context" +msgstr "ne eblas elekti uzanto-kuntekston" + +#: src/sudo.c:959 +#, 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:964 +#, 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:971 +#, c-format +msgid "unable to set supplementary group IDs" +msgstr "ne eblas elekti suplementajn grupajn identigilojn" + +#: src/sudo.c:979 +#, c-format +msgid "unable to set process priority" +msgstr "ne eblas elekti procezan prioritaton" + +#: src/sudo.c:987 +#, c-format +msgid "unable to change root to %s" +msgstr "ne eblas ŝanĝi ĉefuzanton al %s" + +#: src/sudo.c:997 src/sudo.c:1003 src/sudo.c:1009 +#, c-format +msgid "unable to change to runas uid (%u, %u)" +msgstr "ne eblas ŝanĝi al plenumigkiela uid (%u, %u)" + +#: src/sudo.c:1023 +#, c-format +msgid "unable to change directory to %s" +msgstr "ne eblas ŝanĝi dosierujon al %s" + +#: src/sudo.c:1090 +#, c-format +msgid "unexpected child termination condition: %d" +msgstr "neatendita ido ekzekutiĝis laÅ­ la kondiĉo: %d" + +#: src/sudo.c:1130 +#, c-format +msgid "policy plugin %s does not support listing privileges" +msgstr "konduta kromprogramo %s ne komprenas listigon de privilegioj" + +#: src/sudo.c:1141 +#, c-format +msgid "policy plugin %s does not support the -v option" +msgstr "konduta kromprogramo %s ne komprenas la parametron -v" + +#: src/sudo.c:1152 +#, 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_edit.c:108 +#, c-format +msgid "unable to change uid to root (%u)" +msgstr "ne eblas ŝanĝi uid-on al ĉefuzanto (%u)" + +#: src/sudo_edit.c:140 +#, c-format +msgid "plugin error: missing file list for sudoedit" +msgstr "kromprograma eraro: malhavas dosieran liston por sudoedit" + +#: src/sudo_edit.c:172 src/sudo_edit.c:280 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: ne regula dosiero" + +#: src/sudo_edit.c:206 src/sudo_edit.c:316 +#, c-format +msgid "%s: short write" +msgstr "%s: mallonga skribado" + +#: src/sudo_edit.c:281 +#, c-format +msgid "%s left unmodified" +msgstr "%s restas ne modifita" + +#: src/sudo_edit.c:294 +#, c-format +msgid "%s unchanged" +msgstr "%s ne ŝanĝita" + +#: src/sudo_edit.c:306 src/sudo_edit.c:327 +#, c-format +msgid "unable to write to %s" +msgstr "ne eblas skribi al %s" + +#: src/sudo_edit.c:307 src/sudo_edit.c:325 src/sudo_edit.c:328 +#, c-format +msgid "contents of edit session left in %s" +msgstr "enhavo de redakta seanco restas en %s" + +#: src/sudo_edit.c:324 +#, c-format +msgid "unable to read temporary file" +msgstr "ne eblas legi provizoran dosieron" + +#: src/tgetpass.c:95 +#, c-format +msgid "no tty present and no askpass program specified" +msgstr "neniu tty ĉeestas kaj neniu pasvorto-programo specifita" + +#: src/tgetpass.c:104 +#, c-format +msgid "no askpass program specified, try setting SUDO_ASKPASS" +msgstr "neniu pasvorto-programo specifita, provi valorizi SUDO_ASKPASS-on" + +#: src/tgetpass.c:234 +#, c-format +msgid "unable to set gid to %u" +msgstr "ne eblas elekti gid-on al %u" + +#: src/tgetpass.c:238 +#, c-format +msgid "unable to set uid to %u" +msgstr "ne eblas elekti uid-on al %u" + +#: src/tgetpass.c:243 +#, c-format +msgid "unable to run %s" +msgstr "ne eblas plenumigi: %s" + +#: src/utmp.c:263 +#, c-format +msgid "unable to save stdin" +msgstr "ne eblas konservi enigon" + +#: src/utmp.c:265 +#, c-format +msgid "unable to dup2 stdin" +msgstr "ne eblas kopii al enigo" + +#: src/utmp.c:268 +#, c-format +msgid "unable to restore stdin" +msgstr "ne eblas restarigi enigon" + +#: common/aix.c:144 +#, c-format +msgid "unable to open userdb" +msgstr "ne eblas malfermi la uzanto-datumbazon" + +#: common/aix.c:147 +#, c-format +msgid "unable to switch to registry \"%s\" for %s" +msgstr "ne eblas ŝanĝiĝi al registrejo \"%s\" por %s" + +#: common/aix.c:161 +#, c-format +msgid "unable to restore registry" +msgstr "ne eblas restarigi registrejon" + +#: common/alloc.c:82 +#, c-format +msgid "internal error, tried to emalloc(0)" +msgstr "ena eraro, provis je emalloc(0)" + +#: common/alloc.c:99 +#, c-format +msgid "internal error, tried to emalloc2(0)" +msgstr "ena eraro, provis je emalloc2(0)" + +#: common/alloc.c:101 +#, c-format +msgid "internal error, emalloc2() overflow" +msgstr "ena eraro, emalloc2() superfluo" + +#: common/alloc.c:119 +#, c-format +msgid "internal error, tried to erealloc(0)" +msgstr "ena eraro, provis je erealloc(0)" + +#: common/alloc.c:138 +#, c-format +msgid "internal error, tried to erealloc3(0)" +msgstr "ena eraro, provis je erealloc3(0)" + +#: common/alloc.c:140 +#, c-format +msgid "internal error, erealloc3() overflow" +msgstr "ena eraro, erealloc3() superfluo" + +#: compat/strsignal.c:47 +msgid "Unknown signal" +msgstr "Nekonata signalo" diff --git a/src/po/it.mo b/src/po/it.mo new file mode 100644 index 0000000..9b34a40 Binary files /dev/null and b/src/po/it.mo differ diff --git a/src/po/it.po b/src/po/it.po new file mode 100644 index 0000000..06c6898 --- /dev/null +++ b/src/po/it.po @@ -0,0 +1,742 @@ +# Italian translations for sudo package +# Copyright (c) 2011, The Free Software Foundation +# This file is distributed under the same license as the sudo package. +# Milo Casagrande , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: sudo-1.8.3rc1\n" +"Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" +"POT-Creation-Date: 2011-09-16 13:37-0400\n" +"PO-Revision-Date: 2011-09-21 21:51+0200\n" +"Last-Translator: Milo Casagrande \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8-bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/error.c:82 src/error.c:86 +msgid ": " +msgstr ": " + +#: src/exec.c:125 src/exec_pty.c:573 src/exec_pty.c:880 src/tgetpass.c:224 +#, c-format +msgid "unable to fork" +msgstr "impossibile eseguire fork" + +#: src/exec.c:246 +#, c-format +msgid "unable to create sockets" +msgstr "impossibile creare socket" + +#: src/exec.c:253 src/exec_pty.c:526 src/exec_pty.c:534 src/exec_pty.c:541 +#: src/exec_pty.c:826 src/exec_pty.c:877 src/tgetpass.c:221 +#, c-format +msgid "unable to create pipe" +msgstr "impossibile creare una pipe" + +#: src/exec.c:319 src/exec_pty.c:944 src/exec_pty.c:1077 +#, c-format +msgid "select failed" +msgstr "select non riuscita" + +#: src/exec.c:387 +#, c-format +msgid "unable to restore tty label" +msgstr "impossibile ripristinare l'etichetta tty" + +#: src/exec_pty.c:136 +#, c-format +msgid "unable to allocate pty" +msgstr "impossibile allocare pty" + +#: src/exec_pty.c:566 +#, c-format +msgid "unable to set terminal to raw mode" +msgstr "impossibile impostare il terminale in modalità raw" + +#: src/exec_pty.c:858 +#, c-format +msgid "unable to set controlling tty" +msgstr "impossibile impostare il tty di controllo" + +#: src/exec_pty.c:952 +#, c-format +msgid "error reading from signal pipe" +msgstr "errore nel leggere dalla pipe di segnale" + +#: src/exec_pty.c:971 +#, c-format +msgid "error reading from pipe" +msgstr "errore nel leggere dalla pipe" + +#: src/exec_pty.c:987 +#, c-format +msgid "error reading from socketpair" +msgstr "errore nel leggere dal socketpair" + +#: src/exec_pty.c:991 +#, c-format +msgid "unexpected reply type on backchannel: %d" +msgstr "tipologia di risposta inattesa sul backchannel: %d" + +#: src/load_plugins.c:158 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: src/load_plugins.c:164 +#, c-format +msgid "%s%s: %s" +msgstr "%s%s: %s" + +#: src/load_plugins.c:174 +#, c-format +msgid "%s must be owned by uid %d" +msgstr "%s deve essere di proprietà dello uid %d" + +#: src/load_plugins.c:178 +#, c-format +msgid "%s must be only be writable by owner" +msgstr "%s deve essere scrivibile solo dal proprietario" + +#: src/load_plugins.c:185 +#, c-format +msgid "unable to dlopen %s: %s" +msgstr "impossibile eseguire dlopen su %s: %s" + +#: src/load_plugins.c:190 +#, c-format +msgid "%s: unable to find symbol %s" +msgstr "%s: impossibile trovare il simbolo %s" + +#: src/load_plugins.c:196 +#, c-format +msgid "%s: unknown policy type %d" +msgstr "%s: politica di tipo %d sconosciuta" + +#: src/load_plugins.c:200 +#, c-format +msgid "%s: incompatible policy major version %d, expected %d" +msgstr "%s: numero principale di versione %d non compatibile, atteso %d" + +#: src/load_plugins.c:207 +#, c-format +msgid "%s: only a single policy plugin may be loaded" +msgstr "%s: solo un plugin di politica può essere caricato" + +#: src/load_plugins.c:225 +#, c-format +msgid "%s: at least one policy plugin must be specified" +msgstr "%s: almeno un plugin di politica deve essere specificato" + +#: src/load_plugins.c:230 +#, c-format +msgid "policy plugin %s does not include a check_policy method" +msgstr "il plugin di politica %s non include un metodo check_policy" + +#: src/net_ifs.c:155 src/net_ifs.c:164 src/net_ifs.c:176 src/net_ifs.c:185 +#: src/net_ifs.c:295 src/net_ifs.c:319 +#, c-format +msgid "load_interfaces: overflow detected" +msgstr "load_interfaces: rilevato overflow" + +#: src/net_ifs.c:224 +#, c-format +msgid "unable to open socket" +msgstr "impossibile aprire socket" + +#: src/parse_args.c:180 +#, c-format +msgid "the argument to -C must be a number greater than or equal to 3" +msgstr "l'argomento di -C deve essere un numero maggiore o uguale a 3" + +#: src/parse_args.c:192 +#, c-format +msgid "the argument to -D must be between 1 and 9 inclusive" +msgstr "l'argomento di -D deve essere tra 1 e 9 compresi" + +#: src/parse_args.c:273 +#, c-format +msgid "unknown user: %s" +msgstr "utente sconosciuto: %s" + +#: src/parse_args.c:332 +#, c-format +msgid "you may not specify both the `-i' and `-s' options" +msgstr "non è possibile specificare entrambe le opzioni \"-i\" e \"-s\"" + +#: src/parse_args.c:336 +#, c-format +msgid "you may not specify both the `-i' and `-E' options" +msgstr "non è possibile specificare entrambe le opzioni \"-i\" ed \"-E\"" + +#: src/parse_args.c:346 +#, c-format +msgid "the `-E' option is not valid in edit mode" +msgstr "l'opzione \"-E\" non è valida in modalità di modifica" + +#: src/parse_args.c:348 +#, c-format +msgid "you may not specify environment variables in edit mode" +msgstr "non è possibile specificare variabili d'ambiente in modalità di modifica" + +#: src/parse_args.c:356 +#, c-format +msgid "the `-U' option may only be used with the `-l' option" +msgstr "l'opzione \"-U\" può essere usata solo con l'opzione \"-l\"" + +#: src/parse_args.c:360 +#, c-format +msgid "the `-A' and `-S' options may not be used together" +msgstr "non è possibile usare assieme le opzioni \"-A\" e \"-S\"" + +#: src/parse_args.c:429 src/sudo.c:435 src/sudo.c:455 src/sudo.c:463 +#: src/sudo.c:473 common/alloc.c:85 common/alloc.c:105 common/alloc.c:123 +#: common/alloc.c:145 common/alloc.c:203 common/alloc.c:217 +#, c-format +msgid "unable to allocate memory" +msgstr "impossibile allocare la memoria" + +#: src/parse_args.c:442 +#, c-format +msgid "sudoedit is not supported on this platform" +msgstr "sudoedit non è supportato su questa piattaforma" + +#: src/parse_args.c:513 +#, c-format +msgid "Only one of the -e, -h, -i, -K, -l, -s, -v or -V options may be specified" +msgstr "Solo una delle opzioni -e, -h, -i, -K, -l, -s, -v o -V può essere specificata" + +#: src/parse_args.c:526 +#, c-format +msgid "" +"%s - edit files as another user\n" +"\n" +msgstr "" +"%s - modifica file come un altro utente\n" +"\n" + +#: src/parse_args.c:528 +#, c-format +msgid "" +"%s - execute a command as another user\n" +"\n" +msgstr "" +"%s - esegue un comando come un altro utente\n" +"\n" + +#: src/parse_args.c:533 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"Opzioni:\n" + +#: src/parse_args.c:536 +msgid "use helper program for password prompting\n" +msgstr "Utilizza un programma d'aiuto per richiedere la password\n" + +#: src/parse_args.c:539 +msgid "use specified BSD authentication type\n" +msgstr "Utilizza la tipologia di autenticazione BSD specificata\n" + +#: src/parse_args.c:541 +msgid "run command in the background\n" +msgstr "Esegue il comando in background\n" + +#: src/parse_args.c:543 +msgid "close all file descriptors >= fd\n" +msgstr "Chiude tutti i descrittori di file >= fd\n" + +#: src/parse_args.c:546 +msgid "run command with specified login class\n" +msgstr "Esegue il comando con la classe di accesso specificata\n" + +#: src/parse_args.c:549 +msgid "preserve user environment when executing command\n" +msgstr "Mantiene l'ambiente dell'utente quando viene eseguito il comando\n" + +#: src/parse_args.c:551 +msgid "edit files instead of running a command\n" +msgstr "Modifica i file invece di eseguire un comando\n" + +#: src/parse_args.c:553 +msgid "execute command as the specified group\n" +msgstr "Esegue il comando come il gruppo specificato\n" + +#: src/parse_args.c:555 +msgid "set HOME variable to target user's home dir.\n" +msgstr "Imposta la variabile HOME alla directory dell'utente finale\n" + +#: src/parse_args.c:557 +msgid "display help message and exit\n" +msgstr "Visualizza il messaggio di aiuto ed esce\n" + +#: src/parse_args.c:559 +msgid "run a login shell as target user\n" +msgstr "Esegue una shell di login come l'utente finale\n" + +#: src/parse_args.c:561 +msgid "remove timestamp file completely\n" +msgstr "Rimuove completamente il file temporale\n" + +#: src/parse_args.c:563 +msgid "invalidate timestamp file\n" +msgstr "Invalida il file temporale\n" + +#: src/parse_args.c:565 +msgid "list user's available commands\n" +msgstr "Elenca i comandi utente disponibili\n" + +#: src/parse_args.c:567 +msgid "non-interactive mode, will not prompt user\n" +msgstr "Modalità non interattiva, non richiede nulla all'utente\n" + +#: src/parse_args.c:569 +msgid "preserve group vector instead of setting to target's\n" +msgstr "Mantiene il vettore di gruppo invece di impostarlo a quello dell'obiettivo\n" + +#: src/parse_args.c:571 +msgid "use specified password prompt\n" +msgstr "Utilizza la richiesta della password specificata\n" + +#: src/parse_args.c:574 src/parse_args.c:582 +msgid "create SELinux security context with specified role\n" +msgstr "Crea il contesto di sicurezza SELinux con il ruolo specificato\n" + +#: src/parse_args.c:577 +msgid "read password from standard input\n" +msgstr "Legge la password dallo standard input\n" + +#: src/parse_args.c:579 +msgid "run a shell as target user\n" +msgstr "Esegue una shell come l'utente finale\n" + +#: src/parse_args.c:585 +msgid "when listing, list specified user's privileges\n" +msgstr "Durante l'elencazione, visualizza i privilegi dell'utente specificato\n" + +#: src/parse_args.c:587 +msgid "run command (or edit file) as specified user\n" +msgstr "Esegue un comando (o modifica un file) come l'utente specificato\n" + +#: src/parse_args.c:589 +msgid "display version information and exit\n" +msgstr "Visualizza le informazioni sulla versione ed esce\n" + +#: src/parse_args.c:591 +msgid "update user's timestamp without running a command\n" +msgstr "Aggiorna il timestamp dell'utente senza eseguire un comando\n" + +#: src/parse_args.c:593 +msgid "stop processing command line arguments\n" +msgstr "Ferma l'elaborazione degli argomenti a riga di comando\n" + +#: src/selinux.c:75 +#, c-format +msgid "unable to open audit system" +msgstr "impossibile aprire il sistema di audit" + +#: src/selinux.c:85 +#, c-format +msgid "unable to send audit message" +msgstr "impossibile inviare il messaggio di audit" + +#: src/selinux.c:112 +#, c-format +msgid "unable to fgetfilecon %s" +msgstr "impossibile eseguire fgetfilecon %s" + +#: src/selinux.c:117 +#, c-format +msgid "%s changed labels" +msgstr "%s ha modificato le etichette" + +#: src/selinux.c:122 +#, c-format +msgid "unable to restore context for %s" +msgstr "impossibile ripristinare il contesto per %s" + +#: src/selinux.c:161 +#, c-format +msgid "unable to open %s, not relabeling tty" +msgstr "impossibile aprire %s, tty non viene etichettato nuovamente" + +#: src/selinux.c:170 +#, c-format +msgid "unable to get current tty context, not relabeling tty" +msgstr "impossibile ottenere il contesto tty attuale, tty non viene etichettato nuovamente" + +#: src/selinux.c:177 +#, c-format +msgid "unable to get new tty context, not relabeling tty" +msgstr "impossibile ottenere il nuovo contesto tty, tty non viene etichettato nuovamente" + +#: src/selinux.c:184 +#, c-format +msgid "unable to set new tty context" +msgstr "impossibile impostare il nuovo contesto tty" + +#: src/selinux.c:194 src/selinux.c:207 src/sudo.c:323 +#, c-format +msgid "unable to open %s" +msgstr "impossibile aprire %s" + +#: src/selinux.c:249 +#, c-format +msgid "you must specify a role for type %s" +msgstr "è necessario specificare un ruolo per la tipologia %s" + +#: src/selinux.c:255 +#, c-format +msgid "unable to get default type for role %s" +msgstr "impossibile ottenere la tipologia predefinita per il ruolo %s" + +#: src/selinux.c:273 +#, c-format +msgid "failed to set new role %s" +msgstr "impossibile impostare il nuovo ruolo %s" + +#: src/selinux.c:277 +#, c-format +msgid "failed to set new type %s" +msgstr "impossibile impostare la nuova tipologia %s" + +#: src/selinux.c:286 +#, c-format +msgid "%s is not a valid context" +msgstr "%s non è un contesto valido" + +#: src/selinux.c:320 +#, c-format +msgid "failed to get old_context" +msgstr "recupero del vecchio contesto non riuscito" + +#: src/selinux.c:326 +#, c-format +msgid "unable to determine enforcing mode." +msgstr "impossibile determinare la modalità di rispetto." + +#: src/selinux.c:338 +#, c-format +msgid "unable to setup tty context for %s" +msgstr "impossibile impostare il contesto tty per %s" + +#: src/selinux.c:367 +#, c-format +msgid "unable to set exec context to %s" +msgstr "impossibile impostare il contesto exec a %s" + +#: src/selinux.c:374 +#, c-format +msgid "unable to set key creation context to %s" +msgstr "impossibile impostare il contesto di creazione della chiave a %s" + +#: src/sesh.c:48 +msgid "requires at least one argument" +msgstr "richiede almeno un argomento" + +#: src/sesh.c:64 +#, c-format +msgid "unable to execute %s" +msgstr "impossibile eseguire %s" + +#: src/sudo.c:191 +#, c-format +msgid "must be setuid root" +msgstr "è necessario essere setuid root" + +#: src/sudo.c:209 +#, c-format +msgid "Sudo version %s\n" +msgstr "Versione di sudo: %s\n" + +#: src/sudo.c:211 +#, c-format +msgid "Configure options: %s\n" +msgstr "Opzioni di configurazione: %s\n" + +#: src/sudo.c:216 +#, c-format +msgid "fatal error, unable to load plugins" +msgstr "errore irreversibile, impossibile caricare i plugin" + +#: src/sudo.c:224 +#, c-format +msgid "unable to initialize policy plugin" +msgstr "impossibile inizializzare il plugin delle politiche" + +#: src/sudo.c:279 +#, c-format +msgid "error initializing I/O plugin %s" +msgstr "errore nell'inizializzare il plugin di I/O %s" + +#: src/sudo.c:300 +#, c-format +msgid "unexpected sudo mode 0x%x" +msgstr "modalità 0x%x di sudo non attesa" + +#: src/sudo.c:389 +#, c-format +msgid "unable to get group vector" +msgstr "impossibile ottenere il vettore di gruppo" + +# (ndt) mah... andrebbe resa meglio... +#: src/sudo.c:431 +#, c-format +msgid "unknown uid %u: who are you?" +msgstr "uid %u sconosciuto: identificarsi." + +#: src/sudo.c:773 +#, c-format +msgid "resource control limit has been reached" +msgstr "raggiunto il limite di controllo delle risorse" + +#: src/sudo.c:776 +#, c-format +msgid "user \"%s\" is not a member of project \"%s\"" +msgstr "l'utente \"%s\" non fa parte del progetto \"%s\"" + +#: src/sudo.c:780 +#, c-format +msgid "the invoking task is final" +msgstr "il task chiamante è definitivo" + +#: src/sudo.c:783 +#, c-format +msgid "could not join project \"%s\"" +msgstr "impossibile unirsi al progetto \"%s\"" + +#: src/sudo.c:788 +#, c-format +msgid "no resource pool accepting default bindings exists for project \"%s\"" +msgstr "non esiste alcun pool di risorse per il progetto \"%s\" che accetti binding predefiniti" + +#: src/sudo.c:792 +#, c-format +msgid "specified resource pool does not exist for project \"%s\"" +msgstr "il pool di risorse specificato non esiste per il progetto \"%s\"" + +#: src/sudo.c:796 +#, c-format +msgid "could not bind to default resource pool for project \"%s\"" +msgstr "impossibile unirsi al pool di risorse predefinito per il progetto \"%s\"" + +#: src/sudo.c:802 +#, c-format +msgid "setproject failed for project \"%s\"" +msgstr "setproject per il progetto \"%s\" non riuscita" + +#: src/sudo.c:804 +#, c-format +msgid "warning, resource control assignment failed for project \"%s\"" +msgstr "attenzione, assegnazione della risorsa di controllo per il progetto \"%s\" non riuscita" + +#: src/sudo.c:832 +#, c-format +msgid "unable to remove PRIV_PROC_EXEC from PRIV_LIMIT" +msgstr "impossibile rimuovere PRIV_PROC_EXEC da PRIV_LIMIT" + +#: src/sudo.c:938 +#, c-format +msgid "unknown login class %s" +msgstr "classe di accesso %s sconosciuta" + +#: src/sudo.c:945 src/sudo.c:948 +#, c-format +msgid "unable to set user context" +msgstr "impossibile impostare il contesto utente" + +#: src/sudo.c:959 +#, c-format +msgid "unable to set effective gid to runas gid %u" +msgstr "impossibile impostare il gid effettivo per eseguire come %u" + +#: src/sudo.c:965 +#, c-format +msgid "unable to set gid to runas gid %u" +msgstr "impossibile impostare il gid per eseguire come gid %u" + +#: src/sudo.c:973 +#, c-format +msgid "unable to set supplementary group IDs" +msgstr "impossibile impostare ID di gruppo supplementari" + +#: src/sudo.c:981 +#, c-format +msgid "unable to set process priority" +msgstr "impossibile impostare la priorità del processo" + +#: src/sudo.c:989 +#, c-format +msgid "unable to change root to %s" +msgstr "impossibile modificare root a %s" + +#: src/sudo.c:999 src/sudo.c:1005 src/sudo.c:1011 +#, c-format +msgid "unable to change to runas uid (%u, %u)" +msgstr "impossibile passare a un diverso uid (%u, %u)" + +#: src/sudo.c:1025 +#, c-format +msgid "unable to change directory to %s" +msgstr "impossibile passare alla directory %s" + +#: src/sudo.c:1092 +#, c-format +msgid "unexpected child termination condition: %d" +msgstr "condizione di uscita del figlio inattesa: %d" + +#: src/sudo.c:1132 +#, c-format +msgid "policy plugin %s does not support listing privileges" +msgstr "il plugin di politica %s non supporta l'elencazione dei privilegi" + +#: src/sudo.c:1143 +#, c-format +msgid "policy plugin %s does not support the -v option" +msgstr "il plugin di politica %s non supporta l'opzione -v" + +#: src/sudo.c:1154 +#, c-format +msgid "policy plugin %s does not support the -k/-K options" +msgstr "il plguind di politica %s non supporta le opzioni -k/-K" + +#: src/sudo_edit.c:108 +#, c-format +msgid "unable to change uid to root (%u)" +msgstr "impossibile modificare lo uid a root (%u)" + +#: src/sudo_edit.c:140 +#, c-format +msgid "plugin error: missing file list for sudoedit" +msgstr "errore di plugin: elenco file mancante per sudoedit" + +#: src/sudo_edit.c:168 src/sudo_edit.c:268 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: non è un file regolare" + +#: src/sudo_edit.c:202 src/sudo_edit.c:304 +#, c-format +msgid "%s: short write" +msgstr "%s: scrittura breve" + +#: src/sudo_edit.c:269 +#, c-format +msgid "%s left unmodified" +msgstr "%s lasciato non modificato" + +#: src/sudo_edit.c:282 +#, c-format +msgid "%s unchanged" +msgstr "%s non modificato" + +#: src/sudo_edit.c:294 src/sudo_edit.c:315 +#, c-format +msgid "unable to write to %s" +msgstr "impossibile scrivere su %s" + +#: src/sudo_edit.c:295 src/sudo_edit.c:313 src/sudo_edit.c:316 +#, c-format +msgid "contents of edit session left in %s" +msgstr "contenuto della sessione di modifica tralasciato in %s" + +#: src/sudo_edit.c:312 +#, c-format +msgid "unable to read temporary file" +msgstr "impossibile leggere il file temporaneo" + +#: src/tgetpass.c:95 +#, c-format +msgid "no tty present and no askpass program specified" +msgstr "nessun tty presente e nessun programma di richiesta password specificato" + +#: src/tgetpass.c:104 +#, c-format +msgid "no askpass program specified, try setting SUDO_ASKPASS" +msgstr "nessun programma di richiesta password specificato, impostare SUDO_ASKPASS" + +#: src/tgetpass.c:234 +#, c-format +msgid "unable to set gid to %u" +msgstr "impossibile impostare lo gid a %u" + +#: src/tgetpass.c:238 +#, c-format +msgid "unable to set uid to %u" +msgstr "impossibile impostare lo uid a %u" + +#: src/tgetpass.c:243 +#, c-format +msgid "unable to run %s" +msgstr "impossibile eseguire %s" + +#: src/utmp.c:263 +#, c-format +msgid "unable to save stdin" +msgstr "impossibile salvare lo stdin" + +#: src/utmp.c:265 +#, c-format +msgid "unable to dup2 stdin" +msgstr "impossibile eseguire dup2 sullo stdin" + +#: src/utmp.c:268 +#, c-format +msgid "unable to restore stdin" +msgstr "impossibile ripristinare lo stdin" + +#: common/aix.c:144 +#, c-format +msgid "unable to open userdb" +msgstr "impossibile aprire lo userdb" + +#: common/aix.c:147 +#, c-format +msgid "unable to switch to registry \"%s\" for %s" +msgstr "impossibile passare al registro \"%s\" per %s" + +#: common/aix.c:161 +#, c-format +msgid "unable to restore registry" +msgstr "impossibile ripristinare il registro" + +#: common/alloc.c:82 +#, c-format +msgid "internal error, tried to emalloc(0)" +msgstr "errore interno, tentativo di chiamare emalloc(0)" + +#: common/alloc.c:99 +#, c-format +msgid "internal error, tried to emalloc2(0)" +msgstr "errore interno, tentativo di chiamare emalloc2(0)" + +#: common/alloc.c:101 +#, c-format +msgid "internal error, emalloc2() overflow" +msgstr "errore interno, overflow di emalloc2()" + +#: common/alloc.c:119 +#, c-format +msgid "internal error, tried to erealloc(0)" +msgstr "errore interno, tentativo di chiamare erealloc(0)" + +#: common/alloc.c:138 +#, c-format +msgid "internal error, tried to erealloc3(0)" +msgstr "errore interno, tentativo di chiamare erealloc3(0)" + +#: common/alloc.c:140 +#, c-format +msgid "internal error, erealloc3() overflow" +msgstr "errore interno, overflow di erealloc3()" + +#: compat/strsignal.c:47 +msgid "Unknown signal" +msgstr "Segnale sconosciuto" diff --git a/src/po/ja.mo b/src/po/ja.mo new file mode 100644 index 0000000..72339ae Binary files /dev/null and b/src/po/ja.mo differ diff --git a/src/po/ja.po b/src/po/ja.po new file mode 100644 index 0000000..15b5c5d --- /dev/null +++ b/src/po/ja.po @@ -0,0 +1,740 @@ +# Japanese messages for sudo +# This file is put in the public domain. +# Yasuaki Taniguchi , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: sudo 1.8.3rc1\n" +"Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" +"POT-Creation-Date: 2011-09-16 13:37-0400\n" +"PO-Revision-Date: 2011-10-09 22:21+0900\n" +"Last-Translator: Yasuaki Taniguchi \n" +"Language-Team: Japanese \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/error.c:82 src/error.c:86 +msgid ": " +msgstr ": " + +#: src/exec.c:125 src/exec_pty.c:573 src/exec_pty.c:880 src/tgetpass.c:224 +#, c-format +msgid "unable to fork" +msgstr "fork できません" + +#: src/exec.c:246 +#, c-format +msgid "unable to create sockets" +msgstr "ソケットを作成できません" + +#: src/exec.c:253 src/exec_pty.c:526 src/exec_pty.c:534 src/exec_pty.c:541 +#: src/exec_pty.c:826 src/exec_pty.c:877 src/tgetpass.c:221 +#, c-format +msgid "unable to create pipe" +msgstr "パイプを作成できません" + +#: src/exec.c:319 src/exec_pty.c:944 src/exec_pty.c:1077 +#, c-format +msgid "select failed" +msgstr "select に失敗しました" + +#: src/exec.c:387 +#, c-format +msgid "unable to restore tty label" +msgstr "tty ラベルを復旧できません" + +#: src/exec_pty.c:136 +#, c-format +msgid "unable to allocate pty" +msgstr "pty を割り当てられません" + +#: src/exec_pty.c:566 +#, c-format +msgid "unable to set terminal to raw mode" +msgstr "端末を raw モードに設定できません" + +#: src/exec_pty.c:858 +#, c-format +msgid "unable to set controlling tty" +msgstr "tty の制御設定ができません" + +#: src/exec_pty.c:952 +#, c-format +msgid "error reading from signal pipe" +msgstr "シグナルパイプからの読み込み中にエラーが発生しました" + +#: src/exec_pty.c:971 +#, c-format +msgid "error reading from pipe" +msgstr "パイプからの読み込み中にエラーが発生しました" + +#: src/exec_pty.c:987 +#, c-format +msgid "error reading from socketpair" +msgstr "ソケットペアからの読み込み中にエラーが発生しました" + +#: src/exec_pty.c:991 +#, c-format +msgid "unexpected reply type on backchannel: %d" +msgstr "バックチャンネルに関する予期しないリプレイタイプです: %d" + +#: src/load_plugins.c:158 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: src/load_plugins.c:164 +#, c-format +msgid "%s%s: %s" +msgstr "%s%s: %s" + +#: src/load_plugins.c:174 +#, c-format +msgid "%s must be owned by uid %d" +msgstr "%s の所有者は uid %d でなければいけません" + +#: src/load_plugins.c:178 +#, c-format +msgid "%s must be only be writable by owner" +msgstr "%s は所有者のみ書き込み可能で無ければいけません" + +#: src/load_plugins.c:185 +#, c-format +msgid "unable to dlopen %s: %s" +msgstr "dlopen %s を行うことができません: %s" + +#: src/load_plugins.c:190 +#, c-format +msgid "%s: unable to find symbol %s" +msgstr "%s: シンボル %s を見つけることができません" + +#: src/load_plugins.c:196 +#, c-format +msgid "%s: unknown policy type %d" +msgstr "%s: 不明なポリシータイプ %d です" + +#: src/load_plugins.c:200 +#, c-format +msgid "%s: incompatible policy major version %d, expected %d" +msgstr "%s: 互換性の無いポリシーメジャーバージョン %d です。予期されるのは %d です" + +#: src/load_plugins.c:207 +#, c-format +msgid "%s: only a single policy plugin may be loaded" +msgstr "%s: 一つのポリシープラグインのみロードされているようです" + +#: src/load_plugins.c:225 +#, c-format +msgid "%s: at least one policy plugin must be specified" +msgstr "%s: 最低でも一つ以上のポリシープラグインを指定しなければいけません" + +#: src/load_plugins.c:230 +#, c-format +msgid "policy plugin %s does not include a check_policy method" +msgstr "ポリシープラグイン %s には check_policy メソッドが含まれていません" + +#: src/net_ifs.c:155 src/net_ifs.c:164 src/net_ifs.c:176 src/net_ifs.c:185 +#: src/net_ifs.c:295 src/net_ifs.c:319 +#, c-format +msgid "load_interfaces: overflow detected" +msgstr "load_interfaces: オーバーフローが検出されました" + +#: src/net_ifs.c:224 +#, c-format +msgid "unable to open socket" +msgstr "ソケットを開くことができません" + +#: src/parse_args.c:180 +#, c-format +msgid "the argument to -C must be a number greater than or equal to 3" +msgstr "-C の引数は 3 以上の数値でなければいけません" + +#: src/parse_args.c:192 +#, c-format +msgid "the argument to -D must be between 1 and 9 inclusive" +msgstr "-D の引数は 1 から 9 の間でなければいけません" + +#: src/parse_args.c:273 +#, c-format +msgid "unknown user: %s" +msgstr "不明なユーザーです: %s" + +#: src/parse_args.c:332 +#, c-format +msgid "you may not specify both the `-i' and `-s' options" +msgstr "`-i' と `-s' オプションを同時に指定することはできません" + +#: src/parse_args.c:336 +#, c-format +msgid "you may not specify both the `-i' and `-E' options" +msgstr "`-i' と `-E' オプションを同時に指定することはできません" + +#: src/parse_args.c:346 +#, c-format +msgid "the `-E' option is not valid in edit mode" +msgstr "`-E' オプションは編集モードでは無効です" + +#: src/parse_args.c:348 +#, c-format +msgid "you may not specify environment variables in edit mode" +msgstr "編集モードでは環境変数を指定できません" + +#: src/parse_args.c:356 +#, c-format +msgid "the `-U' option may only be used with the `-l' option" +msgstr "`-U' オプションは `-l' オプションのみと同時に指定できます" + +#: src/parse_args.c:360 +#, c-format +msgid "the `-A' and `-S' options may not be used together" +msgstr "`-A' と `-S' オプションは同時に指定することはできません" + +#: src/parse_args.c:429 src/sudo.c:435 src/sudo.c:455 src/sudo.c:463 +#: src/sudo.c:473 common/alloc.c:85 common/alloc.c:105 common/alloc.c:123 +#: common/alloc.c:145 common/alloc.c:203 common/alloc.c:217 +#, c-format +msgid "unable to allocate memory" +msgstr "メモリ割り当てを行えませんでした" + +#: src/parse_args.c:442 +#, c-format +msgid "sudoedit is not supported on this platform" +msgstr "sudoedit はこのプラットフォームではサポートされていません" + +#: src/parse_args.c:513 +#, c-format +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:526 +#, c-format +msgid "" +"%s - edit files as another user\n" +"\n" +msgstr "" +"%s - 別のユーザーとしてファイルを編集します\n" +"\n" + +#: src/parse_args.c:528 +#, c-format +msgid "" +"%s - execute a command as another user\n" +"\n" +msgstr "" +"%s - 別のユーザーとしてコマンドを実行します\n" +"\n" + +#: src/parse_args.c:533 +#, c-format +msgid "" +"\n" +"Options:\n" +msgstr "" +"\n" +"オプション:\n" + +#: src/parse_args.c:536 +msgid "use helper program for password prompting\n" +msgstr "パスワード要求のために補助プログラムを使用する\n" + +#: src/parse_args.c:539 +msgid "use specified BSD authentication type\n" +msgstr "指定した BSD 認証タイプを使用する\n" + +#: src/parse_args.c:541 +msgid "run command in the background\n" +msgstr "コマンドをバックグラウンドで実行する\n" + +#: src/parse_args.c:543 +msgid "close all file descriptors >= fd\n" +msgstr "fd 以上のすべてのファイル記述子を閉じる\n" + +#: src/parse_args.c:546 +msgid "run command with specified login class\n" +msgstr "指定したログインクラスでコマンドを実行する\n" + +#: src/parse_args.c:549 +msgid "preserve user environment when executing command\n" +msgstr "コマンドを実行する時にユーザーの環境変数を保護する\n" + +#: src/parse_args.c:551 +msgid "edit files instead of running a command\n" +msgstr "コマンドを実行する代わりにファイルを編集する\n" + +#: src/parse_args.c:553 +msgid "execute command as the specified group\n" +msgstr "指定したグループでコマンドを実行する\n" + +#: src/parse_args.c:555 +msgid "set HOME variable to target user's home dir.\n" +msgstr "HOME 変数を変更先となるユーザーのホームディレクトリに設定する\n" + +#: src/parse_args.c:557 +msgid "display help message and exit\n" +msgstr "ヘルプメッセージを表示して終了する\n" + +#: src/parse_args.c:559 +msgid "run a login shell as target user\n" +msgstr "変更先のユーザーとしてログインシェルを実行する\n" + +#: src/parse_args.c:561 +msgid "remove timestamp file completely\n" +msgstr "タイムスタンプファイルを完全に削除する\n" + +#: src/parse_args.c:563 +msgid "invalidate timestamp file\n" +msgstr "タイムスタンプファイルを無効にする\n" + +#: src/parse_args.c:565 +msgid "list user's available commands\n" +msgstr "ユーザーが使用可能なコマンドを一覧表示する\n" + +#: src/parse_args.c:567 +msgid "non-interactive mode, will not prompt user\n" +msgstr "非対話モードで実行し、ユーザーに入力を求めない\n" + +#: src/parse_args.c:569 +msgid "preserve group vector instead of setting to target's\n" +msgstr "グループベクトルを保護する (変更先のユーザーのものに設定しない)\n" + +#: src/parse_args.c:571 +msgid "use specified password prompt\n" +msgstr "指定したパスワードプロンプトを使用する\n" + +#: src/parse_args.c:574 src/parse_args.c:582 +msgid "create SELinux security context with specified role\n" +msgstr "指定した役割で SELinux セキュリティーコンテキストを作成する\n" + +#: src/parse_args.c:577 +msgid "read password from standard input\n" +msgstr "標準入力からパスワードを読み込む\n" + +#: src/parse_args.c:579 +msgid "run a shell as target user\n" +msgstr "変更先のユーザーとしてシェルを実行する\n" + +#: src/parse_args.c:585 +msgid "when listing, list specified user's privileges\n" +msgstr "一覧表示する時に、指定したユーザーの権限を一覧表示する\n" + +#: src/parse_args.c:587 +msgid "run command (or edit file) as specified user\n" +msgstr "指定したユーザーでコマンドを実行する (またはファイルを編集する)\n" + +#: src/parse_args.c:589 +msgid "display version information and exit\n" +msgstr "バージョン情報を表示して終了する\n" + +#: src/parse_args.c:591 +msgid "update user's timestamp without running a command\n" +msgstr "コマンドを実行せずにユーザーのタイムスタンプを更新する\n" + +#: src/parse_args.c:593 +msgid "stop processing command line arguments\n" +msgstr "コマンドライン引数の処理を終了する\n" + +#: src/selinux.c:75 +#, c-format +msgid "unable to open audit system" +msgstr "監査システムを開くことができません" + +#: src/selinux.c:85 +#, c-format +msgid "unable to send audit message" +msgstr "監査メッセージを送ることができません" + +#: src/selinux.c:112 +#, c-format +msgid "unable to fgetfilecon %s" +msgstr "fgetfilecon %s を行うことができません" + +#: src/selinux.c:117 +#, c-format +msgid "%s changed labels" +msgstr "%s はラベルを変更しました" + +#: src/selinux.c:122 +#, c-format +msgid "unable to restore context for %s" +msgstr "%s 用のコンテキストを復元することができません" + +#: src/selinux.c:161 +#, c-format +msgid "unable to open %s, not relabeling tty" +msgstr "%s を開くことができません。tty の再ラベル付けを行いません" + +#: src/selinux.c:170 +#, c-format +msgid "unable to get current tty context, not relabeling tty" +msgstr "現在の tty コンテキストを取得できません。 tty の再ラベル付けを行いません" + +#: src/selinux.c:177 +#, c-format +msgid "unable to get new tty context, not relabeling tty" +msgstr "新しい tty コンテキストを取得できません。 tty の再ラベル付けを行いません" + +#: src/selinux.c:184 +#, c-format +msgid "unable to set new tty context" +msgstr "新しい tty コンテキストを設定できません" + +#: src/selinux.c:194 src/selinux.c:207 src/sudo.c:323 +#, c-format +msgid "unable to open %s" +msgstr "%s を開けません" + +#: src/selinux.c:249 +#, c-format +msgid "you must specify a role for type %s" +msgstr "タイプ %s 用の役割を指定しなければいけません" + +#: src/selinux.c:255 +#, c-format +msgid "unable to get default type for role %s" +msgstr "役割 %s 用のデフォルトのタイプを取得できません" + +#: src/selinux.c:273 +#, c-format +msgid "failed to set new role %s" +msgstr "新しい役割 %s の設定に失敗しました" + +#: src/selinux.c:277 +#, c-format +msgid "failed to set new type %s" +msgstr "新しいタイプ %s の設定に失敗しました" + +#: src/selinux.c:286 +#, c-format +msgid "%s is not a valid context" +msgstr "%s は有効なコンテキストではありません" + +#: src/selinux.c:320 +#, c-format +msgid "failed to get old_context" +msgstr "古いコンテキスト (old_context) の取得に失敗しました" + +#: src/selinux.c:326 +#, c-format +msgid "unable to determine enforcing mode." +msgstr "強制モードを決定することができません。" + +#: src/selinux.c:338 +#, c-format +msgid "unable to setup tty context for %s" +msgstr "%s 用の tty コンテキストをセットアップできません" + +#: src/selinux.c:367 +#, c-format +msgid "unable to set exec context to %s" +msgstr "実行コンテキストを %s に設定できません" + +#: src/selinux.c:374 +#, c-format +msgid "unable to set key creation context to %s" +msgstr "キー作成コンテキストを %s へ設定できません" + +#: src/sesh.c:48 +msgid "requires at least one argument" +msgstr "最低でも一つ以上おの引数が必要です" + +#: src/sesh.c:64 +#, c-format +msgid "unable to execute %s" +msgstr "%s を実行できません" + +#: src/sudo.c:191 +#, c-format +msgid "must be setuid root" +msgstr "setuid root されていなければいけません" + +#: src/sudo.c:209 +#, c-format +msgid "Sudo version %s\n" +msgstr "Sudo バージョン %s\n" + +#: src/sudo.c:211 +#, c-format +msgid "Configure options: %s\n" +msgstr "configure オプション: %s\n" + +#: src/sudo.c:216 +#, c-format +msgid "fatal error, unable to load plugins" +msgstr "致命的エラー、プラグインをロードできません" + +#: src/sudo.c:224 +#, c-format +msgid "unable to initialize policy plugin" +msgstr "ポリシープラグインを初期化できません" + +#: src/sudo.c:279 +#, c-format +msgid "error initializing I/O plugin %s" +msgstr "I/O プラグイン %s を初期化中にエラーが発生しました" + +#: src/sudo.c:300 +#, c-format +msgid "unexpected sudo mode 0x%x" +msgstr "予期しない sudo のモード 0x%x です" + +#: src/sudo.c:389 +#, c-format +msgid "unable to get group vector" +msgstr "グループベクトルを取得できません" + +#: src/sudo.c:431 +#, c-format +msgid "unknown uid %u: who are you?" +msgstr "不明なユーザーID %u です: 誰ですか?" + +#: src/sudo.c:773 +#, c-format +msgid "resource control limit has been reached" +msgstr "資源制御の制限の最大値に達しました" + +#: src/sudo.c:776 +#, c-format +msgid "user \"%s\" is not a member of project \"%s\"" +msgstr "ユーザー \"%s\" はプロジェクト \"%s\" のメンバーではありません" + +#: src/sudo.c:780 +#, c-format +msgid "the invoking task is final" +msgstr "起動しているタスクは最後 (final) です" + +#: src/sudo.c:783 +#, c-format +msgid "could not join project \"%s\"" +msgstr "プロジェクト \"%s\" に参加できません" + +#: src/sudo.c:788 +#, c-format +msgid "no resource pool accepting default bindings exists for project \"%s\"" +msgstr "プロジェクト \"%s\" 用にはデフォルト割り当てとして受け付けられる資源プールがありません" + +#: src/sudo.c:792 +#, c-format +msgid "specified resource pool does not exist for project \"%s\"" +msgstr "プロジェクト \"%s\" 用として指定した資源プールは存在しません" + +#: src/sudo.c:796 +#, c-format +msgid "could not bind to default resource pool for project \"%s\"" +msgstr "プロジェクト \"%s\" 用にデフォルト資源プールを割り当てられませんでした" + +#: src/sudo.c:802 +#, c-format +msgid "setproject failed for project \"%s\"" +msgstr "プロジェクト\"%s\" への setproject に失敗しました" + +#: src/sudo.c:804 +#, c-format +msgid "warning, resource control assignment failed for project \"%s\"" +msgstr "警告、プロジェクト \"%s\" への資源制御割り当てに失敗しました" + +#: src/sudo.c:832 +#, c-format +msgid "unable to remove PRIV_PROC_EXEC from PRIV_LIMIT" +msgstr "PRIV_LIMIT から PRIV_PROC_EXEC を取り除くことができません" + +#: src/sudo.c:938 +#, c-format +msgid "unknown login class %s" +msgstr "不明なログインクラス %s です" + +#: src/sudo.c:945 src/sudo.c:948 +#, c-format +msgid "unable to set user context" +msgstr "ユーザーコンテキストを設定できません" + +#: src/sudo.c:959 +#, c-format +msgid "unable to set effective gid to runas gid %u" +msgstr "実行時のグループID (gid) %u を実効グループIDに設定できません" + +#: src/sudo.c:965 +#, c-format +msgid "unable to set gid to runas gid %u" +msgstr "実行時のグループID (gid) %u をグループIDに設定できません" + +#: src/sudo.c:973 +#, c-format +msgid "unable to set supplementary group IDs" +msgstr "追加のグループIDを設定できません" + +#: src/sudo.c:981 +#, c-format +msgid "unable to set process priority" +msgstr "プロセス優先度を設定できません" + +#: src/sudo.c:989 +#, c-format +msgid "unable to change root to %s" +msgstr "root を %s へ変更できません" + +#: src/sudo.c:999 src/sudo.c:1005 src/sudo.c:1011 +#, c-format +msgid "unable to change to runas uid (%u, %u)" +msgstr "実行時のユーザーID (uid) (%u, %u) へ変更できません" + +#: src/sudo.c:1025 +#, c-format +msgid "unable to change directory to %s" +msgstr "ディレクトリーを %s に変更できません" + +#: src/sudo.c:1092 +#, c-format +msgid "unexpected child termination condition: %d" +msgstr "予期しない子プロセスの終了コードです: %d" + +#: src/sudo.c:1132 +#, c-format +msgid "policy plugin %s does not support listing privileges" +msgstr "ポリシープラグイン %s は権限の一覧表示をサポートしていません" + +#: src/sudo.c:1143 +#, c-format +msgid "policy plugin %s does not support the -v option" +msgstr "ポリシープラグイン %s は -v オプションをサポートしません" + +#: src/sudo.c:1154 +#, c-format +msgid "policy plugin %s does not support the -k/-K options" +msgstr "ポリシープラグイン %s は -k/-K オプションをサポートしません" + +#: src/sudo_edit.c:108 +#, c-format +msgid "unable to change uid to root (%u)" +msgstr "ユーザーID (uid) を root (%u) に変更できません" + +#: src/sudo_edit.c:140 +#, c-format +msgid "plugin error: missing file list for sudoedit" +msgstr "プラグインエラー: sudoedit 用のファイル一覧がありません" + +#: src/sudo_edit.c:168 src/sudo_edit.c:268 +#, c-format +msgid "%s: not a regular file" +msgstr "%s: 通常ファイルではありません" + +#: src/sudo_edit.c:202 src/sudo_edit.c:304 +#, c-format +msgid "%s: short write" +msgstr "%s: 短い書き込みです" + +#: src/sudo_edit.c:269 +#, c-format +msgid "%s left unmodified" +msgstr "%s を修正しないままにします" + +#: src/sudo_edit.c:282 +#, c-format +msgid "%s unchanged" +msgstr "%s を変更しません" + +#: src/sudo_edit.c:294 src/sudo_edit.c:315 +#, c-format +msgid "unable to write to %s" +msgstr "%s へ書き込むことができません" + +#: src/sudo_edit.c:295 src/sudo_edit.c:313 src/sudo_edit.c:316 +#, c-format +msgid "contents of edit session left in %s" +msgstr "編集セッションの内容が %s 内に残っています" + +#: src/sudo_edit.c:312 +#, c-format +msgid "unable to read temporary file" +msgstr "一時ファイルを読み込むことができません" + +#: src/tgetpass.c:95 +#, c-format +msgid "no tty present and no askpass program specified" +msgstr "端末 (tty) が存在せず、パスワードを尋ねる (askpass) プログラムが指定されていません" + +#: src/tgetpass.c:104 +#, c-format +msgid "no askpass program specified, try setting SUDO_ASKPASS" +msgstr "パスワードを尋ねる (askpass) プログラムが指定されていません。 SUDO_ASKPASS の設定を試みます" + +#: src/tgetpass.c:234 +#, c-format +msgid "unable to set gid to %u" +msgstr "グループIDを %u に設定できません" + +#: src/tgetpass.c:238 +#, c-format +msgid "unable to set uid to %u" +msgstr "ユーザーIDを %u に設定できません" + +#: src/tgetpass.c:243 +#, c-format +msgid "unable to run %s" +msgstr "%s を実行できません" + +#: src/utmp.c:263 +#, c-format +msgid "unable to save stdin" +msgstr "標準入力を保存できません" + +#: src/utmp.c:265 +#, c-format +msgid "unable to dup2 stdin" +msgstr "標準入力へ dup2 を実行できません" + +#: src/utmp.c:268 +#, c-format +msgid "unable to restore stdin" +msgstr "標準入力を復元できません" + +#: common/aix.c:144 +#, c-format +msgid "unable to open userdb" +msgstr "ユーザーデータベースを開くことができません" + +#: common/aix.c:147 +#, c-format +msgid "unable to switch to registry \"%s\" for %s" +msgstr "%s 用のレジストリー \"%s\" へ切り替えることができません" + +#: common/aix.c:161 +#, c-format +msgid "unable to restore registry" +msgstr "レジストリーを復元できません" + +#: common/alloc.c:82 +#, c-format +msgid "internal error, tried to emalloc(0)" +msgstr "内部エラー、emalloc(0) を試みました" + +#: common/alloc.c:99 +#, c-format +msgid "internal error, tried to emalloc2(0)" +msgstr "内部エラー、 emalloc2(0) を試みました" + +#: common/alloc.c:101 +#, c-format +msgid "internal error, emalloc2() overflow" +msgstr "内部エラー、 emalloc2() がオーバーフローしました" + +#: common/alloc.c:119 +#, c-format +msgid "internal error, tried to erealloc(0)" +msgstr "内部エラー、 erealloc(0) を試みました" + +#: common/alloc.c:138 +#, c-format +msgid "internal error, tried to erealloc3(0)" +msgstr "内部エラー、 erealloc3(0) を試みました" + +#: common/alloc.c:140 +#, c-format +msgid "internal error, erealloc3() overflow" +msgstr "内部エラー、 erealloc3() がオーバーフローしました" + +#: compat/strsignal.c:47 +msgid "Unknown signal" +msgstr "不明なシグナルです" diff --git a/src/po/sudo.pot b/src/po/sudo.pot index b2ef767..f0c1c76 100644 --- a/src/po/sudo.pot +++ b/src/po/sudo.pot @@ -5,9 +5,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: sudo 1.8.2\n" +"Project-Id-Version: sudo 1.8.3\n" "Report-Msgid-Bugs-To: http://www.sudo.ws/bugs\n" -"POT-Creation-Date: 2011-08-05 13:34-0400\n" +"POT-Creation-Date: 2011-09-27 14:07-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -550,52 +550,52 @@ msgstr "" msgid "unable to set effective gid to runas gid %u" msgstr "" -#: src/sudo.c:964 +#: src/sudo.c:965 #, c-format msgid "unable to set gid to runas gid %u" msgstr "" -#: src/sudo.c:971 +#: src/sudo.c:973 #, c-format msgid "unable to set supplementary group IDs" msgstr "" -#: src/sudo.c:979 +#: src/sudo.c:981 #, c-format msgid "unable to set process priority" msgstr "" -#: src/sudo.c:987 +#: src/sudo.c:989 #, c-format msgid "unable to change root to %s" msgstr "" -#: src/sudo.c:997 src/sudo.c:1003 src/sudo.c:1009 +#: src/sudo.c:999 src/sudo.c:1005 src/sudo.c:1011 #, c-format msgid "unable to change to runas uid (%u, %u)" msgstr "" -#: src/sudo.c:1023 +#: src/sudo.c:1025 #, c-format msgid "unable to change directory to %s" msgstr "" -#: src/sudo.c:1090 +#: src/sudo.c:1092 #, c-format msgid "unexpected child termination condition: %d" msgstr "" -#: src/sudo.c:1130 +#: src/sudo.c:1132 #, c-format msgid "policy plugin %s does not support listing privileges" msgstr "" -#: src/sudo.c:1141 +#: src/sudo.c:1143 #, c-format msgid "policy plugin %s does not support the -v option" msgstr "" -#: src/sudo.c:1152 +#: src/sudo.c:1154 #, c-format msgid "policy plugin %s does not support the -k/-K options" msgstr "" @@ -610,37 +610,37 @@ msgstr "" msgid "plugin error: missing file list for sudoedit" msgstr "" -#: src/sudo_edit.c:172 src/sudo_edit.c:280 +#: src/sudo_edit.c:168 src/sudo_edit.c:268 #, c-format msgid "%s: not a regular file" msgstr "" -#: src/sudo_edit.c:206 src/sudo_edit.c:316 +#: src/sudo_edit.c:202 src/sudo_edit.c:304 #, c-format msgid "%s: short write" msgstr "" -#: src/sudo_edit.c:281 +#: src/sudo_edit.c:269 #, c-format msgid "%s left unmodified" msgstr "" -#: src/sudo_edit.c:294 +#: src/sudo_edit.c:282 #, c-format msgid "%s unchanged" msgstr "" -#: src/sudo_edit.c:306 src/sudo_edit.c:327 +#: src/sudo_edit.c:294 src/sudo_edit.c:315 #, c-format msgid "unable to write to %s" msgstr "" -#: src/sudo_edit.c:307 src/sudo_edit.c:325 src/sudo_edit.c:328 +#: src/sudo_edit.c:295 src/sudo_edit.c:313 src/sudo_edit.c:316 #, c-format msgid "contents of edit session left in %s" msgstr "" -#: src/sudo_edit.c:324 +#: src/sudo_edit.c:312 #, c-format msgid "unable to read temporary file" msgstr "" @@ -670,17 +670,17 @@ msgstr "" msgid "unable to run %s" msgstr "" -#: src/utmp.c:263 +#: src/utmp.c:265 #, c-format msgid "unable to save stdin" msgstr "" -#: src/utmp.c:265 +#: src/utmp.c:267 #, c-format msgid "unable to dup2 stdin" msgstr "" -#: src/utmp.c:268 +#: src/utmp.c:270 #, c-format msgid "unable to restore stdin" msgstr "" diff --git a/src/sudo.c b/src/sudo.c index 658d23e..40cfc2f 100644 --- a/src/sudo.c +++ b/src/sudo.c @@ -956,12 +956,14 @@ exec_setup(struct command_details *details, const char *ptyname, int ptyfd) */ #ifdef HAVE_SETEUID if (ISSET(details->flags, CD_SET_EGID) && setegid(details->egid)) { - warning(_("unable to set effective gid to runas gid %u"), details->egid); + warning(_("unable to set effective gid to runas gid %u"), + (unsigned int)details->egid); goto done; } #endif if (ISSET(details->flags, CD_SET_GID) && setgid(details->gid)) { - warning(_("unable to set gid to runas gid %u"), details->gid); + warning(_("unable to set gid to runas gid %u"), + (unsigned int)details->gid); goto done; } @@ -1000,8 +1002,8 @@ exec_setup(struct command_details *details, const char *ptyname, int ptyfd) } #elif HAVE_SETREUID if (setreuid(details->uid, details->euid) != 0) { - warning(_("unable to change to runas uid (%u, %u)"), details->uid, - details->euid); + warning(_("unable to change to runas uid (%u, %u)"), + (unsigned int)details->uid, (unsigned int)details->euid); goto done; } #else diff --git a/src/sudo.h b/src/sudo.h index cbf4860..f315505 100644 --- a/src/sudo.h +++ b/src/sudo.h @@ -230,8 +230,4 @@ int get_net_ifs(char **addrinfo); /* setgroups.c */ int sudo_setgroups(int ngids, const GETGROUPS_T *gids); -#ifndef errno -extern int errno; -#endif - #endif /* _SUDO_SUDO_H */ diff --git a/src/sudo_edit.c b/src/sudo_edit.c index 0a4d511..af7f071 100644 --- a/src/sudo_edit.c +++ b/src/sudo_edit.c @@ -156,11 +156,7 @@ sudo_edit(struct command_details *command_details) zero_bytes(&sb, sizeof(sb)); /* new file */ rc = 0; } else { -#ifdef HAVE_FSTAT rc = fstat(ofd, &sb); -#else - rc = stat(tf[j].ofile, &sb); -#endif } } switch_user(ROOT_UID, user_details.egid, @@ -217,11 +213,7 @@ sudo_edit(struct command_details *command_details) * to determine whether or not a file has been modified. */ (void) touch(tfd, NULL, &tf[j].omtim); -#ifdef HAVE_FSTAT rc = fstat(tfd, &sb); -#else - rc = stat(tf[j].tfile, &sb); -#endif if (!rc) mtim_get(&sb, &tf[j].omtim); close(tfd); @@ -265,11 +257,7 @@ sudo_edit(struct command_details *command_details) if (seteuid(user_details.uid) != 0) error(1, "seteuid(%d)", (int)user_details.uid); if ((tfd = open(tf[i].tfile, O_RDONLY, 0644)) != -1) { -#ifdef HAVE_FSTAT rc = fstat(tfd, &sb); -#else - rc = stat(tf[i].tfile, &sb); -#endif } if (seteuid(ROOT_UID) != 0) error(1, "seteuid(ROOT_UID)"); diff --git a/src/sudo_noexec.c b/src/sudo_noexec.c index 2c18c60..7f050aa 100644 --- a/src/sudo_noexec.c +++ b/src/sudo_noexec.c @@ -34,10 +34,6 @@ * few programs actually do that. */ -#ifndef errno -extern int errno; -#endif - #define DUMMY_BODY \ { \ errno = EACCES; \ diff --git a/src/utmp.c b/src/utmp.c index befbaf6..e3d711b 100644 --- a/src/utmp.c +++ b/src/utmp.c @@ -96,10 +96,12 @@ utmp_setid(sudo_utmp_t *old, sudo_utmp_t *new) size_t idlen; /* Skip over "tty" in the id if old entry did too. */ - if (strncmp(line, "tty", 3) == 0) { - idlen = MIN(sizeof(old->ut_id), 3); - if (strncmp(old->ut_id, "tty", idlen) != 0) - line += 3; + if (old != NULL) { + if (strncmp(line, "tty", 3) == 0) { + idlen = MIN(sizeof(old->ut_id), 3); + if (strncmp(old->ut_id, "tty", idlen) != 0) + line += 3; + } } /* Store as much as will fit, skipping parts of the beginning as needed. */