+2011-10-21 Todd C. Miller <Todd.Miller@courtesan.com>
+
+ * .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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * sudoreplay depends on timestr.lo too; from Mike Frysinger
+ [ad9ae493205f] <1.8>
+
+2011-10-04 Todd C. Miller <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * NEWS:
+ Combine new translations in NEWS item
+ [0aa07471a5e6] <1.8>
+
+2011-09-27 Todd C. Miller <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * Don't error out if the group plugin cannot be loaded, just warn.
+ [e91d9912c9a0] <1.8>
+
+2011-09-23 Todd C. Miller <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * configure, configure.in:
+ Assume all modern systems support fstat(2).
+ [0422b19dced3] <1.8>
+
+2011-08-30 Todd C. Miller <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
+
+ * Add new Esperanto translation from translationproject.org
+ [109ed683b885] <1.8>
+
+2011-08-19 Todd C. Miller <Todd.Miller@courtesan.com>
+
+ * Quiet an innocuous valgrind warning.
+ [fc453e49f9dd] <1.8>
+
+2011-08-18 Todd C. Miller <Todd.Miller@courtesan.com>
+
+ * 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 <Todd.Miller@courtesan.com>
* 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.
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
--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.
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.
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
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
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
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
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 $$?; \
+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
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
#include <errno.h>
+#include <grp.h>
#include <limits.h>
#include "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
#endif
#include <errno.h>
-#define MAX_RESULTS 256
+#include "missing.h"
-#ifndef errno
-extern int errno;
-#endif
+#define MAX_RESULTS 256
struct gl_entry {
int flags;
/* 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
/* 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
/* Define to 1 if you have the <libintl.h> header file. */
#undef HAVE_LIBINTL_H
+/* Define to 1 if you have the <libutil.h> header file. */
+#undef HAVE_LIBUTIL_H
+
/* Define to 1 to enable Linux audit support. */
#undef HAVE_LINUX_AUDIT
#! /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 <http://www.sudo.ws/bugs/>.
#
# 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=''
enable_zlib
enable_env_reset
enable_warnings
+enable_werror
enable_admin_flag
enable_nls
with_selinux
# 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]...
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
--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
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.
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 $@
# 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
# 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;}
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
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
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
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 :
fi
done
+ fi
fi
# AIX analog of nsswitch.conf, enabled by default
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
# 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"
esac
case "$host" in
- *-*-hpux1-8.*)
+ *-*-hpux[1-8].*)
$as_echo "#define BROKEN_SYSLOG 1" >>confdefs.h
;;
;;
*-*-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 :
SKIP_SETREUID=yes
;;
esac
+ OSDEFS="${OSDEFS} -D_BSD_SOURCE"
if test "${with_skey-'no'}" = "yes"; then
SUDOERS_LIBS="${SUDOERS_LIBS} -lmd"
fi
;;
*-*-*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
: ${with_logincap='maybe'}
;;
*-*-dragonfly*)
+ OSDEFS="${OSDEFS} -D_BSD_SOURCE"
if test "${with_skey-'no'}" = "yes"; then
SUDOERS_LIBS="${SUDOERS_LIBS} -lmd"
fi
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 :
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"
$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"
fi
+ac_fn_c_check_decl "$LINENO" "errno" "ac_cv_have_decl_errno" "
+$ac_includes_default
+#include <errno.h>
+
+"
+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"
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 <sys/types.h>
+ #include <lber.h>
+ #include <ldap.h>
+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"
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
# 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
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\\"
dnl
dnl Copyright (c) 1994-1996,1998-2011 Todd C. Miller <Todd.Miller@courtesan.com>
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
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])
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
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
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
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
# 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)
# 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"
esac
case "$host" in
- *-*-hpux[1-8].*)
+ *-*-hpux[[1-8]].*)
AC_DEFINE(BROKEN_SYSLOG)
;;
*-*-hpux9.*)
;;
*-*-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
SKIP_SETREUID=yes
;;
esac
+ OSDEFS="${OSDEFS} -D_BSD_SOURCE"
if test "${with_skey-'no'}" = "yes"; then
SUDOERS_LIBS="${SUDOERS_LIBS} -lmd"
fi
;;
*-*-*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
: ${with_logincap='maybe'}
;;
*-*-dragonfly*)
+ OSDEFS="${OSDEFS} -D_BSD_SOURCE"
if test "${with_skey-'no'}" = "yes"; then
SUDOERS_LIBS="${SUDOERS_LIBS} -lmd"
fi
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)
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";;
AC_CONFIG_FILES([zlib/Makefile])
fi
+dnl
+dnl Check for errno declaration in errno.h
+dnl
+AC_CHECK_DECLS([errno], [], [], [
+AC_INCLUDES_DEFAULT
+#include <errno.h>
+])
+
dnl
dnl Check for strsignal() or sys_siglist
dnl
#include <lber.h>
#include <ldap.h>]], [[(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 <sys/types.h>
+ #include <lber.h>
+ #include <ldap.h>]], [[(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"
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
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.
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?
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
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".
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
-1.8.2 August 17, 2011 SUDO(1m)
+1.8.3 September 16, 2011 SUDO(1m)
.\" ========================================================================
.\"
.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
-1.8.2 May 22, 2011 SUDO_PLUGIN(1m)
+1.8.3 September 16, 2011 SUDO_PLUGIN(1m)
.\" ========================================================================
.\"
.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
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 _\bm_\bk_\bt_\be_\bm_\bp_\b(_\b) function.
-
iolog_file The path name, relative to _\bi_\bo_\bl_\bo_\bg_\b__\bd_\bi_\br, in which to store
input/output logs when the _\bl_\bo_\bg_\b__\bi_\bn_\bp_\bu_\bt or _\bl_\bo_\bg_\b__\bo_\bu_\bt_\bp_\bu_\bt
options are enabled or when the LOG_INPUT or LOG_OUTPUT
See the _\bi_\bo_\bl_\bo_\bg_\b__\bd_\bi_\br 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 _\bm_\bk_\bt_\be_\bm_\bp_\b(_\b) function.
+
mailsub Subject of the mail sent to the _\bm_\ba_\bi_\bl_\bt_\bo user. The escape
%h will expand to the host name of the machine.
Default is *** SECURITY information for %h ***.
-1.8.2 August 17, 2011 SUDOERS(4)
+1.8.3 September 16, 2011 SUDOERS(4)
The path to the Kerberos 5 credential cache to use when
authenticating with the remote server.
+ D\bDE\bER\bRE\bEF\bF never/searching/finding/always
+ How alias dereferencing is to be performed when searching. See the
+ _\bl_\bd_\ba_\bp_\b._\bc_\bo_\bn_\bf(4) manual for a full description of this option.
+
See the ldap.conf entry in the EXAMPLES section.
C\bCo\bon\bnf\bfi\big\bgu\bur\bri\bin\bng\bg n\bns\bss\bsw\bwi\bit\btc\bch\bh.\b.c\bco\bon\bnf\bf
-1.8.2 August 17, 2011 SUDOERS.LDAP(4)
+1.8.3 September 16, 2011 SUDOERS.LDAP(4)
.\" ========================================================================
.\"
.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
.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"
The path to the Kerberos 5 credential cache to use when authenticating
with the remote server.
+=item B<DEREF> never/searching/finding/always
+
+How alias dereferencing is to be performed when searching. See the
+L<ldap.conf(5)> manual for a full description of this option.
+
=back
See the C<ldap.conf> entry in the L<EXAMPLES> section.
.\" ========================================================================
.\"
.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
.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"
.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
To include a literal `C<%>' character, the string `C<%%>' should
be used.
-Path names that end in six or more C<X>s will have the C<X>s replaced
-with a unique combination of digits and letters, similar to the
-mktemp() function.
-
=item iolog_file
The path name, relative to I<iolog_dir>, in which to store input/output
See the I<iolog_dir> 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 C<X>s will have the C<X>s replaced with a unique combination
+of digits and letters, similar to the mktemp() function.
+
=item mailsub
Subject of the mail sent to the I<mailto> user. The escape C<%h>
-1.8.2 May 22, 2011 SUDOREPLAY(1m)
+1.8.3 September 16, 2011 SUDOREPLAY(1m)
.\" ========================================================================
.\"
.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
-1.8.2 August 17, 2011 VISUDO(1m)
+1.8.3 September 16, 2011 VISUDO(1m)
.\" ========================================================================
.\"
.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
#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
$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
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".
--with-ignore-dot
--with-tty-tickets
--with-ldap
- --with-selinux
--with-passprompt=[sudo] password for %p:
$configure_opts"
;;
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 \
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@/
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)
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 + $$?`; \
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`; \
$(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
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 \
$(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
$(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 \
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif /* HAVE_UNISTD_H */
+#include <errno.h>
#include "sudoers.h"
#include "parse.h"
#include "redblack.h"
#include <gram.h>
-#include <errno.h>
/*
* Globals
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);
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"
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 */
#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 */
#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];
#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 */
}
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,
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;
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;
}
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.
}
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;
}
#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)
#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;
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 */
* securid_init - Initialises communications with ACE server
* Arguments in:
* pw - UNUSED
- * promptp - UNUSED
* auth - sudo authentication structure
*
* Results out:
* 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 */
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)
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]);
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 */
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();
}
}
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);
return rval;
}
-int auth_begin_session(struct passwd *pw)
+int
+sudo_auth_begin_session(struct passwd *pw)
{
sudo_auth *auth;
int status;
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 */
}
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 */
}
}
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. */
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);
int
check_user(int validated, int mode)
{
+ struct passwd *auth_pw;
char *timestampdir = NULL;
char *timestampfile = NULL;
char *prompt;
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);
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. */
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) &&
efree(timestampdir);
efree(timestampfile);
+done:
+ sudo_auth_cleanup(auth_pw);
+ pw_delref(auth_pw);
+
return rval;
}
}
}
-/*
- * 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
*/
void dump_default(void);
void init_defaults(void);
-void list_options(void);
int set_default(char *, char *, int);
int update_defaults(int);
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))
*/
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;
*/
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;
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;
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;
}
}
}
}
/* 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;
}
#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
int rootuse_sasl;
int ssl_mode;
int timed;
+ int deref;
char *host;
struct ldap_config_list_str *uri;
char *binddn;
#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 },
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;
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;
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) {
#include <sys/types.h>
#include <sys/param.h>
-#include <sys/socket.h>
#include <sys/stat.h>
#include <stdio.h>
#ifdef STDC_HEADERS
#include <ctype.h>
#include <pwd.h>
#include <grp.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
#include <netdb.h>
#ifdef HAVE_DIRENT_H
# include <dirent.h>
#endif
#include "sudoers.h"
-#include "interfaces.h"
#include "parse.h"
#include <gram.h>
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
*/
--- /dev/null
+/*
+ * Copyright (c) 1996, 1998-2005, 2007-2011
+ * Todd C. Miller <Todd.Miller@courtesan.com>
+ *
+ * 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 <config.h>
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif /* STDC_HEADERS */
+#ifdef HAVE_STRING_H
+# include <string.h>
+#endif /* HAVE_STRING_H */
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif /* HAVE_STRINGS_H */
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif /* HAVE_UNISTD_H */
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+
+#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;
+}
} 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;
#
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 <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
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"
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"
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"
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"
#: 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"
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"
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"
"\n"
"LDAP-rolle: %s\n"
-#: plugins/sudoers/ldap.c:1544
+#: plugins/sudoers/ldap.c:1564
#, c-format
msgid ""
"\n"
"\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"
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"
"\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"
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"
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"
"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"
"\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"
" -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"
"\n"
"Kommando tilladt"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command denied"
"\n"
"Kommando nægtet"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command unmatched"
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"
" 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"
"%s - rediger sikkert sudoersfilen\n"
"\n"
-#: plugins/sudoers/visudo.c:1187
+#: plugins/sudoers/visudo.c:1226
msgid ""
"\n"
"Options:\n"
#: 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"
--- /dev/null
+# Esperanto translations for sudo package.
+# This file is put in the public domain.
+# Keith Bowes <zooplah@gmail.com>, 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 <zooplah@gmail.com>\n"
+"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\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:"
#
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 <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\n"
# 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"
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"
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"
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"
#: 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"
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"
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"
"\n"
"LDAP-rooli: %s\n"
-#: plugins/sudoers/ldap.c:1544
+#: plugins/sudoers/ldap.c:1564
#, c-format
msgid ""
"\n"
"\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"
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"
"\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"
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"
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"
"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"
"\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"
" -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"
"\n"
"Komento sallittu"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command denied"
"\n"
"Komento kielletty"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command unmatched"
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"
" (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"
"%s - muokkaa sudoers-tiedostoa turvallisesti\n"
"\n"
-#: plugins/sudoers/visudo.c:1187
+#: plugins/sudoers/visudo.c:1226
msgid ""
"\n"
"Options:\n"
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"
--- /dev/null
+# Japanese messages for sudoers
+# This file is put in the public domain.
+# Yasuaki Taniguchi <yasuakit@gmail.com>, 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 <yasuakit@gmail.com>\n"
+"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\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 "認証方法:"
#
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 <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
"Language: pl\n"
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"
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"
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"
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"
#: 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"
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"
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"
"\n"
"Rola LDAP: %s\n"
-#: plugins/sudoers/ldap.c:1544
+#: plugins/sudoers/ldap.c:1564
#, c-format
msgid ""
"\n"
"\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"
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"
"\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"
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"
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"
"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"
"\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"
" -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"
"\n"
"Polecenie dozwolone"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command denied"
"\n"
"Polecenie niedozwolone"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command unmatched"
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"
" (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"
"%s - bezpieczna edycja pliku sudoers\n"
"\n"
-#: plugins/sudoers/visudo.c:1187
+#: plugins/sudoers/visudo.c:1226
msgid ""
"\n"
"Options:\n"
#, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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"
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 ""
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"
#: 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 ""
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 ""
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 ""
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"
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 ""
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 ""
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"
" (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"
"%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 ""
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 ""
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 ""
# Yuri Chornoivan <yurchor@ukr.net>, 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 <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Language: \n"
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"
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"
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"
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» не потрібно передавати значення"
#: 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"
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"
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"
"\n"
"Роль LDAP: %s\n"
-#: plugins/sudoers/ldap.c:1544
+#: plugins/sudoers/ldap.c:1564
#, c-format
msgid ""
"\n"
"\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"
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"
"\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"
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 "не вдалося встановити вектор групи виконання"
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"
"пропущено «%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"
"\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"
" -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"
"\n"
"Команду дозволено"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command denied"
"\n"
"Команду заборонено"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command unmatched"
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"
" (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"
"%s — безпечне редагування файла sudoers\n"
"\n"
-#: plugins/sudoers/visudo.c:1187
+#: plugins/sudoers/visudo.c:1226
msgid ""
"\n"
"Options:\n"
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 "не вдалося отримати вектор групи виконання"
#
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 <wantinghard@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
"Language: \n"
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"
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"
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"
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"
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”选项不带值"
#: 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"
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"
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"
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"
"\n"
"LDAP 角色:%s\n"
-#: plugins/sudoers/ldap.c:1544
+#: plugins/sudoers/ldap.c:1564
#, c-format
msgid ""
"\n"
"\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"
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"
"\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"
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 组向量"
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"
"忽略在“.”中找到的“%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"
"\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"
" -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"
"\n"
"命令允许"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command denied"
"\n"
"命令被拒"
-#: plugins/sudoers/testsudoers.c:308
+#: plugins/sudoers/testsudoers.c:313
msgid ""
"\n"
"Command unmatched"
msgstr "无法分配内存"
#: toke.l:786
-#, fuzzy
msgid "too many levels of includes"
msgstr "include 嵌套层数过多"
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"
" 退出,不保存对 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"
"%s - 安全地编辑 sudoers 文件\n"
"\n"
-#: plugins/sudoers/visudo.c:1187
+#: plugins/sudoers/visudo.c:1226
msgid ""
"\n"
"Options:\n"
msgstr ""
#: plugins/sudoers/auth/kerb5.c:299
-#, fuzzy, c-format
+#, c-format
msgid "%s: Cannot verify TGT! Possible attack!: %s"
msgstr "%s:无法验证目标!可能遭到了攻击!:%s"
#: 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
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 组向量"
}
/*
- * 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;
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);
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)
{
}
#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 */
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;
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);
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;
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();
/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
+
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();
--- /dev/null
+/*
+ * Copyright (c) 2011 Todd C. Miller <Todd.Miller@courtesan.com>
+ *
+ * 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 <config.h>
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif /* STDC_HEADERS */
+#include <stdarg.h>
+#ifdef HAVE_STRING_H
+# include <string.h>
+#endif /* HAVE_STRING_H */
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif /* HAVE_STRINGS_H */
+#include <ctype.h>
+#include <errno.h>
+#include <grp.h>
+#include <pwd.h>
+
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+
+#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;
+}
--- /dev/null
+#
+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
int
set_perms(int perm)
{
- struct perm_state *state, *ostate;
+ struct perm_state *state, *ostate = NULL;
const char *errstr;
int noexit;
/* 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) {
int
set_perms(int perm)
{
- struct perm_state *state, *ostate;
+ struct perm_state *state, *ostate = NULL;
const char *errstr;
int noexit;
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) {
int
set_perms(int perm)
{
- struct perm_state *state, *ostate;
+ struct perm_state *state, *ostate = NULL;
const char *errstr;
int noexit;
}
if (setegid(OID(egid))) {
- warning("setegid(%d)", OID(egid));
+ warning("setegid(%d)", (int)OID(egid));
goto bad;
}
if (state->grlist != ostate->grlist) {
}
}
if (seteuid(OID(euid))) {
- warning("seteuid(%d)", OID(euid));
+ warning("seteuid(%d)", (int)OID(euid));
goto bad;
}
grlist_delref(state->grlist);
int
set_perms(int perm)
{
- struct perm_state *state, *ostate;
+ struct perm_state *state, *ostate = NULL;
const char *errstr;
int noexit;
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) {
}
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;
/* 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) {
/* 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;
- }
}
/*
/* 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);
return -1;
}
- return auth_begin_session(pwd);
+ return sudo_auth_begin_session(pwd);
}
static int
* 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 */
}
/* 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 *);
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 *);
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 */
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.
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);
}
(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) {
*/
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;
}
}
}
/* 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);
}
}
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);
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);
}
}
}
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();
#include <grp.h>
#include <pwd.h>
-#ifdef HAVE_UTIL_H
+#if defined(HAVE_LIBUTIL_H)
+# include <libutil.h>
+#elif defined(HAVE_UTIL_H)
# include <util.h>
#endif
#ifdef HAVE_PTY_H
--- /dev/null
+# Esperanto translations for sudo package.
+# This file is put in the public domain.
+# Keith Bowes <zooplah@gmail.com>, 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 <zooplah@gmail.com>\n"
+"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\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"
--- /dev/null
+# 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 <milo@casagrande.name>, 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 <milo@casagrande.name>\n"
+"Language-Team: Italian <tp@lists.linux.it>\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"
--- /dev/null
+# Japanese messages for sudo
+# This file is put in the public domain.
+# Yasuaki Taniguchi <yasuakit@gmail.com>, 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 <yasuakit@gmail.com>\n"
+"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\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 "不明なシグナルです"
#, 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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
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 ""
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 ""
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 ""
*/
#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;
}
}
#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
/* setgroups.c */
int sudo_setgroups(int ngids, const GETGROUPS_T *gids);
-#ifndef errno
-extern int errno;
-#endif
-
#endif /* _SUDO_SUDO_H */
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,
* 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);
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)");
* few programs actually do that.
*/
-#ifndef errno
-extern int errno;
-#endif
-
#define DUMMY_BODY \
{ \
errno = EACCES; \
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. */