From 4a67d64dd0cb01c40e675f48f0c6ea3d08e53664 Mon Sep 17 00:00:00 2001 From: Tomas Mraz Date: Fri, 28 Nov 2008 14:29:12 +0000 Subject: Relevant BUGIDs: Purpose of commit: new feature Commit summary: --------------- 2008-11-28 Tomas Mraz * modules/pam_tally2/pam_tally2.c (tally_check): Fix info format to be the same as in pam_tally. * configure.in: Add modules/pam_timestamp/Makefile. * doc/sag/Linux-PAM_SAG.xml: Include pam_timestamp.xml. * doc/sag/pam_timestamp.xml: New. * libpam/pam_static_modules.h: Add pam_timestamp static struct. * modules/Makefile.am: Add pam_timestamp directory. * modules/pam_timestamp/Makefile.am: New. * modules/pam_timestamp/README.xml: New. * modules/pam_timestamp/hmacsha1.h: New. * modules/pam_timestamp/sha1.h: New. * modules/pam_timestamp/pam_timestamp.8.xml: New. * modules/pam_timestamp/pam_timestamp_check.8.xml: New. * modules/pam_timestamp/pam_timestamp.c: New. * modules/pam_timestamp/pam_timestamp_check.c: New. * modules/pam_timestamp/hmacfile.c: New. * modules/pam_timestamp/hmacsha1.c: New. * modules/pam_timestamp/sha1.c: New. * modules/pam_timestamp/tst-pam_timestamp: New. * po/POTFILES.in: Add pam_timestamp sources. * po/*.po: Regenerate. * po/cs.po: Updated translations. --- ChangeLog | 24 + NEWS | 2 + configure.in | 4 +- doc/sag/Linux-PAM_SAG.xml | 2 + doc/sag/pam_timestamp.xml | 42 ++ libpam/pam_static_modules.h | 2 + modules/Makefile.am | 3 +- modules/pam_tally2/pam_tally2.c | 4 +- modules/pam_timestamp/Makefile.am | 47 ++ modules/pam_timestamp/README.xml | 46 ++ modules/pam_timestamp/hmacfile.c | 157 +++++ modules/pam_timestamp/hmacsha1.c | 293 +++++++++ modules/pam_timestamp/hmacsha1.h | 15 + modules/pam_timestamp/pam_timestamp.8.xml | 189 ++++++ modules/pam_timestamp/pam_timestamp.c | 816 ++++++++++++++++++++++++ modules/pam_timestamp/pam_timestamp_check.8.xml | 208 ++++++ modules/pam_timestamp/pam_timestamp_check.c | 42 ++ modules/pam_timestamp/sha1.c | 254 ++++++++ modules/pam_timestamp/sha1.h | 60 ++ modules/pam_timestamp/tst-pam_timestamp | 2 + po/Linux-PAM.pot | 38 +- po/POTFILES.in | 2 + po/ar.po | 38 +- po/as.po | 38 +- po/bn_IN.po | 42 +- po/ca.po | 45 +- po/cs.po | 51 +- po/da.po | 38 +- po/de.po | 41 +- po/es.po | 38 +- po/fi.po | 38 +- po/fr.po | 42 +- po/gu.po | 38 +- po/hi.po | 38 +- po/hu.po | 38 +- po/it.po | 42 +- po/ja.po | 42 +- po/km.po | 38 +- po/kn.po | 42 +- po/ko.po | 38 +- po/ml.po | 42 +- po/mr.po | 38 +- po/ms.po | 38 +- po/nb.po | 38 +- po/nl.po | 42 +- po/or.po | 38 +- po/pa.po | 38 +- po/pl.po | 42 +- po/pt.po | 38 +- po/pt_BR.po | 42 +- po/ru.po | 38 +- po/si.po | 38 +- po/sk.po | 42 +- po/sr.po | 38 +- po/sr@latin.po | 38 +- po/sv.po | 38 +- po/ta.po | 38 +- po/te.po | 42 +- po/tr.po | 38 +- po/uk.po | 38 +- po/zh_CN.po | 42 +- po/zh_TW.po | 38 +- po/zu.po | 38 +- 63 files changed, 3071 insertions(+), 810 deletions(-) create mode 100644 doc/sag/pam_timestamp.xml create mode 100644 modules/pam_timestamp/Makefile.am create mode 100644 modules/pam_timestamp/README.xml create mode 100644 modules/pam_timestamp/hmacfile.c create mode 100644 modules/pam_timestamp/hmacsha1.c create mode 100644 modules/pam_timestamp/hmacsha1.h create mode 100644 modules/pam_timestamp/pam_timestamp.8.xml create mode 100644 modules/pam_timestamp/pam_timestamp.c create mode 100644 modules/pam_timestamp/pam_timestamp_check.8.xml create mode 100644 modules/pam_timestamp/pam_timestamp_check.c create mode 100644 modules/pam_timestamp/sha1.c create mode 100644 modules/pam_timestamp/sha1.h create mode 100755 modules/pam_timestamp/tst-pam_timestamp diff --git a/ChangeLog b/ChangeLog index dc4ef37f..f58ef8a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,30 @@ * modules/pam_unix/unix_update.c (set_password): Allow root to change passwords without verification of the old ones. + * modules/pam_tally2/pam_tally2.c (tally_check): Fix info format + to be the same as in pam_tally. + + * configure.in: Add modules/pam_timestamp/Makefile. + * doc/sag/Linux-PAM_SAG.xml: Include pam_timestamp.xml. + * doc/sag/pam_timestamp.xml: New. + * libpam/pam_static_modules.h: Add pam_timestamp static struct. + * modules/Makefile.am: Add pam_timestamp directory. + * modules/pam_timestamp/Makefile.am: New. + * modules/pam_timestamp/README.xml: New. + * modules/pam_timestamp/hmacsha1.h: New. + * modules/pam_timestamp/sha1.h: New. + * modules/pam_timestamp/pam_timestamp.8.xml: New. + * modules/pam_timestamp/pam_timestamp_check.8.xml: New. + * modules/pam_timestamp/pam_timestamp.c: New. + * modules/pam_timestamp/pam_timestamp_check.c: New. + * modules/pam_timestamp/hmacfile.c: New. + * modules/pam_timestamp/hmacsha1.c: New. + * modules/pam_timestamp/sha1.c: New. + * modules/pam_timestamp/tst-pam_timestamp: New. + * po/POTFILES.in: Add pam_timestamp sources. + * po/*.po: Regenerate. + * po/cs.po: Updated translations. + 2008-11-25 Thorsten Kukuk * modules/pam_pwhistory/opasswd.c (save_old_password): Fix typo. diff --git a/NEWS b/NEWS index 932d90c8..e3f5623c 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,8 @@ Release 1.0.90 * New pam_tally2 module similar to pam_tally with wordsize independent tally data format * Make libpam not log missing module if its type is prepended with '-' +* New pam_timestamp module for authentication based on recent successful + login. Release 1.0.2 diff --git a/configure.in b/configure.in index 087d88cf..b220a9a2 100644 --- a/configure.in +++ b/configure.in @@ -548,8 +548,8 @@ AC_CONFIG_FILES([Makefile libpam/Makefile libpamc/Makefile libpamc/test/Makefile modules/pam_sepermit/Makefile \ modules/pam_shells/Makefile modules/pam_stress/Makefile \ modules/pam_succeed_if/Makefile modules/pam_tally/Makefile \ - modules/pam_tally2/Makefile \ - modules/pam_time/Makefile modules/pam_tty_audit/Makefile \ + modules/pam_tally2/Makefile modules/pam_time/Makefile \ + modules/pam_timestamp/Makefile modules/pam_tty_audit/Makefile \ modules/pam_umask/Makefile \ modules/pam_unix/Makefile modules/pam_userdb/Makefile \ modules/pam_warn/Makefile modules/pam_wheel/Makefile \ diff --git a/doc/sag/Linux-PAM_SAG.xml b/doc/sag/Linux-PAM_SAG.xml index a1989c9a..b83355ef 100644 --- a/doc/sag/Linux-PAM_SAG.xml +++ b/doc/sag/Linux-PAM_SAG.xml @@ -462,6 +462,8 @@ session required pam_warn.so href="pam_tally2.xml"/> + + +
+ pam_timestamp - authenticate using cached successful authentication attempts + + + +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
diff --git a/libpam/pam_static_modules.h b/libpam/pam_static_modules.h index 2d80cecb..999adc2a 100644 --- a/libpam/pam_static_modules.h +++ b/libpam/pam_static_modules.h @@ -76,6 +76,7 @@ extern struct pam_module _pam_succeed_if_modstruct; extern struct pam_module _pam_tally_modstruct; extern struct pam_module _pam_tally2_modstruct; extern struct pam_module _pam_time_modstruct; +extern struct pam_module _pam_timestamp_modstruct; #ifdef HAVE_AUDIT_TTY_STATUS extern struct pam_module _pam_tty_audit_modstruct; #endif @@ -136,6 +137,7 @@ static struct pam_module *static_modules[] = { &_pam_tally_modstruct, &_pam_tally2_modstruct, &_pam_time_modstruct, + &_pam_timestamp_modstruct, #ifdef HAVE_AUDIT_TTY_STATUS &_pam_tty_audit_modstruct, #endif diff --git a/modules/Makefile.am b/modules/Makefile.am index 37d5a739..0c80cea9 100644 --- a/modules/Makefile.am +++ b/modules/Makefile.am @@ -9,7 +9,8 @@ SUBDIRS = pam_access pam_cracklib pam_debug pam_deny pam_echo \ pam_mkhomedir pam_motd pam_namespace pam_nologin \ pam_permit pam_pwhistory pam_rhosts pam_rootok pam_securetty \ pam_selinux pam_sepermit pam_shells pam_stress \ - pam_succeed_if pam_tally pam_tally2 pam_time pam_tty_audit pam_umask \ + pam_succeed_if pam_tally pam_tally2 pam_time pam_timestamp \ + pam_tty_audit pam_umask \ pam_unix pam_userdb pam_warn pam_wheel pam_xauth CLEANFILES = *~ diff --git a/modules/pam_tally2/pam_tally2.c b/modules/pam_tally2/pam_tally2.c index 9ae3180d..5924edf9 100644 --- a/modules/pam_tally2/pam_tally2.c +++ b/modules/pam_tally2/pam_tally2.c @@ -517,8 +517,8 @@ tally_check (tally_t oldcnt, time_t oldtime, pam_handle_t *pamh, uid_t uid, #endif if (!(opts->ctrl & OPT_QUIET)) { - pam_info(pamh, _("Account locked due to %hu failed logins"), - tally->fail_cnt); + pam_info(pamh, _("Account locked due to %u failed logins"), + (unsigned int)tally->fail_cnt); } if (!(opts->ctrl & OPT_NOLOGNOTICE)) { pam_syslog(pamh, LOG_NOTICE, diff --git a/modules/pam_timestamp/Makefile.am b/modules/pam_timestamp/Makefile.am new file mode 100644 index 00000000..51a3c215 --- /dev/null +++ b/modules/pam_timestamp/Makefile.am @@ -0,0 +1,47 @@ +# +# Copyright (c) 2005 Thorsten Kukuk +# Copyright (c) 2005 Red Hat, Inc. +# + +CLEANFILES = *~ + +XMLS = README.xml pam_timestamp.8.xml pam_timestamp_check.8.xml +man_MANS = pam_timestamp.8 pam_timestamp_check.8 +TESTS = tst-pam_timestamp + +EXTRA_DIST = $(man_MANS) hmactest.c $(XMLS) $(TESTS) + +securelibdir = $(SECUREDIR) +secureconfdir = $(SCONFIGDIR) + +noinst_HEADERS = hmacsha1.h sha1.h + +AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include + +pam_timestamp_la_LDFLAGS = -no-undefined -avoid-version -module $(AM_LDFLAGS) +pam_timestamp_la_LIBADD = -L$(top_builddir)/libpam -lpam +if HAVE_VERSIONING + pam_timestamp_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map +endif + +securelib_LTLIBRARIES = pam_timestamp.la +sbin_PROGRAMS = pam_timestamp_check + +pam_timestamp_la_SOURCES = pam_timestamp.c hmacsha1.c sha1.c +pam_timestamp_la_CFLAGS = $(AM_CFLAGS) + +pam_timestamp_check_SOURCES = pam_timestamp_check.c +pam_timestamp_check_CFLAGS = $(AM_CFLAGS) @PIE_CFLAGS@ +pam_timestamp_check_LDADD = -L$(top_builddir)/libpam -lpam +pam_timestamp_check_LDFLAGS = @PIE_LDFLAGS@ + +hmacfile_SOURCES = hmacfile.c hmacsha1.c sha1.c +hmacfile_LDADD = -L$(top_builddir)/libpam -lpam + +if ENABLE_REGENERATE_MAN +noinst_DATA = README +README: pam_timestamp.8.xml +-include $(top_srcdir)/Make.xml.rules +endif + +noinst_PROGRAMS = hmacfile diff --git a/modules/pam_timestamp/README.xml b/modules/pam_timestamp/README.xml new file mode 100644 index 00000000..5b72deb1 --- /dev/null +++ b/modules/pam_timestamp/README.xml @@ -0,0 +1,46 @@ + + +--> +]> + +
+ + + + + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" + href="pam_timestamp.8.xml" xpointer='xpointer(//refnamediv[@id = "pam_timestamp-name"]/*)'/> + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
diff --git a/modules/pam_timestamp/hmacfile.c b/modules/pam_timestamp/hmacfile.c new file mode 100644 index 00000000..963f6f54 --- /dev/null +++ b/modules/pam_timestamp/hmacfile.c @@ -0,0 +1,157 @@ +/* + * Copyright 2003,2004 Red Hat, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, and the entire permission notice in its entirety, + * including the disclaimer of warranties. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * ALTERNATIVELY, this product may be distributed under the terms of + * the GNU Public License, in which case the provisions of the GPL are + * required INSTEAD OF the above restrictions. (This clause is + * necessary due to a potential bad interaction between the GPL and + * the restrictions contained in a BSD-style copyright.) + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "hmacsha1.h" + +static void +testvectors(void) +{ + void *hmac; + size_t hmac_len; + size_t i, j; + char hex[3]; + struct vector { + const char *key; + int key_len; + const char *data; + int data_len; + const char *hmac; + } vectors[] = { + { + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b", 20, + "Hi There", 8, + "b617318655057264e28bc0b6fb378c8ef146be00", + }, + + { + "Jefe", 4, + "what do ya want for nothing?", 28, + "effcdf6ae5eb2fa2d27416d5f184df9c259a7c79", + }, + + { + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", 20, + "\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd\xdd", 50, + "125d7342b9ac11cd91a39af48aa17b4f63f175d3", + }, + + { + "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19", 25, + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd", + 50, + "4c9007f4026250c6bc8414f9bf50c86c2d7235da", + }, + + { + "\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c\x0c", 20, + "Test With Truncation", 20, + "4c1a03424b55e07fe7f27be1d58bb9324a9a5a04", + }, + + { + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", + 80, + "Test Using Larger Than Block-Size Key - Hash Key First", 54, + "aa4ae5e15272d00e95705637ce8a3b55ed402112", + }, + + { + "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", + 80, + "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data", 73, + "e8e99d0f45237d786d6bbaa7965c7808bbff1a91", + }, + }; + for (i = 0; i < sizeof(vectors) / sizeof(vectors[0]); i++) { + hmac = NULL; + hmac_len = 0; + hmac_sha1_generate(&hmac, &hmac_len, + vectors[i].key, vectors[i].key_len, + vectors[i].data, vectors[i].data_len); + if (hmac != NULL) { + unsigned char *hmacc = hmac; + for (j = 0; j < hmac_len; j++) { + snprintf(hex, sizeof(hex), "%02x", + hmacc[j] & 0xff); + if (strncasecmp(hex, + vectors[i].hmac + 2 * j, + 2) != 0) { + printf("Incorrect result for vector %lu\n", i + 1); + exit(1); + + } + } + free(hmac); + } else { + printf("Error in vector %lu.\n", i + 1); + exit(1); + } + } +} + +int +main(int argc, char **argv) +{ + void *hmac; + size_t maclen; + const char *keyfile; + int i; + size_t j; + + testvectors(); + + keyfile = argv[1]; + for (i = 2; i < argc; i++) { + hmac_sha1_generate_file(NULL, &hmac, &maclen, keyfile, -1, -1, + argv[i], strlen(argv[i])); + if (hmac != NULL) { + unsigned char *hmacc = hmac; + for (j = 0; j < maclen; j++) { + printf("%02x", hmacc[j] & 0xff); + } + printf(" %s\n", argv[i]); + free(hmac); + } + } + return 0; +} diff --git a/modules/pam_timestamp/hmacsha1.c b/modules/pam_timestamp/hmacsha1.c new file mode 100644 index 00000000..5b3774ff --- /dev/null +++ b/modules/pam_timestamp/hmacsha1.c @@ -0,0 +1,293 @@ +/* An implementation of HMAC using SHA-1. + * + * Copyright (c) 2003 Red Hat, Inc. + * Written by Nalin Dahyabhai + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, and the entire permission notice in its entirety, + * including the disclaimer of warranties. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * ALTERNATIVELY, this product may be distributed under the terms of + * the GNU Public License, in which case the provisions of the GPL are + * required INSTEAD OF the above restrictions. (This clause is + * necessary due to a potential bad interaction between the GPL and + * the restrictions contained in a BSD-style copyright.) + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +/* See RFC 2104 for descriptions. */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "hmacsha1.h" +#include "sha1.h" + +#define MINIMUM_KEY_SIZE SHA1_OUTPUT_SIZE +#define MAXIMUM_KEY_SIZE SHA1_BLOCK_SIZE + +static void +hmac_key_create(pam_handle_t *pamh, const char *filename, size_t key_size, + uid_t owner, gid_t group) +{ + int randfd, keyfd, i; + size_t count; + char *key; + + /* Open the destination file. */ + keyfd = open(filename, + O_WRONLY | O_CREAT | O_EXCL | O_TRUNC, + S_IRUSR | S_IWUSR); + if (keyfd == -1) { + pam_syslog(pamh, LOG_ERR, "Cannot create %s: %m", filename); + return; + } + + + if (fchown(keyfd, owner, group) == -1) { + pam_syslog(pamh, LOG_ERR, "Cannot chown %s: %m", filename); + return; + } + + /* Open the random device to get key data. */ + randfd = open("/dev/urandom", O_RDONLY); + if (randfd == -1) { + pam_syslog(pamh, LOG_ERR, "Cannot open /dev/urandom: %m"); + close(keyfd); + return; + } + + /* Read random data for use as the key. */ + key = malloc(key_size); + count = 0; + if (!key) { + close(keyfd); + close(randfd); + return; + } + while (count < key_size) { + i = read(randfd, key + count, key_size - count); + if ((i == 0) || (i == -1)) { + break; + } + count += i; + } + + close(randfd); + + /* If we didn't get enough, stop here. */ + if (count < key_size) { + pam_syslog(pamh, LOG_ERR, "Short read on random device"); + memset(key, 0, key_size); + free(key); + close(keyfd); + return; + } + + /* Now write the key. */ + count = 0; + while (count < key_size) { + i = write(keyfd, key + count, key_size - count); + if ((i == 0) || (i == -1)) { + break; + } + count += i; + } + memset(key, 0, key_size); + free(key); + close(keyfd); +} + +static void +hmac_key_read(pam_handle_t *pamh, const char *filename, size_t default_key_size, + uid_t owner, gid_t group, + void **key, size_t *key_size) +{ + char *tmp; + int keyfd, i, count; + struct stat st; + + tmp = NULL; + *key = NULL; + *key_size = 0; + + /* Try to open the key file. */ + keyfd = open(filename, O_RDONLY); + if (keyfd == -1) { + /* No such thing? Create it. */ + if (errno == ENOENT) { + hmac_key_create(pamh, filename, default_key_size, + owner, group); + keyfd = open(filename, O_RDONLY); + } else { + pam_syslog(pamh, LOG_ERR, "Cannot open %s: %m", filename); + } + if (keyfd == -1) + return; + } + + /* If we failed to open the file, we're done. */ + if (fstat(keyfd, &st) == -1) { + close(keyfd); + return; + } + + /* Read the contents of the file. */ + tmp = malloc(st.st_size); + if (!tmp) { + close(keyfd); + return; + } + + count = 0; + while (count < st.st_size) { + i = read(keyfd, tmp + count, st.st_size - count); + if ((i == 0) || (i == -1)) { + break; + } + count += i; + } + close(keyfd); + + /* Require that we got the expected amount of data. */ + if (count < st.st_size) { + memset(tmp, 0, st.st_size); + free(tmp); + return; + } + + /* Pass the key back. */ + *key = tmp; + *key_size = st.st_size; +} + +static void +xor_block(unsigned char *p, unsigned char byte, size_t length) +{ + size_t i; + for (i = 0; i < length; i++) { + p[i] = p[i] ^ byte; + } +} + +void +hmac_sha1_generate(void **mac, size_t *mac_length, + const void *raw_key, size_t raw_key_size, + const void *text, size_t text_length) +{ + unsigned char key[MAXIMUM_KEY_SIZE], tmp_key[MAXIMUM_KEY_SIZE]; + size_t maximum_key_size = SHA1_BLOCK_SIZE, + minimum_key_size = SHA1_OUTPUT_SIZE; + const unsigned char ipad = 0x36, opad = 0x5c; + struct sha1_context sha1; + unsigned char inner[SHA1_OUTPUT_SIZE], outer[SHA1_OUTPUT_SIZE]; + + *mac = NULL; + *mac_length = 0; + +#ifndef HMAC_ALLOW_SHORT_KEYS + /* If the key is too short, don't bother. */ + if (raw_key_size < minimum_key_size) { + return; + } +#endif + + /* If the key is too long, "compress" it, else copy it and pad it + * out with zero bytes. */ + memset(key, 0, sizeof(key)); + if (raw_key_size > maximum_key_size) { + sha1_init(&sha1); + sha1_update(&sha1, raw_key, raw_key_size); + sha1_output(&sha1, key); + } else { + memmove(key, raw_key, raw_key_size); + } + + /* Generate the inner sum. */ + memcpy(tmp_key, key, sizeof(tmp_key)); + xor_block(tmp_key, ipad, sizeof(tmp_key)); + + sha1_init(&sha1); + sha1_update(&sha1, tmp_key, sizeof(tmp_key)); + sha1_update(&sha1, text, text_length); + sha1_output(&sha1, inner); + + /* Generate the outer sum. */ + memcpy(tmp_key, key, sizeof(tmp_key)); + xor_block(tmp_key, opad, sizeof(tmp_key)); + + sha1_init(&sha1); + sha1_update(&sha1, tmp_key, sizeof(tmp_key)); + sha1_update(&sha1, inner, sizeof(inner)); + sha1_output(&sha1, outer); + + /* We don't need any of the keys any more. */ + memset(key, 0, sizeof(key)); + memset(tmp_key, 0, sizeof(tmp_key)); + + /* Allocate space to store the output. */ + *mac_length = sizeof(outer); + *mac = malloc(*mac_length); + if (*mac == NULL) { + *mac_length = 0; + return; + } + + memcpy(*mac, outer, *mac_length); +} + +void +hmac_sha1_generate_file(pam_handle_t *pamh, void **mac, size_t *mac_length, + const char *keyfile, uid_t owner, gid_t group, + const void *text, size_t text_length) +{ + void *key; + size_t key_length; + + hmac_key_read(pamh, keyfile, + MAXIMUM_KEY_SIZE, owner, group, + &key, &key_length); + if (key == NULL) { + *mac = NULL; + *mac_length = 0; + return; + } + hmac_sha1_generate(mac, mac_length, + key, key_length, + text, text_length); + memset(key, 0, key_length); + free(key); +} + +size_t +hmac_sha1_size(void) +{ + return SHA1_OUTPUT_SIZE; +} diff --git a/modules/pam_timestamp/hmacsha1.h b/modules/pam_timestamp/hmacsha1.h new file mode 100644 index 00000000..200d1d06 --- /dev/null +++ b/modules/pam_timestamp/hmacsha1.h @@ -0,0 +1,15 @@ +#ifndef pam_timestamp_hmacfile_h +#define pam_timestamp_hmacfile_h + +#include +#include + +size_t hmac_sha1_size(void); +void hmac_sha1_generate(void **mac, size_t *mac_length, + const void *key, size_t key_length, + const void *text, size_t text_length); +void hmac_sha1_generate_file(pam_handle_t *pamh, void **mac, size_t *mac_length, + const char *keyfile, uid_t owner, gid_t group, + const void *text, size_t text_length); + +#endif diff --git a/modules/pam_timestamp/pam_timestamp.8.xml b/modules/pam_timestamp/pam_timestamp.8.xml new file mode 100644 index 00000000..c96424ab --- /dev/null +++ b/modules/pam_timestamp/pam_timestamp.8.xml @@ -0,0 +1,189 @@ + + + + + + + pam_timestamp + 8 + Linux-PAM Manual + + + + pam_timestamp + Authenticate using cached successful authentication attempts + + + + + pam_timestamp.so + + timestamp_timeout=number + + + verbose + + + debug + + + + + + + DESCRIPTION + + + In a nutshell, pam_timestamp caches successful +authentication attempts, and allows you to use a recent successful attempt as +the basis for authentication. This is similar mechanism which is used in +sudo. + + + When an application opens a session using pam_timestamp, +a timestamp file is created in the timestampdir directory +for the user. When an application attempts to authenticate the user, a +pam_timestamp will treat a sufficiently recent timestamp +file as grounds for succeeding. + + + + + + OPTIONS + + + + + + + + How long should pam_timestamp treat timestamp as valid after their + last modification date (in seconds). Default is 300 seconds. + + + + + + + + + + Attempt to inform the user when access is granted. + + + + + + + + + + Turns on debugging messages sent to + syslog3 + . + + + + + + + + MODULE TYPES PROVIDED + + The and + module types are provided. + + + + + RETURN VALUES + + + PAM_AUTH_ERR + + + The module was not able to retrive the user name or + no valid timestamp file was found. + + + + + PAM_SUCCESS + + + Everything was successfull. + + + + + PAM_SESSION_ERR + + + Timestamp file could not be created or updated. + + + + + + + + NOTES + + Users can get confused when they are not always asked for passwords when +running a given program. Some users reflexively begin typing information before +noticing that it is not being asked for. + + + + + EXAMPLES + +auth sufficient pam_timestamp.so verbose +auth required pam_unix.so + +session required pam_unix.so +session optional pam_timestamp.so + + + + + FILES + + + /var/run/sudo/... + + timestamp files and directories + + + + + + + SEE ALSO + + + pam_timestamp_check8 + , + + pam.conf5 + , + + pam.d5 + , + + pam8 + + + + + + AUTHOR + + pam_tally was written by Nalin Dahyabhai. + + + + + diff --git a/modules/pam_timestamp/pam_timestamp.c b/modules/pam_timestamp/pam_timestamp.c new file mode 100644 index 00000000..8a01c6f3 --- /dev/null +++ b/modules/pam_timestamp/pam_timestamp.c @@ -0,0 +1,816 @@ +/****************************************************************************** + * A module for Linux-PAM that will cache authentication results, inspired by + * (and implemented with an eye toward being mixable with) sudo. + * + * Copyright (c) 2002 Red Hat, Inc. + * Written by Nalin Dahyabhai + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, and the entire permission notice in its entirety, + * including the disclaimer of warranties. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * ALTERNATIVELY, this product may be distributed under the terms of + * the GNU Public License, in which case the provisions of the GPL are + * required INSTEAD OF the above restrictions. (This clause is + * necessary due to a potential bad interaction between the GPL and + * the restrictions contained in a BSD-style copyright.) + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#define PAM_SM_AUTH +#define PAM_SM_SESSION + +#include "config.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "hmacsha1.h" + +#include +#include +#include +#include + +/* The default timeout we use is 5 minutes, which matches the sudo default + * for the timestamp_timeout parameter. */ +#define DEFAULT_TIMESTAMP_TIMEOUT (5 * 60) +#define MODULE "pam_timestamp" +#define TIMESTAMPDIR "/var/run/sudo" +#define TIMESTAMPKEY TIMESTAMPDIR "/_pam_timestamp_key" + +/* Various buffers we use need to be at least as large as either PATH_MAX or + * LINE_MAX, so choose the larger of the two. */ +#if (LINE_MAX > PATH_MAX) +#define BUFLEN LINE_MAX +#else +#define BUFLEN PATH_MAX +#endif + +/* Return PAM_SUCCESS if the given directory looks "safe". */ +static int +check_dir_perms(pam_handle_t *pamh, const char *tdir) +{ + char scratch[BUFLEN]; + struct stat st; + int i; + /* Check that the directory is "safe". */ + if ((tdir == NULL) || (strlen(tdir) == 0)) { + return PAM_AUTH_ERR; + } + /* Iterate over the path, checking intermediate directories. */ + memset(scratch, 0, sizeof(scratch)); + for (i = 0; (tdir[i] != '\0') && (i < (int)sizeof(scratch)); i++) { + scratch[i] = tdir[i]; + if ((scratch[i] == '/') || (tdir[i + 1] == '\0')) { + /* We now have the name of a directory in the path, so + * we need to check it. */ + if ((lstat(scratch, &st) == -1) && (errno != ENOENT)) { + pam_syslog(pamh, LOG_ERR, + "unable to read `%s': %m", + scratch); + return PAM_AUTH_ERR; + } + if (!S_ISDIR(st.st_mode)) { + pam_syslog(pamh, LOG_ERR, + "`%s' is not a directory", + scratch); + return PAM_AUTH_ERR; + } + if (S_ISLNK(st.st_mode)) { + pam_syslog(pamh, LOG_ERR, + "`%s' is a symbolic link", + scratch); + return PAM_AUTH_ERR; + } + if (st.st_uid != 0) { + pam_syslog(pamh, LOG_ERR, + "`%s' owner UID != 0", + scratch); + return PAM_AUTH_ERR; + } + if (st.st_gid != 0) { + pam_syslog(pamh, LOG_ERR, + "`%s' owner GID != 0", + scratch); + return PAM_AUTH_ERR; + } + if ((st.st_mode & (S_IWGRP | S_IWOTH)) != 0) { + pam_syslog(pamh, LOG_ERR, + "`%s' permissions are lax", + scratch); + return PAM_AUTH_ERR; + } + } + } + return PAM_SUCCESS; +} + +/* Validate a tty pathname as actually belonging to a tty, and return its base + * name if it's valid. */ +static const char * +check_tty(const char *tty) +{ + /* Check that we're not being set up to take a fall. */ + if ((tty == NULL) || (strlen(tty) == 0)) { + return NULL; + } + /* Pull out the meaningful part of the tty's name. */ + if (strchr(tty, '/') != NULL) { + if (strncmp(tty, "/dev/", 5) != 0) { + /* Make sure the device node is actually in /dev/, + * noted by Michal Zalewski. */ + return NULL; + } + tty = strrchr(tty, '/') + 1; + } + /* Make sure the tty wasn't actually a directory (no basename). */ + if (strlen(tty) == 0) { + return NULL; + } + return tty; +} + +/* Determine the right path name for a given user's timestamp. */ +static int +format_timestamp_name(char *path, size_t len, + const char *timestamp_dir, + const char *tty, + const char *ruser, + const char *user) +{ + if (strcmp(ruser, user) == 0) { + return snprintf(path, len, "%s/%s/%s", timestamp_dir, + ruser, tty); + } else { + return snprintf(path, len, "%s/%s/%s:%s", timestamp_dir, + ruser, tty, user); + } +} + +/* Check if a given timestamp date, when compared to a current time, fits + * within the given interval. */ +static int +timestamp_good(time_t then, time_t now, time_t interval) +{ + if (((now >= then) && ((now - then) < interval)) || + ((now < then) && ((then - now) < (2 * interval)))) { + return PAM_SUCCESS; + } + return PAM_AUTH_ERR; +} + +static int +check_login_time(const char *ruser, time_t timestamp) +{ + struct utmp utbuf, *ut; + time_t oldest_login = 0; + + setutent(); + while(!getutent_r(&utbuf, &ut)) { + if (ut->ut_type != USER_PROCESS) { + continue; + } + if (strncmp(ruser, ut->ut_user, sizeof(ut->ut_user) != 0)) { + continue; + } + if (oldest_login == 0 || oldest_login > ut->ut_tv.tv_sec) { + oldest_login = ut->ut_tv.tv_sec; + } + } + endutent(); + if(oldest_login == 0 || timestamp < oldest_login) { + return PAM_AUTH_ERR; + } + return PAM_SUCCESS; +} + +#ifndef PAM_TIMESTAMP_MAIN +static int +get_ruser(pam_handle_t *pamh, char *ruserbuf, size_t ruserbuflen) +{ + const void *ruser; + struct passwd *pwd; + + if (ruserbuf == NULL || ruserbuflen < 1) + return -2; + /* Get the name of the source user. */ + if (pam_get_item(pamh, PAM_RUSER, &ruser) != PAM_SUCCESS) { + ruser = NULL; + } + if ((ruser == NULL) || (strlen(ruser) == 0)) { + /* Barring that, use the current RUID. */ + pwd = pam_modutil_getpwuid(pamh, getuid()); + if (pwd != NULL) { + ruser = pwd->pw_name; + } + } + if (ruser == NULL || strlen(ruser) >= ruserbuflen) { + *ruserbuf = '\0'; + return -1; + } + strcpy(ruserbuf, ruser); + return 0; +} + +/* Get the path to the timestamp to use. */ +static int +get_timestamp_name(pam_handle_t *pamh, int argc, const char **argv, + char *path, size_t len) +{ + const char *user, *tty; + const void *void_tty; + const char *tdir = TIMESTAMPDIR; + char ruser[BUFLEN]; + int i, debug = 0; + + /* Parse arguments. */ + for (i = 0; i < argc; i++) { + if (strcmp(argv[i], "debug") == 0) { + debug = 1; + } + } + for (i = 0; i < argc; i++) { + if (strncmp(argv[i], "timestampdir=", 13) == 0) { + tdir = argv[i] + 13; + if (debug) { + pam_syslog(pamh, LOG_DEBUG, + "storing timestamps in `%s'", + tdir); + } + } + } + i = check_dir_perms(pamh, tdir); + if (i != PAM_SUCCESS) { + return i; + } + /* Get the name of the target user. */ + if (pam_get_user(pamh, &user, NULL) != PAM_SUCCESS) { + user = NULL; + } + if ((user == NULL) || (strlen(user) == 0)) { + return PAM_AUTH_ERR; + } + if (debug) { + pam_syslog(pamh, LOG_DEBUG, "becoming user `%s'", user); + } + /* Get the name of the source user. */ + if (get_ruser(pamh, ruser, sizeof(ruser)) || strlen(ruser) == 0) { + return PAM_AUTH_ERR; + } + if (debug) { + pam_syslog(pamh, LOG_DEBUG, "currently user `%s'", ruser); + } + /* Get the name of the terminal. */ + if (pam_get_item(pamh, PAM_TTY, &void_tty) != PAM_SUCCESS) { + tty = NULL; + } else { + tty = void_tty; + } + if ((tty == NULL) || (strlen(tty) == 0)) { + tty = ttyname(STDIN_FILENO); + if ((tty == NULL) || (strlen(tty) == 0)) { + tty = ttyname(STDOUT_FILENO); + } + if ((tty == NULL) || (strlen(tty) == 0)) { + tty = ttyname(STDERR_FILENO); + } + if ((tty == NULL) || (strlen(tty) == 0)) { + /* Match sudo's behavior for this case. */ + tty = "unknown"; + } + } + if (debug) { + pam_syslog(pamh, LOG_DEBUG, "tty is `%s'", tty); + } + /* Snip off all but the last part of the tty name. */ + tty = check_tty(tty); + if (tty == NULL) { + return PAM_AUTH_ERR; + } + /* Generate the name of the file used to cache auth results. These + * paths should jive with sudo's per-tty naming scheme. */ + if (format_timestamp_name(path, len, tdir, tty, ruser, user) >= (int)len) { + return PAM_AUTH_ERR; + } + if (debug) { + pam_syslog(pamh, LOG_DEBUG, "using timestamp file `%s'", path); + } + return PAM_SUCCESS; +} + +/* Tell the user that access has been granted. */ +static void +verbose_success(pam_handle_t *pamh, long diff) +{ + pam_info(pamh, _("Access granted (last access was %ld seconds ago)."), diff); +} + +PAM_EXTERN int +pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) +{ + struct stat st; + time_t interval = DEFAULT_TIMESTAMP_TIMEOUT; + int i, fd, debug = 0, verbose = 0; + char path[BUFLEN], *p, *message, *message_end; + long tmp; + const void *void_service; + const char *service; + time_t now, then; + + /* Parse arguments. */ + for (i = 0; i < argc; i++) { + if (strcmp(argv[i], "debug") == 0) { + debug = 1; + } + } + for (i = 0; i < argc; i++) { + if (strncmp(argv[i], "timestamp_timeout=", 18) == 0) { + tmp = strtol(argv[i] + 18, &p, 0); + if ((p != NULL) && (*p == '\0')) { + interval = tmp; + if (debug) { + pam_syslog(pamh, LOG_DEBUG, + "setting timeout to %ld" + " seconds", (long)interval); + } + } + } else + if (strcmp(argv[i], "verbose") == 0) { + verbose = 1; + if (debug) { + pam_syslog(pamh, LOG_DEBUG, + "becoming more verbose"); + } + } + } + + if (flags & PAM_SILENT) { + verbose = 0; + } + + /* Get the name of the timestamp file. */ + if (get_timestamp_name(pamh, argc, argv, + path, sizeof(path)) != PAM_SUCCESS) { + return PAM_AUTH_ERR; + } + + /* Get the name of the service. */ + if (pam_get_item(pamh, PAM_SERVICE, &void_service) != PAM_SUCCESS) { + service = NULL; + } else { + service = void_service; + } + if ((service == NULL) || (strlen(service) == 0)) { + service = "(unknown)"; + } + + /* Open the timestamp file. */ + fd = open(path, O_RDONLY | O_NOFOLLOW); + if (fd == -1) { + if (debug) { + pam_syslog(pamh, LOG_DEBUG, + "cannot open timestamp `%s': %m", + path); + } + return PAM_AUTH_ERR; + } + + if (fstat(fd, &st) == 0) { + int count; + void *mac; + size_t maclen; + char ruser[BUFLEN]; + + /* Check that the file is owned by the superuser. */ + if ((st.st_uid != 0) || (st.st_gid != 0)) { + pam_syslog(pamh, LOG_ERR, "timestamp file `%s' is " + "not owned by root", path); + close(fd); + return PAM_AUTH_ERR; + } + + /* Check that the file is a normal file. */ + if (!(S_ISREG(st.st_mode))) { + pam_syslog(pamh, LOG_ERR, "timestamp file `%s' is " + "not a regular file", path); + close(fd); + return PAM_AUTH_ERR; + } + + /* Check that the file is the expected size. */ + if (st.st_size == 0) { + /* Invalid, but may have been created by sudo. */ + close(fd); + return PAM_AUTH_ERR; + } + if (st.st_size != + (off_t)(strlen(path) + 1 + sizeof(then) + hmac_sha1_size())) { + pam_syslog(pamh, LOG_NOTICE, "timestamp file `%s' " + "appears to be corrupted", path); + close(fd); + return PAM_AUTH_ERR; + } + + /* Read the file contents. */ + message = malloc(st.st_size); + count = 0; + if (!message) { + close(fd); + return PAM_BUF_ERR; + } + while (count < st.st_size) { + i = read(fd, message + count, st.st_size - count); + if ((i == 0) || (i == -1)) { + break; + } + count += i; + } + if (count < st.st_size) { + pam_syslog(pamh, LOG_NOTICE, "error reading timestamp " + "file `%s': %m", path); + close(fd); + free(message); + return PAM_AUTH_ERR; + } + message_end = message + strlen(path) + 1 + sizeof(then); + + /* Regenerate the MAC. */ + hmac_sha1_generate_file(pamh, &mac, &maclen, TIMESTAMPKEY, 0, 0, + message, message_end - message); + if ((mac == NULL) || + (memcmp(path, message, strlen(path)) != 0) || + (memcmp(mac, message_end, maclen) != 0)) { + pam_syslog(pamh, LOG_NOTICE, "timestamp file `%s' is " + "corrupted", path); + close(fd); + free(message); + return PAM_AUTH_ERR; + } + free(mac); + memmove(&then, message + strlen(path) + 1, sizeof(then)); + free(message); + + /* Check oldest login against timestamp */ + if (get_ruser(pamh, ruser, sizeof(ruser))) + { + close(fd); + return PAM_AUTH_ERR; + } + if (check_login_time(ruser, then) != PAM_SUCCESS) + { + pam_syslog(pamh, LOG_NOTICE, "timestamp file `%s' is " + "older than oldest login, disallowing " + "access to %s for user %s", + path, service, ruser); + close(fd); + return PAM_AUTH_ERR; + } + + /* Compare the dates. */ + now = time(NULL); + if (timestamp_good(then, now, interval) == PAM_SUCCESS) { + close(fd); + pam_syslog(pamh, LOG_NOTICE, "timestamp file `%s' is " + "only %ld seconds old, allowing access to %s " + "for user %s", path, (long) (now - st.st_mtime), + service, ruser); + if (verbose) { + verbose_success(pamh, now - st.st_mtime); + } + return PAM_SUCCESS; + } else { + close(fd); + pam_syslog(pamh, LOG_NOTICE, "timestamp file `%s' has " + "unacceptable age (%ld seconds), disallowing " + "access to %s for user %s", + path, (long) (now - st.st_mtime), + service, ruser); + return PAM_AUTH_ERR; + } + } + close(fd); + + /* Fail by default. */ + return PAM_AUTH_ERR; +} + +PAM_EXTERN int +pam_sm_setcred(pam_handle_t *pamh UNUSED, int flags UNUSED, int argc UNUSED, const char **argv UNUSED) +{ + return PAM_SUCCESS; +} + +PAM_EXTERN int +pam_sm_open_session(pam_handle_t *pamh, int flags UNUSED, int argc, const char **argv) +{ + char path[BUFLEN], subdir[BUFLEN], *text, *p; + void *mac; + size_t maclen; + time_t now; + int fd, i, debug = 0; + + /* Parse arguments. */ + for (i = 0; i < argc; i++) { + if (strcmp(argv[i], "debug") == 0) { + debug = 1; + } + } + + /* Get the name of the timestamp file. */ + if (get_timestamp_name(pamh, argc, argv, + path, sizeof(path)) != PAM_SUCCESS) { + return PAM_SESSION_ERR; + } + + /* Create the directory for the timestamp file if it doesn't already + * exist. */ + for (i = 1; path[i] != '\0'; i++) { + if (path[i] == '/') { + /* Attempt to create the directory. */ + strncpy(subdir, path, i); + subdir[i] = '\0'; + if (mkdir(subdir, 0700) == 0) { + /* Attempt to set the owner to the superuser. */ + lchown(subdir, 0, 0); + } else { + if (errno != EEXIST) { + if (debug) { + pam_syslog(pamh, LOG_DEBUG, + "error creating directory `%s': %m", + subdir); + } + return PAM_SESSION_ERR; + } + } + } + } + + /* Generate the message. */ + text = malloc(strlen(path) + 1 + sizeof(now) + hmac_sha1_size()); + if (text == NULL) { + pam_syslog(pamh, LOG_ERR, "unable to allocate memory: %m"); + return PAM_SESSION_ERR; + } + p = text; + + strcpy(text, path); + p += strlen(path) + 1; + + now = time(NULL); + memmove(p, &now, sizeof(now)); + p += sizeof(now); + + /* Generate the MAC and append it to the plaintext. */ + hmac_sha1_generate_file(pamh, &mac, &maclen, + TIMESTAMPKEY, + 0, 0, + text, p - text); + if (mac == NULL) { + pam_syslog(pamh, LOG_ERR, "failure generating MAC: %m"); + free(text); + return PAM_SESSION_ERR; + } + memmove(p, mac, maclen); + p += maclen; + free(mac); + + /* Open the file. */ + fd = open(path, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR); + if (fd == -1) { + pam_syslog(pamh, LOG_ERR, "unable to open `%s': %m", path); + free(text); + return PAM_SESSION_ERR; + } + + /* Attempt to set the owner to the superuser. */ + fchown(fd, 0, 0); + + /* Write the timestamp to the file. */ + if (write(fd, text, p - text) != p - text) { + pam_syslog(pamh, LOG_ERR, "unable to write to `%s': %m", path); + close(fd); + free(text); + return PAM_SESSION_ERR; + } + + /* Close the file and return successfully. */ + close(fd); + free(text); + pam_syslog(pamh, LOG_DEBUG, "updated timestamp file `%s'", path); + return PAM_SUCCESS; +} + +PAM_EXTERN int +pam_sm_close_session(pam_handle_t *pamh UNUSED, int flags UNUSED, int argc UNUSED, const char **argv UNUSED) +{ + return PAM_SUCCESS; +} + +#ifdef PAM_STATIC +/* static module data */ + +struct pam_module _pam_timestamp_modstruct = { + "pam_timestamp", + pam_sm_authenticate, + pam_sm_setcred, + NULL, + pam_sm_open_session, + pam_sm_close_session, + NULL +}; +#endif + + +#else /* PAM_TIMESTAMP_MAIN */ + +#define USAGE "Usage: %s [[-k] | [-d]] [target user]\n" +#define CHECK_INTERVAL 7 + +int +main(int argc, char **argv) +{ + int i, pretval = -1, retval = 0, dflag = 0, kflag = 0; + const char *target_user = NULL, *user = NULL, *tty = NULL; + struct passwd *pwd; + struct timeval tv; + fd_set write_fds; + char path[BUFLEN]; + struct stat st; + + /* Check that there's nothing funny going on with stdio. */ + if ((fstat(STDIN_FILENO, &st) == -1) || + (fstat(STDOUT_FILENO, &st) == -1) || + (fstat(STDERR_FILENO, &st) == -1)) { + /* Appropriate the "no controlling tty" error code. */ + return 3; + } + + /* Parse arguments. */ + while ((i = getopt(argc, argv, "dk")) != -1) { + switch (i) { + case 'd': + dflag++; + break; + case 'k': + kflag++; + break; + default: + fprintf(stderr, USAGE, argv[0]); + return 1; + break; + } + } + + /* Bail if both -k and -d are given together. */ + if ((kflag + dflag) > 1) { + fprintf(stderr, USAGE, argv[0]); + return 1; + } + + /* Check that we're setuid. */ + if (geteuid() != 0) { + fprintf(stderr, "%s must be setuid root\n", + argv[0]); + retval = 2; + } + + /* Check that we have a controlling tty. */ + tty = ttyname(STDIN_FILENO); + if ((tty == NULL) || (strlen(tty) == 0)) { + tty = ttyname(STDOUT_FILENO); + } + if ((tty == NULL) || (strlen(tty) == 0)) { + tty = ttyname(STDERR_FILENO); + } + if ((tty == NULL) || (strlen(tty) == 0)) { + tty = "unknown"; + } + + /* Get the name of the invoking (requesting) user. */ + pwd = getpwuid(getuid()); + if (pwd == NULL) { + retval = 4; + } + + /* Get the name of the target user. */ + user = strdup(pwd->pw_name); + if (user == NULL) { + retval = 4; + } else { + target_user = (optind < argc) ? argv[optind] : user; + if ((strchr(target_user, '.') != NULL) || + (strchr(target_user, '/') != NULL) || + (strchr(target_user, '%') != NULL)) { + fprintf(stderr, "unknown user: %s\n", + target_user); + retval = 4; + } + } + + /* Sanity check the tty to make sure we should be checking + * for timestamps which pertain to it. */ + if (retval == 0) { + tty = check_tty(tty); + if (tty == NULL) { + fprintf(stderr, "invalid tty\n"); + retval = 6; + } + } + + do { + /* Sanity check the timestamp directory itself. */ + if (retval == 0) { + if (check_dir_perms(NULL, TIMESTAMPDIR) != PAM_SUCCESS) { + retval = 5; + } + } + + if (retval == 0) { + /* Generate the name of the timestamp file. */ + format_timestamp_name(path, sizeof(path), TIMESTAMPDIR, + tty, user, target_user); + } + + if (retval == 0) { + if (kflag) { + /* Remove the timestamp. */ + if (lstat(path, &st) != -1) { + retval = unlink(path); + } + } else { + /* Check the timestamp. */ + if (lstat(path, &st) != -1) { + /* Check oldest login against timestamp */ + if (check_login_time(user, st.st_mtime) != PAM_SUCCESS) { + retval = 7; + } else if (!timestamp_good(st.st_mtime, time(NULL), + DEFAULT_TIMESTAMP_TIMEOUT) == PAM_SUCCESS) { + retval = 7; + } + } else { + retval = 7; + } + } + } + + if (dflag > 0) { + struct timeval now; + /* Send the would-be-returned value to our parent. */ + signal(SIGPIPE, SIG_DFL); + fprintf(stdout, "%d\n", retval); + fflush(stdout); + /* Wait. */ + gettimeofday(&now, NULL); + tv.tv_sec = CHECK_INTERVAL; + /* round the sleep time to get woken up on a whole second */ + tv.tv_usec = 1000000 - now.tv_usec; + if (now.tv_usec < 500000) + tv.tv_sec--; + FD_ZERO(&write_fds); + FD_SET(STDOUT_FILENO, &write_fds); + select(STDOUT_FILENO + 1, + NULL, NULL, &write_fds, + &tv); + pretval = retval; + retval = 0; + } + } while (dflag > 0); + + return retval; +} + +#endif diff --git a/modules/pam_timestamp/pam_timestamp_check.8.xml b/modules/pam_timestamp/pam_timestamp_check.8.xml new file mode 100644 index 00000000..85484a06 --- /dev/null +++ b/modules/pam_timestamp/pam_timestamp_check.8.xml @@ -0,0 +1,208 @@ + + + + + + + pam_timestamp_check + 8 + Linux-PAM Manual + + + + pam_timestamp_check + Check to see if the default timestamp is valid + + + + + pam_timestamp_check + + -k + + + -d + + + target_user + + + + + + + DESCRIPTION + + + With no arguments pam_timestamp_check will check to +see if the default timestamp is valid, or optionally remove it. + + + + + + OPTIONS + + + + + + + + Instead of checking the validity of a timestamp, remove it. + This is analogous to sudo's -k option. + + + + + + + + + + Instead of returning validity using an exit status, + loop indefinitely, polling regularly and printing the status on + standard output. + + + + + + + + + + By default pam_timestamp_check checks or removes + timestamps generated by pam_timestamp when + the user authenticates as herself. When the user authenticates as a + different user, the name of the timestamp file changes to + accomodate this. target_user allows + to specify this user name. + + + + + + + + RETURN VALUES + + + 0 + + + The timestamp is valid. + + + + + 2 + + + The binary is not setuid root. + + + + + 3 + + + Invalid invocation. + + + + + 4 + + + User is unknown. + + + + + 5 + + + Permissions error. + + + + + 6 + + + Invalid controlling tty. + + + + + 7 + + + Timestamp is not valid. + + + + + + + + NOTES + + Users can get confused when they are not always asked for passwords when +running a given program. Some users reflexively begin typing information before +noticing that it is not being asked for. + + + + + EXAMPLES + +auth sufficient pam_timestamp.so verbose +auth required pam_unix.so + +session required pam_unix.so +session optional pam_timestamp.so + + + + + FILES + + + /var/run/sudo/... + + timestamp files and directories + + + + + + + SEE ALSO + + + pam_timestamp_check8 + , + + pam.conf5 + , + + pam.d5 + , + + pam8 + + + + + + AUTHOR + + pam_tally was written by Nalin Dahyabhai. + + + + + diff --git a/modules/pam_timestamp/pam_timestamp_check.c b/modules/pam_timestamp/pam_timestamp_check.c new file mode 100644 index 00000000..52b5a95a --- /dev/null +++ b/modules/pam_timestamp/pam_timestamp_check.c @@ -0,0 +1,42 @@ +/****************************************************************************** + * A module for Linux-PAM that will cache authentication results, inspired by + * (and implemented with an eye toward being mixable with) sudo. + * + * Copyright (c) 2002 Red Hat, Inc. + * Written by Nalin Dahyabhai + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, and the entire permission notice in its entirety, + * including the disclaimer of warranties. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * ALTERNATIVELY, this product may be distributed under the terms of + * the GNU Public License, in which case the provisions of the GPL are + * required INSTEAD OF the above restrictions. (This clause is + * necessary due to a potential bad interaction between the GPL and + * the restrictions contained in a BSD-style copyright.) + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#define PAM_TIMESTAMP_MAIN 1 +#include "pam_timestamp.c" diff --git a/modules/pam_timestamp/sha1.c b/modules/pam_timestamp/sha1.c new file mode 100644 index 00000000..e6705eb5 --- /dev/null +++ b/modules/pam_timestamp/sha1.c @@ -0,0 +1,254 @@ +/* Yet another SHA-1 implementation. + * + * Copyright (c) 2003 Red Hat, Inc. + * Written by Nalin Dahyabhai + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, and the entire permission notice in its entirety, + * including the disclaimer of warranties. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * ALTERNATIVELY, this product may be distributed under the terms of + * the GNU Public License, in which case the provisions of the GPL are + * required INSTEAD OF the above restrictions. (This clause is + * necessary due to a potential bad interaction between the GPL and + * the restrictions contained in a BSD-style copyright.) + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +/* See http://www.itl.nist.gov/fipspubs/fip180-1.htm for descriptions. */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "sha1.h" + +static unsigned char +padding[SHA1_BLOCK_SIZE] = { + 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +static u_int32_t +F(u_int32_t b, u_int32_t c, u_int32_t d) +{ + return (b & c) | ((~b) & d); +} + +static u_int32_t +G(u_int32_t b, u_int32_t c, u_int32_t d) +{ + return b ^ c ^ d; +} + +static u_int32_t +H(u_int32_t b, u_int32_t c, u_int32_t d) +{ + return (b & c) | (b & d) | (c & d); +} + +static u_int32_t +RL(u_int32_t n, u_int32_t s) +{ + return (n << s) | (n >> (32 - s)); +} + +static u_int32_t +sha1_round(u_int32_t (*FUNC)(u_int32_t, u_int32_t, u_int32_t), + u_int32_t a, u_int32_t b, u_int32_t c, u_int32_t d, u_int32_t e, + u_int32_t i, u_int32_t n) +{ + return RL(a, 5) + FUNC(b, c, d) + e + i + n; +} + +void +sha1_init(struct sha1_context *ctx) +{ + memset(ctx, 0, sizeof(*ctx)); + ctx->a = 0x67452301; + ctx->b = 0xefcdab89; + ctx->c = 0x98badcfe; + ctx->d = 0x10325476; + ctx->e = 0xc3d2e1f0; +} + +static void +sha1_process(struct sha1_context *ctx, u_int32_t buffer[SHA1_BLOCK_SIZE / 4]) +{ + u_int32_t a, b, c, d, e, temp; + u_int32_t data[80]; + int i; + + for (i = 0; i < 16; i++) { + data[i] = htonl(buffer[i]); + } + for (i = 16; i < 80; i++) { + data[i] = RL(data[i - 3] ^ data[i - 8] ^ data[i - 14] ^ data[i - 16], 1); + } + + a = ctx->a; + b = ctx->b; + c = ctx->c; + d = ctx->d; + e = ctx->e; + + for (i = 0; i < 20; i++) { + temp = sha1_round(F, a, b, c, d, e, data[i], 0x5a827999); + e = d; d = c; c = RL(b, 30); b = a; a = temp; + } + for (i = 20; i < 40; i++) { + temp = sha1_round(G, a, b, c, d, e, data[i], 0x6ed9eba1); + e = d; d = c; c = RL(b, 30); b = a; a = temp; + } + for (i = 40; i < 60; i++) { + temp = sha1_round(H, a, b, c, d, e, data[i], 0x8f1bbcdc); + e = d; d = c; c = RL(b, 30); b = a; a = temp; + } + for (i = 60; i < 80; i++) { + temp = sha1_round(G, a, b, c, d, e, data[i], 0xca62c1d6); + e = d; d = c; c = RL(b, 30); b = a; a = temp; + } + + ctx->a += a; + ctx->b += b; + ctx->c += c; + ctx->d += d; + ctx->e += e; + + memset(buffer, 0, sizeof(buffer[0]) * SHA1_BLOCK_SIZE / 4); + memset(data, 0, sizeof(data)); +} + +void +sha1_update(struct sha1_context *ctx, const unsigned char *data, size_t length) +{ + size_t i = 0, l = length, c, t; + u_int32_t count = 0; + + /* Process any pending + data blocks. */ + while (l + ctx->pending_count >= SHA1_BLOCK_SIZE) { + c = ctx->pending_count; + t = SHA1_BLOCK_SIZE - c; + memcpy(ctx->pending + c, &data[i], t); + sha1_process(ctx, (u_int32_t*) ctx->pending); + i += t; + l -= t; + ctx->pending_count = 0; + } + + /* Save what's left of the data block as a pending data block. */ + c = ctx->pending_count; + memcpy(ctx->pending + c, &data[i], l); + ctx->pending_count += l; + + /* Update the message length. */ + ctx->count += length; + + /* Update our internal counts. */ + if (length != 0) { + count = ctx->counts[0]; + ctx->counts[0] += length; + if (count >= ctx->counts[0]) { + ctx->counts[1]++; + } + } +} + +size_t +sha1_output(struct sha1_context *ctx, unsigned char *out) +{ + struct sha1_context ctx2; + + /* Output the sum. */ + if (out != NULL) { + u_int32_t c; + memcpy(&ctx2, ctx, sizeof(ctx2)); + + /* Pad this block. */ + c = ctx2.pending_count; + memcpy(ctx2.pending + c, + padding, SHA1_BLOCK_SIZE - c); + + /* Do we need to process two blocks now? */ + if (c >= (SHA1_BLOCK_SIZE - (sizeof(u_int32_t) * 2))) { + /* Process this block. */ + sha1_process(&ctx2, + (u_int32_t*) ctx2.pending); + /* Set up another block. */ + ctx2.pending_count = 0; + memset(ctx2.pending, 0, SHA1_BLOCK_SIZE); + ctx2.pending[0] = + (c == SHA1_BLOCK_SIZE) ? 0x80 : 0; + } + + /* Process the final block. */ + ctx2.counts[1] <<= 3; + if (ctx2.counts[0] >> 29) { + ctx2.counts[1] |= + (ctx2.counts[0] >> 29); + } + ctx2.counts[0] <<= 3; + ctx2.counts[0] = htonl(ctx2.counts[0]); + ctx2.counts[1] = htonl(ctx2.counts[1]); + memcpy(ctx2.pending + 56, + &ctx2.counts[1], sizeof(u_int32_t)); + memcpy(ctx2.pending + 60, + &ctx2.counts[0], sizeof(u_int32_t)); + sha1_process(&ctx2, (u_int32_t*) ctx2.pending); + + /* Output the data. */ + out[ 3] = (ctx2.a >> 0) & 0xff; + out[ 2] = (ctx2.a >> 8) & 0xff; + out[ 1] = (ctx2.a >> 16) & 0xff; + out[ 0] = (ctx2.a >> 24) & 0xff; + + out[ 7] = (ctx2.b >> 0) & 0xff; + out[ 6] = (ctx2.b >> 8) & 0xff; + out[ 5] = (ctx2.b >> 16) & 0xff; + out[ 4] = (ctx2.b >> 24) & 0xff; + + out[11] = (ctx2.c >> 0) & 0xff; + out[10] = (ctx2.c >> 8) & 0xff; + out[ 9] = (ctx2.c >> 16) & 0xff; + out[ 8] = (ctx2.c >> 24) & 0xff; + + out[15] = (ctx2.d >> 0) & 0xff; + out[14] = (ctx2.d >> 8) & 0xff; + out[13] = (ctx2.d >> 16) & 0xff; + out[12] = (ctx2.d >> 24) & 0xff; + + out[19] = (ctx2.e >> 0) & 0xff; + out[18] = (ctx2.e >> 8) & 0xff; + out[17] = (ctx2.e >> 16) & 0xff; + out[16] = (ctx2.e >> 24) & 0xff; + } + + return SHA1_OUTPUT_SIZE; +} diff --git a/modules/pam_timestamp/sha1.h b/modules/pam_timestamp/sha1.h new file mode 100644 index 00000000..667b87ca --- /dev/null +++ b/modules/pam_timestamp/sha1.h @@ -0,0 +1,60 @@ +/* Yet another SHA-1 implementation. + * + * Copyright (c) 2003 Red Hat, Inc. + * Written by Nalin Dahyabhai + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, and the entire permission notice in its entirety, + * including the disclaimer of warranties. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * ALTERNATIVELY, this product may be distributed under the terms of + * the GNU Public License, in which case the provisions of the GPL are + * required INSTEAD OF the above restrictions. (This clause is + * necessary due to a potential bad interaction between the GPL and + * the restrictions contained in a BSD-style copyright.) + * + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +#ifndef pam_timestamp_sha1_h +#define pam_timestamp_sha1_h + +#include + +#define SHA1_BLOCK_SIZE 64 + +struct sha1_context { + size_t count; + unsigned char pending[SHA1_BLOCK_SIZE]; + u_int32_t counts[2]; + size_t pending_count; + u_int32_t a, b, c, d, e; +}; + +#define SHA1_OUTPUT_SIZE 20 + +void sha1_init(struct sha1_context *ctx); +void sha1_update(struct sha1_context *ctx, + const unsigned char *data, size_t length); +size_t sha1_output(struct sha1_context *ctx, unsigned char *out); + +#endif diff --git a/modules/pam_timestamp/tst-pam_timestamp b/modules/pam_timestamp/tst-pam_timestamp new file mode 100755 index 00000000..1d425b83 --- /dev/null +++ b/modules/pam_timestamp/tst-pam_timestamp @@ -0,0 +1,2 @@ +#!/bin/sh +../../tests/tst-dlopen .libs/pam_timestamp.so diff --git a/po/Linux-PAM.pot b/po/Linux-PAM.pot index 55b4ff46..054b95af 100644 --- a/po/Linux-PAM.pot +++ b/po/Linux-PAM.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "" #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "" @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "" @@ -353,13 +353,13 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "" @@ -424,20 +424,20 @@ msgstr "" msgid "login: failure forking: %m" msgstr "" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "" -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "" @@ -446,7 +446,7 @@ msgstr "" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -488,11 +488,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -506,6 +501,11 @@ msgid "" " [-r] [--reset[=n]] [--quiet]\n" msgstr "" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" diff --git a/po/POTFILES.in b/po/POTFILES.in index 5ca1caa9..a5db7a10 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -74,6 +74,8 @@ ./modules/pam_tally2/pam_tally2_app.c ./modules/pam_tally2/pam_tally2.c ./modules/pam_time/pam_time.c +./modules/pam_timestamp/pam_timestamp.c +./modules/pam_timestamp/pam_timestamp_check.c ./modules/pam_tty_audit/pam_tty_audit.c ./modules/pam_umask/pam_umask.c ./modules/pam_unix/bigcrypt.c diff --git a/po/ar.po b/po/ar.po index 68ecd939..77b6480f 100644 --- a/po/ar.po +++ b/po/ar.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: @PACKAGE@\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2001-07-13 15:36+0200\n" "Last-Translator: Novell Language \n" "Language-Team: Novell Language \n" @@ -166,19 +166,19 @@ msgid "Unknown PAM error" msgstr "خطأ PAM غير معروف" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "كلمة سر %s%s الجديدة: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "أعد كتابة كلمة سر %s%s الجديدة: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "عذرًا، يوجد عدم تطابق بين كلمات السر." @@ -229,7 +229,7 @@ msgid "Password unchanged" msgstr "لم يتم تغيير كلمة السر" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "كلمة سر سيئة: %s" @@ -352,14 +352,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "لم يتم تغيير كلمة السر" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "كلمة السر التي تم إدخالها مستخدمة بالفعل. اختر كلمة سر أخرى." @@ -428,20 +428,20 @@ msgstr "فشل pam_set_item()\n" msgid "login: failure forking: %m" msgstr "تسجيل الدخول: فشل تشعيب: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "تغيير كلمة سر STRESS لـ" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "أدخل كلمة سر STRESS الجديدة: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "أعد كتابة كلمة سر STRESS الجديدة: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "إعادة كتابة كلمة السر غير صحيحة؛ كلمة السر لم تتغير" @@ -450,7 +450,7 @@ msgstr "إعادة كتابة كلمة السر غير صحيحة؛ كلمة ا msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -493,11 +493,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: لا يمكن إعادة تعيين كافة المستخدمين إلى رقم غير الصفر\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -512,6 +507,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "انتهت مدة صلاحية الحساب الخاص بك؛ الرجاء الاتصال بمسؤول النظام" diff --git a/po/as.po b/po/as.po index 4810e74e..b705ad97 100644 --- a/po/as.po +++ b/po/as.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-13 11:23+0530\n" "Last-Translator: Amitakhya Phukan \n" "Language-Team: Assamese\n" @@ -168,19 +168,19 @@ msgid "Unknown PAM error" msgstr "অজ্ঞাত PAM ভুল" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "নতুন %s%s গুপ্তশব্দ: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "নতুন %s%s গুপ্তশব্দ পুনঃ লিখক: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "ক্ষমা কৰিব, গুপ্তশব্দৰ অমিল " @@ -231,7 +231,7 @@ msgid "Password unchanged" msgstr "গুপ্ত শব্দ অপৰিবৰ্ত্তিত" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "বেয়া গুপ্তশব্দ: %s" @@ -354,14 +354,14 @@ msgstr "'%s' পঞ্জিকা সৃষ্টি কৰা হৈছে । msgid "Unable to create directory %s: %m" msgstr "%s পঞ্জিকা সৃষ্টি কৰিব নোৱাৰি: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "গুপ্ত শব্দ অপৰিবৰ্ত্তিত" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "গুপ্তশব্দ ইতিমধ্যে ব্যৱহৃত । অন্য এটা বাচি লওক ।" @@ -426,20 +426,20 @@ msgstr "pam_set_item() কৰোঁতে বিফল\n" msgid "login: failure forking: %m" msgstr "প্ৰৱেশ: forking ত বিফল: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "%s ৰ বাবে STRESS গুপ্তশব্দ সলনি কৰা হৈছে ।" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "নতুন STRESS গুপ্তশব্দ দিয়ক:" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "নতুন STRESS গুপ্তশব্দ পুনঃ লিখক: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "সত্যৰ প্ৰতিপাদন ভুলকৈ লিখা গ'ল;গুপ্তশব্দ অপৰিবৰ্ত্তিত" @@ -448,7 +448,7 @@ msgstr "সত্যৰ প্ৰতিপাদন ভুলকৈ লিখা msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -491,11 +491,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: সকলো ব্যৱহাৰকৰোঁতাক শূণ্য নোহোৱা অৱস্থালৈ পুনঃ প্ৰতিষ্ঠা কৰিব নোৱাৰি\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -510,6 +505,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "আপোনাৰ হিচাপ অন্ত হ'ল; অনুগ্ৰহ কৰি আপোনাৰ ব্যৱাস্থাপ্ৰণালীৰ " diff --git a/po/bn_IN.po b/po/bn_IN.po index b6c40529..0ddf5c46 100644 --- a/po/bn_IN.po +++ b/po/bn_IN.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-20 12:40+0530\n" "Last-Translator: Runa Bhattacharjee \n" "Language-Team: Bengali INDIA \n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "PAM সংক্রান্ত অজানা ত্রুটি" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "নতুন %s%s পাসওয়ার্ড: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "নতুন %s%s পাসওয়ার্ড পুনরায় লিখুন: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "দুঃখিত, পাসওয়ার্ড দুটি এক নয়।" @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "পাসওয়ার্ড পরিবর্তন করা হয়নি" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "পাসওয়ার্ড ভাল নয়: %s" @@ -353,13 +353,13 @@ msgstr "'%s' ডিরেক্টরি নির্মাণ করা হচ msgid "Unable to create directory %s: %m" msgstr "ডিরেক্টরি %s নির্মাণ করতে ব্যর্থ: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "পাসওয়ার্ড পরিবর্তনের কর্ম পরিত্যাগ করা হয়েছে।" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "পাসওয়ার্ড পূর্বে ব্যবহৃত হয়েছে। একটি পৃথক পাসওয়ার্ড নির্বাচন করুন।" @@ -424,20 +424,20 @@ msgstr "pam_set_item() করতে ব্যর্থ\n" msgid "login: failure forking: %m" msgstr "লগ-ইন: fork করতে ব্যর্থ: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "%s-র STRESS পাসওয়ার্ড পরিবর্তন করা হচ্ছে।" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "নতুন STRESS পাসওয়ার্ড লিখুন: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "নতুন STRESS পাসওয়ার্ড পুনরায় লিখুন: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "নিশ্চায়ন কাল ভুল টাইপ করা হয়েছে; পাসওয়ার্ড পরিবর্তন করা হয়নি" @@ -446,7 +446,7 @@ msgstr "নিশ্চায়ন কাল ভুল টাইপ করা হ msgid "Account temporary locked (%ld seconds left)" msgstr "সাময়িকরূপে অ্যাকাউন্ট লক করা হয়েছে (%ld সেকেন্ড অবশিষ্ট)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "%u ব্যর্থ লগ-ইনের ফলে অ্যাকাউন্ট লক করা হয়েছে" @@ -489,11 +489,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: সব ব্যবহারকারীর জন্য শূণ্য-ভিন্ন মান ধার্য করতে ব্যর্থ\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "%u ব্যর্থ লগ-ইনের ফলে অ্যাকাউন্ট লক করা হয়েছে" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -508,6 +503,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" @@ -564,6 +564,10 @@ msgstr "নতুন UNIX পাসওয়ার্ড উল্লেখ কর msgid "Retype new UNIX password: " msgstr "নতুন UNIX পাসওয়ার্ড পুনরায় লিখুন: " +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "%u ব্যর্থ লগ-ইনের ফলে অ্যাকাউন্ট লক করা হয়েছে" + #~ msgid "has been already used" #~ msgstr "পূর্বে ব্যবহৃত হয়েছে" diff --git a/po/ca.po b/po/ca.po index 69533a48..7ccb9b4b 100644 --- a/po/ca.po +++ b/po/ca.po @@ -17,7 +17,7 @@ msgid "" msgstr "" "Project-Id-Version: linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-15 16:10+0200\n" "Last-Translator: Xavier Queralt Mateu \n" "Language-Team: Catalan \n" @@ -177,19 +177,19 @@ msgid "Unknown PAM error" msgstr "Error de PAM desconegut" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nova contrasenya de %s%s: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Torneu a escriure la nova contrasenya de %s%s: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Les contrasenyes no coincideixen." @@ -240,7 +240,7 @@ msgid "Password unchanged" msgstr "No s'ha canviat la contrasenya" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "CONTRASENYA INCORRECTA: %s" @@ -363,13 +363,13 @@ msgstr "Creant el directori '%s'." msgid "Unable to create directory %s: %m" msgstr "No s'ha pogut crear el directori %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "No s'ha canviat la contrasenya." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Aquesta contrasenya ja s'ha fet servir. Trieu-ne una altra." @@ -434,20 +434,20 @@ msgstr "s'ha produït un error en pam_set_item()\n" msgid "login: failure forking: %m" msgstr "entrada: ha fallat la bifurcació: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "S'està canviant la contrasenya d'STRESS per a %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Introduïu la nova contrasenya d'STRESS: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Torneu a escriure la nova contrasenya d'STRESS: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "" "Error d'escriptura durant la verificació; no s'ha canviat la contrasenya" @@ -457,7 +457,7 @@ msgstr "" msgid "Account temporary locked (%ld seconds left)" msgstr "Compte bloquejat temporalment (queden %ld segons)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -502,12 +502,6 @@ msgid "%s: Can't reset all users to non-zero\n" msgstr "" "%s: no es poden restablir tots els usuaris a un valor diferent de zero\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" -"El compte ha estat bloquejat ja que s'ha intentat entrar %u cops sense èxit" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -522,6 +516,11 @@ msgid "" msgstr "" "%s: [--file nom_fitxer_arrel] [--user nom_usuari] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "El vostre compte ha caducat. Contacteu amb l'administrador del sistema" @@ -577,6 +576,12 @@ msgstr "Introduïu la nova contrasenya d'UNIX: " msgid "Retype new UNIX password: " msgstr "Torneu a escriure la nova contrasenya d'UNIX: " +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "" +#~ "El compte ha estat bloquejat ja que s'ha intentat entrar %u cops sense " +#~ "èxit" + #~ msgid "" #~ "There was %d failed login attempt since the last successful login.There " #~ "were %d failed login attempts since the last successful login." diff --git a/po/cs.po b/po/cs.po index 4273cbf2..7bfa4125 100644 --- a/po/cs.po +++ b/po/cs.po @@ -2,13 +2,13 @@ # This file is distributed under the same license as the PACKAGE package. # Copyright (C) YEAR Linux-PAM Project. # Klara Cihlarova , 2005, 2006. -# fixes by Tomas Mraz , 2005. +# Tomas Mraz , 2005, 2008. msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" -"PO-Revision-Date: 2008-10-13 21:54+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" +"PO-Revision-Date: 2008-11-28 15:22+0100\n" "Last-Translator: Tomas Mraz \n" "Language-Team: cs_CZ \n" "MIME-Version: 1.0\n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "Neznámá chyba PAM" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nové %s%sheslo: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Opakujte nové %s%sheslo: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Hesla se neshodují." @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "Heslo nebylo změněno" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "ŠPATNÉ HESLO: %s" @@ -354,13 +354,13 @@ msgstr "Vytváření adresáře '%s'." msgid "Unable to create directory %s: %m" msgstr "Nezdařilo se vytvořit adresář %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "Změna hesla přerušena." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Heslo již bylo použito. Zvolte jiné." @@ -425,20 +425,20 @@ msgstr "chyba pam_set_item()\n" msgid "login: failure forking: %m" msgstr "login: chyba forku: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Změna STRESS hesla pro %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Zadejte nové STRESS heslo: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Opakujte nové STRESS heslo: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Chybné potvrzení. Heslo nezměněno" @@ -447,7 +447,7 @@ msgstr "Chybné potvrzení. Heslo nezměněno" msgid "Account temporary locked (%ld seconds left)" msgstr "Účet dočasně uzamčen (zbývá %ld vteřin)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "Účet uzamčen z důvodu %u neúspěšných pokusů o přihlášení" @@ -491,25 +491,26 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Nelze resetovat všechny uživatele nenulově\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "Účet uzamčen z důvodu %u neúspěšných pokusů o přihlášení" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" -msgstr "" +msgstr "Login Selhání Poslední selhání Od\n" #: modules/pam_tally2/pam_tally2.c:881 -#, fuzzy, c-format +#, c-format msgid "" "%s: [-f rooted-filename] [--file rooted-filename]\n" " [-u username] [--user username]\n" " [-r] [--reset[=n]] [--quiet]\n" msgstr "" -"%s: [--file jmeno_souboru] [--user uzivatelske_jmeno] [--reset[=n]] [--" -"quiet]\n" +"%s: [-f plna-cesta-k-souboru] [--file plna-cesta-k-souboru]\n" +" [-u uzivatelske-jmeno] [--user uzivatelske-jmeno]\n" +" [-r] [--reset[=n]] [--quiet]\n" + +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "Přístup povolen (poslední přístup před %ld vteřinami)." #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" diff --git a/po/da.po b/po/da.po index 8abc754f..3abfe1da 100644 --- a/po/da.po +++ b/po/da.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: @PACKAGE@\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2005-08-16 20:00+0200\n" "Last-Translator: Novell Language \n" "Language-Team: Novell Language \n" @@ -171,19 +171,19 @@ msgid "Unknown PAM error" msgstr "Ukendt PAM-fejl" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Ny %s%sadgangskode: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Genindtast ny %s%sadgangskode: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Adgangskoderne stemmer desværre ikke overens." @@ -234,7 +234,7 @@ msgid "Password unchanged" msgstr "Adgangskoden er uændret" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "DÅRLIG ADGANGSKODE: %s" @@ -357,14 +357,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Adgangskoden er uændret" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Adgangskoden er allerede blevet brugt. Vælg en anden." @@ -435,20 +435,20 @@ msgstr "pam_set_item() mislykkedes\n" msgid "login: failure forking: %m" msgstr "login: fejl ved forking: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "Ændrer STRESS-adgangskode for" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Indtast ny STRESS-adgangskode: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Genindtast ny STRESS-adgangskode: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Bekræftelsen blev angivet forkert. Adgangskoden forbliver uændret" @@ -457,7 +457,7 @@ msgstr "Bekræftelsen blev angivet forkert. Adgangskoden forbliver uændret" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -500,11 +500,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Alle brugere kunne ikke nulstilles til ikke-nul\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -519,6 +514,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Din konto er udløbet. Kontakt din systemadministrator" diff --git a/po/de.po b/po/de.po index dae00135..fc18f978 100644 --- a/po/de.po +++ b/po/de.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-27 07:45+0100\n" "Last-Translator: Fabian Affolter \n" "Language-Team: German \n" @@ -170,19 +170,19 @@ msgid "Unknown PAM error" msgstr "Unbekannter PAM-Fehler" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Geben Sie ein neues %s%sPasswort ein: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Geben Sie das neue %s%sPasswort erneut ein: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Die Passwörter stimmen nicht überein." @@ -233,7 +233,7 @@ msgid "Password unchanged" msgstr "Passwort nicht geändert" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "Schlechtes Passwort: %s" @@ -359,13 +359,13 @@ msgstr "Erstelle Verzeichnis '%s'." msgid "Unable to create directory %s: %m" msgstr "Verzeichnis %s kann nicht erstellt werden: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "Passwort Änderung wurde abgebrochen." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Passwort wurde bereits verwendet. Wählen Sie ein anderes aus." @@ -430,20 +430,20 @@ msgstr "Fehler bei pam_set_item()\n" msgid "login: failure forking: %m" msgstr "Anmeldung: Fehler bei Abspaltung: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Ändern des STRESS-Passworts für %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Geben Sie ein neues STRESS-Passwort ein: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Geben Sie das neue STRESS-Passwort erneut ein: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Bestätigungspasswort falsch eingegeben; Passwort nicht geändert" @@ -452,7 +452,7 @@ msgstr "Bestätigungspasswort falsch eingegeben; Passwort nicht geändert" msgid "Account temporary locked (%ld seconds left)" msgstr "Account temporär gesperrt (noch %ld Sekunden)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "Der Account ist wegen %u fehlgeschlagener Login-Versuche gesperrt" @@ -496,11 +496,6 @@ msgid "%s: Can't reset all users to non-zero\n" msgstr "" "%s: Es können nicht alle Benutzer auf Nicht-null zurückgesetzt werden\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "Der Account ist wegen %hu fehlgeschlagener Login-Versuche gesperrt" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -517,6 +512,11 @@ msgstr "" " [-u username] [--user username]\n" " [-r] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Ihr Konto ist abgelaufen. Wenden Sie sich an den Systemadministrator" @@ -571,6 +571,9 @@ msgstr "Geben Sie ein neues UNIX-Passwort ein: " msgid "Retype new UNIX password: " msgstr "Geben Sie das neue UNIX-Passwort erneut ein: " +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "Der Account ist wegen %hu fehlgeschlagener Login-Versuche gesperrt" + #~ msgid "has been already used" #~ msgstr "es wurde bereits verwendet" diff --git a/po/es.po b/po/es.po index c1151f95..2aeb0f1d 100644 --- a/po/es.po +++ b/po/es.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip.es\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-02-21 00:03-0200\n" "Last-Translator: Domingo Becker \n" "Language-Team: Spanish \n" @@ -171,19 +171,19 @@ msgid "Unknown PAM error" msgstr "Error desconocido de PAM" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nueva %s%scontraseña:" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Vuelva a escribir la nueva %s%scontraseña:" #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Las contraseñas no coinciden." @@ -234,7 +234,7 @@ msgid "Password unchanged" msgstr "La contraseña no ha cambiado" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "CONTRASEÑA INCORRECTA: %s" @@ -357,14 +357,14 @@ msgstr "Creando directorio '%s'." msgid "Unable to create directory %s: %m" msgstr "No se pudo crear el directorio %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "La contraseña no ha cambiado" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "La contraseña ya se ha utilizado. Seleccione otra." @@ -429,20 +429,20 @@ msgstr "error en pam_set_item()\n" msgid "login: failure forking: %m" msgstr "inicio de sesión: error en horquilla: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Cambiando la contraseña STRESS para %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Introduzca la nueva contraseña STRESS:" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Vuelva a escribir la nueva contraseña STRESS:" -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Error al escribir la verificación; la contraseña no ha cambiado" @@ -451,7 +451,7 @@ msgstr "Error al escribir la verificación; la contraseña no ha cambiado" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -497,11 +497,6 @@ msgstr "" "%s: No es posible restaurar a todos los usuarios a un número distinto de " "cero\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -517,6 +512,11 @@ msgstr "" "%s: [--file nombre de archivo-raíz] [--user nombre de usuario] [--reset[=n]] " "[--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" diff --git a/po/fi.po b/po/fi.po index bbb39bf7..7caf446a 100644 --- a/po/fi.po +++ b/po/fi.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2006-05-04 08:30+0200\n" "Last-Translator: Jyri Palokangas \n" "Language-Team: \n" @@ -169,19 +169,19 @@ msgid "Unknown PAM error" msgstr "Tuntematon PAM-virhe" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Uusi %s%ssalasana: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Anna uudelleen uusi %s%ssalasana: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Salasanat eivät täsmää." @@ -232,7 +232,7 @@ msgid "Password unchanged" msgstr "Salasanaa ei vaihdettu" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "HUONO SALASANA: %s" @@ -355,14 +355,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Salasanaa ei vaihdettu" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Salasana on jo käytetty. Valitse toinen." @@ -431,20 +431,20 @@ msgstr "pam_set_item() kutsu epäonnistui\n" msgid "login: failure forking: %m" msgstr "sisäänkirjautuminen: virhe haarautumisessa: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "Vaihdetaan STRESS-salasana " -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Anna uusi STRESS-salasana: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Anna uusi STRESS-salasana uudelleen: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Salasanat eivät ole samat; salasanaa ei vaihdettu" @@ -453,7 +453,7 @@ msgstr "Salasanat eivät ole samat; salasanaa ei vaihdettu" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -497,11 +497,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Ei voida palauttaa kaikkia käyttäjiä ei-nolliksi\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -517,6 +512,11 @@ msgstr "" "%s: [--file juurrutettu-tiedostonimi] [--user käyttäjätunnus] [--reset[=n]] " "[--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Käyttäjätilisi on vanhentunut; ota yhteyttä järjestelmän ylläpitäjään" diff --git a/po/fr.po b/po/fr.po index d00af2dc..a53eef91 100644 --- a/po/fr.po +++ b/po/fr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: pam.fr2\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-19 18:59+0200\n" "Last-Translator: Pablo Martin-Gomez \n" "Language-Team: Français \n" @@ -178,19 +178,19 @@ msgid "Unknown PAM error" msgstr "Erreur PAM inconnue" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nouveau %s%smot de passe : " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Retapez le nouveau %s%smot de passe : " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Les mots de passe ne correspondent pas." @@ -241,7 +241,7 @@ msgid "Password unchanged" msgstr "Mot de passe inchangé" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "MOT DE PASSE INCORRECT : %s" @@ -366,13 +366,13 @@ msgstr "Création du répertoire « %s »." msgid "Unable to create directory %s: %m" msgstr "Impossible de créer le répertoire %s : %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "Changement du mot de passe avorté." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Mot de passe déjà utilisé. Choisissez-en un autre." @@ -437,20 +437,20 @@ msgstr "échec de pam_set_item()\n" msgid "login: failure forking: %m" msgstr "login : échec d'autoclônage : %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Changement du mot de passe STRESS pour %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Entrer le nouveau mot de passe STRESS : " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Retaper le nouveau mot de passe STRESS : " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Vérification erronée : mot de passe inchangé" @@ -459,7 +459,7 @@ msgstr "Vérification erronée : mot de passe inchangé" msgid "Account temporary locked (%ld seconds left)" msgstr "Compte temporairement verrouillé (%ld secondes restantes)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "Compte temporairement verrouillé dû à l'échec de %u connexions" @@ -502,11 +502,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Impossible de réinitialiser tous les utilisateurs à non-zéro\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "Compte temporairement verrouillé dû à l'échec de %u connexions" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -521,6 +516,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Votre compte a expiré. Contactez votre administrateur système" @@ -575,6 +575,10 @@ msgstr "Entrez le nouveau mot de passe UNIX : " msgid "Retype new UNIX password: " msgstr "Retapez le nouveau mot de passe UNIX : " +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "Compte temporairement verrouillé dû à l'échec de %u connexions" + #~ msgid "has been already used" #~ msgstr "a déjà été utilisé" diff --git a/po/gu.po b/po/gu.po index 780f7648..737b4490 100644 --- a/po/gu.po +++ b/po/gu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip.gu\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-03-13 14:29+0530\n" "Last-Translator: Ankit Patel \n" "Language-Team: Gujarati \n" @@ -169,19 +169,19 @@ msgid "Unknown PAM error" msgstr "અજ્ઞાત PAM ભૂલ" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "નવો %s%sપાસવર્ડ: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "નવો %s%sપાસવર્ડ ફરી લખો: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "માફ કરજો, પાસવર્ડો બંધબેસતા નથી." @@ -232,7 +232,7 @@ msgid "Password unchanged" msgstr "પાસવર્ડ બદલાયેલ નથી" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "ખરાબ પાસવર્ડ: %s" @@ -355,14 +355,14 @@ msgstr "ડિરેક્ટરી '%s' બનાવી રહ્યા છી msgid "Unable to create directory %s: %m" msgstr "ડિરેક્ટરી %s બનાવવામાં અસમર્થ: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "પાસવર્ડ બદલાયેલ નથી" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "પાસવર્ડ પહેલાથી જ વપરાઈ ગયેલ છે. બીજો પસંદ કરો." @@ -427,20 +427,20 @@ msgstr "pam_set_item() કરવામાં નિષ્ફળ\n" msgid "login: failure forking: %m" msgstr "પ્રવેશ: ફોર્કમાં નિષ્ફળ: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "STRESS પાસવર્ડ %s માટે બદલો." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "નવો STRESS પાસવર્ડ દાખલ કરો: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "નવો STRESS પાસવર્ડ પુનઃલખો: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "ચકાસણી ખોટી-રીતે લખાઈ; પાસવર્ડ બદલાયેલ નથી" @@ -449,7 +449,7 @@ msgstr "ચકાસણી ખોટી-રીતે લખાઈ; પાસવ msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -492,11 +492,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: બધા વપરાશકર્તાઓને બિન-શૂન્યમાં પુનઃસુયોજિત કરી શકતા નથી\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -511,6 +506,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "તમારું ખાતું નિવૃત્ત થઈ ગયું છે; મહેરબાની કરીને તમારા સિસ્ટમ સંચાલકનો સંપર્ક કરો" diff --git a/po/hi.po b/po/hi.po index 538fa17b..7edc79aa 100644 --- a/po/hi.po +++ b/po/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: hi\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2007-06-21 15:22+0530\n" "Last-Translator: Rajesh Ranjan \n" "Language-Team: Hindi \n" @@ -169,19 +169,19 @@ msgid "Unknown PAM error" msgstr "अनजान PAM त्रुटि" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "नया %s%spassword: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "नया %s%spassword फिर टाइप करें: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "क्षमा करें, शब्दकूट नहीं मिलते हैं." @@ -232,7 +232,7 @@ msgid "Password unchanged" msgstr "शब्दकूट परिवर्तित" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "खराब शब्दकूट: %s" @@ -355,14 +355,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "शब्दकूट परिवर्तित" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "शब्दकूट को पहले ही बदला जा चुका है. दूसरा चुनें." @@ -431,20 +431,20 @@ msgstr "pam_set_item() में विफल\n" msgid "login: failure forking: %m" msgstr "लॉगिन: विफल फोर्किंग: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "इसके लिए स्ट्रेस शब्दकूट बदल रहा है " -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "नया स्ट्रेस शब्दकूट दें: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "नया शब्दकूट फिर टाइप करें: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "जांच गलत टाइप किया गया; शब्दकूट बदला गया" @@ -453,7 +453,7 @@ msgstr "जांच गलत टाइप किया गया; शब्द msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -496,11 +496,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: सभी उपयोक्ता को गैर शून्य में फिर सेट नहीं कर सकता है\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -515,6 +510,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "आपका खाता समाप्त हो चुका है; कृपया अपने सिस्टम प्रशासक को संपर्क करें" diff --git a/po/hu.po b/po/hu.po index 05f90755..8a1a39ab 100644 --- a/po/hu.po +++ b/po/hu.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: pam\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-04-30 08:23+0100\n" "Last-Translator: Sulyok Péter \n" "Language-Team: Hungarian \n" @@ -176,19 +176,19 @@ msgid "Unknown PAM error" msgstr "Ismeretlen PAM hiba" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Új %s%sjelszó: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Ismét az új %s%sjelszó: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Sajnálom, de a jelszavak nem egyeznek." @@ -239,7 +239,7 @@ msgid "Password unchanged" msgstr "Változatlan jelszó" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "ROSSZ JELSZÓ: %s" @@ -362,14 +362,14 @@ msgstr "\"%s\" mappa teremtése" msgid "Unable to create directory %s: %m" msgstr "%s mapa nem teremthető meg: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Változatlan jelszó" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "A jelszót már használta. Válasszon másikat!" @@ -434,20 +434,20 @@ msgstr "pam_set_item() meghiúsult\n" msgid "login: failure forking: %m" msgstr "bejelentkezés: elágazás hiba: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "%s STRESS jelszavának megváltoztatása." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Új STRESS jelszó: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Ismét az új STRESS jelszó: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Az ellenőrző jelszó nem egyezik; a jelszó nem került módosításra" @@ -456,7 +456,7 @@ msgstr "Az ellenőrző jelszó nem egyezik; a jelszó nem került módosításra msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -499,11 +499,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Nem állítható vissza minden használó nem nullára\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -518,6 +513,11 @@ msgid "" msgstr "" "%s: [--file rooted-fájlnév] [--user használó] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "A számla érvényessége lejárt; kérem keresse meg a rendszergazdát" diff --git a/po/it.po b/po/it.po index b55ec5a7..ba5e05ed 100644 --- a/po/it.po +++ b/po/it.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-21 13:21+1000\n" "Last-Translator: \n" "Language-Team: \n" @@ -173,19 +173,19 @@ msgid "Unknown PAM error" msgstr "Errore PAM sconosciuto" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nuova password%s%s: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Reimmettere la nuova password%s%s: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Le password non corrispondono." @@ -236,7 +236,7 @@ msgid "Password unchanged" msgstr "Password non modificata" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "PASSWORD ERRATA: %s" @@ -365,13 +365,13 @@ msgstr "Creazione della directory \"%s\"." msgid "Unable to create directory %s: %m" msgstr "Impossibile creare la directory %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "Cambio della password abortito." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Password già utilizzata. Sceglierne un'altra." @@ -436,20 +436,20 @@ msgstr "Impossibile eseguire pam_set_item()\n" msgid "login: failure forking: %m" msgstr "login: forking fallito: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Cambio password STRESS per %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Immettere nuova password STRESS: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Reimmettere la nuova password STRESS: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Errore di digitazione per verifica; password non cambiata" @@ -458,7 +458,7 @@ msgstr "Errore di digitazione per verifica; password non cambiata" msgid "Account temporary locked (%ld seconds left)" msgstr "Account momentaneamente bloccato (%ld secondi rimanenti)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "Account bloccato a causa di %u login falliti" @@ -501,11 +501,6 @@ msgid "%s: Can't reset all users to non-zero\n" msgstr "" "%s: Impossibile ripristinare tutti gli utenti a valori diversi da zero\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "Account bloccato a causa di %u login falliti" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -519,6 +514,11 @@ msgid "" " [-r] [--reset[=n]] [--quiet]\n" msgstr "%s: [--file NOMEFILE] [--user NOMEUTENTE] [--reset[=N]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Account scaduto; contattare l'amministratore di sistema" @@ -575,3 +575,7 @@ msgstr "Immettere nuova password UNIX: " #: modules/pam_unix/pam_unix_passwd.c:678 msgid "Retype new UNIX password: " msgstr "Reimmettere la nuova password UNIX: " + +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "Account bloccato a causa di %u login falliti" diff --git a/po/ja.po b/po/ja.po index 18a43028..22618542 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip.ja\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-21 15:08+1000\n" "Last-Translator: Kiyoto Hashida \n" "Language-Team: Japanese \n" @@ -168,19 +168,19 @@ msgid "Unknown PAM error" msgstr "不明なPAMエラー" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "新しい%s%sパスワード:" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "新しい%s%sパスワードを再入力してください:" #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "パスワードが一致しません。" @@ -231,7 +231,7 @@ msgid "Password unchanged" msgstr "パスワードが変更されていません" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "よくないパスワード: %s" @@ -353,13 +353,13 @@ msgstr "ディレクトリ '%s' を作成中" msgid "Unable to create directory %s: %m" msgstr "ディレクトリ %s を作成できません: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "パスワードの変更は放棄されました" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "" @@ -425,20 +425,20 @@ msgstr "pam_set_item()に失敗しました\n" msgid "login: failure forking: %m" msgstr "ログイン: いまいましい失敗: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "%s 用の STRESS パスワードを変更中" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "新しいSTRESSパスワードを入力してください:" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "新しいSTRESSパスワードを再入力してください:" -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "ミスタイプの確認、パスワードが変更されていません" @@ -447,7 +447,7 @@ msgstr "ミスタイプの確認、パスワードが変更されていません msgid "Account temporary locked (%ld seconds left)" msgstr "アカウントは一時的にロックされています (残り %ld 秒)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "%u のログイン失敗の理由で アカウントはロックされました" @@ -490,11 +490,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: すべてのユーザを非ゼロにリセットできません\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "%u のログイン失敗の理由で アカウントはロックされました" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -509,6 +504,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" @@ -562,3 +562,7 @@ msgstr "新しいUNIXパスワードを入力してください:" #: modules/pam_unix/pam_unix_passwd.c:678 msgid "Retype new UNIX password: " msgstr "新しいUNIX パスワードを再入力してください:" + +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "%u のログイン失敗の理由で アカウントはロックされました" diff --git a/po/km.po b/po/km.po index 4f7ab9f6..c642235b 100644 --- a/po/km.po +++ b/po/km.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2006-03-17 10:32+0700\n" "Last-Translator: Khoem Sokhem \n" "Language-Team: Khmer \n" @@ -170,19 +170,19 @@ msgid "Unknown PAM error" msgstr "មិន​ស្គាល់​កំហុស PAM" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "ពាក្យ​សម្ងាត់ %s%s ថ្មី ៖" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "វាយ​ពាក្យ​សម្ងាត់ %s%s ថ្មី​ឡើង​វិញ ៖" #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "សូម​ទោស ពាក្យ​សម្ងាត់​មិន​ដូច​គ្នា​ឡើយ ។" @@ -233,7 +233,7 @@ msgid "Password unchanged" msgstr "ពាក្យសម្ងាត់​មិន​បាន​ផ្លាស់ប្ដូរ​ឡើយ" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "ពាក្យ​សម្ងាត់​មិន​ល្អ ៖ %s" @@ -356,14 +356,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "ពាក្យសម្ងាត់​មិន​បាន​ផ្លាស់ប្ដូរ​ឡើយ" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "ពាក្យសម្ងាត់​ត្រូវ​បាន​ប្រើ​រួច​ហើយ ។ សូម​ជ្រើស​មួយ​ទៀត ។" @@ -432,20 +432,20 @@ msgstr "បាន​បរាជ័យ pam_set_item()\n" msgid "login: failure forking: %m" msgstr "ចូល ៖ ចម្លង​ខ្លួន​ឯង​មិន​បាន​ជោគជ័យ ៖ %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "ការ​ផ្លាស់ប្ដូរ​ពាក្យ​សម្ងាត់ STRESS សម្រាប់ " -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "បញ្ចូល​ពាក្យ​សម្ងាត់ STRESS ថ្មី ៖ " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "វាយ​ពាក្យ​សម្ងាត់ STRESS ថ្មី​ម្ដង​ទៀត ៖ " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "ផ្ទៀងផ្ទាត់​អក្ខរាវិរុទ្ធ​ដែល​បាន​វាយខុស ពាក្យ​សម្ងាត់​មិន​បានផ្លាស់ប្ដូរ​" @@ -454,7 +454,7 @@ msgstr "ផ្ទៀងផ្ទាត់​អក្ខរាវិរុទ្ msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -497,11 +497,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s ៖ មិន​អាច​កំណត់​អ្នក​ប្រើ​ទាំងអស់​ទៅ​មិនមែន​សូន្យ​ឡើងវិញ​បានទេ\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -516,6 +511,11 @@ msgid "" msgstr "" "%s ៖ [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "គណនី​របស់​អ្នក​បាន​ផុតកំណត់​ហើយ សូម​ទាក់ទង​អ្នក​គ្រប់គ្រង​ប្រព័ន្ធ​របស់​អ្នក" diff --git a/po/kn.po b/po/kn.po index 5ce43d17..2b499202 100644 --- a/po/kn.po +++ b/po/kn.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip.kn\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-20 12:29+0530\n" "Last-Translator: Shankar Prasad \n" "Language-Team: Kannada \n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "ಗೊತ್ತಿರದ PAM ದೋಷ" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "ಹೊಸ %s%sಗುಪ್ತಪದ: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "ಹೊಸ %s%sಗುಪ್ತಪದವನ್ನು ಪುನರ್ ಟೈಪಿಸಿ: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "ಕ್ಷಮಿಸಿ, ಗುಪ್ತಪದಗಳು ತಾಳೆಯಾಗುತ್ತಿಲ್ಲ." @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "ಗುಪ್ತಪದ ಬದಲಾಗಿಲ್ಲ" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "ಕೆಟ್ಟ ಗುಪ್ತಪದ: %s" @@ -353,13 +353,13 @@ msgstr "ಕೋಶ '%s' ಅನ್ನು ರಚಿಸಲಾಗುತ್ತಿದ msgid "Unable to create directory %s: %m" msgstr "ಕೋಶ '%s' ಅನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ.: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "ಗುಪ್ತಪದ ಬದಲಾವಣೆಯನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗಿದೆ." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "ಗುಪ್ತಪದವು ಈಗಾಗಲೆ ಬಳಸಲ್ಪಟ್ಟಿದೆ. ಬೇರೊಂದನ್ನು ಬಳಸಿ." @@ -424,20 +424,20 @@ msgstr "pam_set_item() ಮಾಡುವಲ್ಲಿ ವಿಫಲತೆ\n" msgid "login: failure forking: %m" msgstr "ಲಾಗಿನ್: ಫೋರ್ಕಿಂಗ್ ಮಾಡುವಲ್ಲಿ ವಿಫಲತೆ:%m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "%s ಗಾಗಿ STRESS ಗುಪ್ತಪದವನ್ನು ಬದಲಾಯಿಸಲಾಗುತ್ತಿದೆ." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "ಹೊಸ STRESS ಗುಪ್ತಪದವನ್ನು ಟೈಪಿಸಿ: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "ಹೊಸ STRESS ಗುಪ್ತಪದವನ್ನು ಪುನಃ ಟೈಪಿಸಿ: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "ತಪಾಸಣೆಗೆ ಟೈಪಿಸಿದ್ದು ತಪ್ಪಾಗಿದೆ; ಗುಪ್ತಪದ ಬದಲಾಗಿಲ್ಲ" @@ -446,7 +446,7 @@ msgstr "ತಪಾಸಣೆಗೆ ಟೈಪಿಸಿದ್ದು ತಪ್ಪಾ msgid "Account temporary locked (%ld seconds left)" msgstr "ಖಾತೆಯನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ (%ld ಸೆಕೆಂಡುಗಳು ಉಳಿದಿವೆ)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "ವಿಫಲಗೊಂಡ %u ಪ್ರವೇಶಗಳಿಂದಾಗಿ ಖಾತೆಯನ್ನು ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ" @@ -489,11 +489,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: ಎಲ್ಲಾ ಬಳಕೆದಾರರನ್ನು ಶೂನ್ಯವಲ್ಲದುದಕ್ಕೆ ಪುನರ್ ಸಂಯೋಜಿಸಲು ಆಗುವುದಿಲ್ಲ\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "ವಿಫಲಗೊಂಡ %u ಪ್ರವೇಶಗಳಿಂದಾಗಿ ಖಾತೆಯನ್ನು ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -508,6 +503,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "ನಿಮ್ಮ ಖಾತೆಯ ಅವಧಿ ಅಂತ್ಯಗೊಂಡಿದೆ; ದಯವಿಟ್ಟು ನಿಮ್ಮ ಗಣಕ ವ್ಯವಸ್ಥಾಪಕರನ್ನು ಸಂಪರ್ಕಿಸಿ" @@ -562,3 +562,7 @@ msgstr "ಹೊಸ UNIX ಗುಪ್ತಪದವನ್ನು ದಾಖಲಿಸ #: modules/pam_unix/pam_unix_passwd.c:678 msgid "Retype new UNIX password: " msgstr "ಹೊಸ UNIX ಗುಪ್ತಪದವನ್ನು ಪುನಃ ಟೈಪಿಸಿ: " + +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "ವಿಫಲಗೊಂಡ %u ಪ್ರವೇಶಗಳಿಂದಾಗಿ ಖಾತೆಯನ್ನು ಲಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ" diff --git a/po/ko.po b/po/ko.po index d5f158e2..45ea5090 100644 --- a/po/ko.po +++ b/po/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ko\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2007-06-22 10:02+1000\n" "Last-Translator: Eunju Kim \n" "Language-Team: Korean \n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "알 수 없는 PAM 오류" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "새 %s%s 암호:" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "새 %s%s 암호 재입력:" #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "죄송합니다. 암호가 일치하지 않습니다." @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "암호가 변경되지 않음" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "잘못된 암호: %s" @@ -352,14 +352,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "암호가 변경되지 않음" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "이미 사용되고 있는 암호입니다. 다른 암호를 선택해 주십시오." @@ -428,20 +428,20 @@ msgstr "pam_set_item() 실패\n" msgid "login: failure forking: %m" msgstr "로그인: 포크 작업(forking) 실패: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "STRESS 암호 변경" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "새 STRESS 암호 입력:" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "새 STRESS 암호를 재입력:" -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "암호 확인에서 잘못 입력됨; 암호가 변경되지 않음" @@ -450,7 +450,7 @@ msgstr "암호 확인에서 잘못 입력됨; 암호가 변경되지 않음" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -493,11 +493,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: 모든 사용자를 영이 아닌 값으로 설정할 수 없음\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -512,6 +507,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "계정이 만료되었습니다: 시스템 관리자에게 알려 주십시오" diff --git a/po/ml.po b/po/ml.po index f0daba80..2370671d 100644 --- a/po/ml.po +++ b/po/ml.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip.ml\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-20 12:50+0530\n" "Last-Translator: \n" "Language-Team: \n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "അപരിചിതമായ PAM പിശക്" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "പുതിയ %s%s പാസ്‌വേറ്‍ഡ്: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "വീണ്ടും %s%s പാസ്‌വേറ്‍ഡ് ടൈപ്പ് ചെയ്യുക: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "ക്ഷമിക്കണം, പാസ്‌വേറ്‍ഡുകള്‍ തമ്മില്‍ ചേരുന്നില്ല." @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "പാസ്‌വേറ്‍ഡ് മാറ്റിയിട്ടില്ല" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "BAD PASSWORD: %s" @@ -353,13 +353,13 @@ msgstr "'%s' ഡയറക്ടറി ഉണ്ടാക്കുന്നു." msgid "Unable to create directory %s: %m" msgstr "%s ഡയറക്ടറി ഉണ്ടാക്കുവാന്‍ സാധ്യമായില്ല: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "അടയാളവാക്ക് മാറ്റം വരുത്തുന്നതു് നിര്‍ത്തിയിരിക്കുന്നു." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "പാസ്‌വേറ്‍ഡ് നിലവില്‍ ഉപയോഗിത്തിലുള്ളതാണ്. മറ്റൊന്ന് നല്‍കുക." @@ -424,20 +424,20 @@ msgstr "pam_set_item() ചെയ്യുന്നതില്‍ പരാജ msgid "login: failure forking: %m" msgstr "login: ഫോറ്‍ക്ക് ചെയ്യുന്നതില്‍ പരാജയം: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "%s-നുളള STRESS അടയാളവാക്ക് മാറ്റുന്നു." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "പുതിയ STRESS പാസ്‌വേറ്‍ഡ് നല്‍കുക: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "പുതിയ STRESS പാസ്‌വേറ്‍ഡ് വീണ്ടും ടൈപ്പ് ചെയ്യുക: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "പാസ്‌വേറ്‍ഡ് ഉറപ്പാക്കുന്നതിനായി ടൈപ്പ് ചെയ്തത് തെറ്റാണ്; പാസ്‌വേറ്‍ഡ് മാറ്റിയിട്ടില്ല" @@ -446,7 +446,7 @@ msgstr "പാസ്‌വേറ്‍ഡ് ഉറപ്പാക്കുന msgid "Account temporary locked (%ld seconds left)" msgstr "അക്കൌണ്ട് താല്‍ക്കാലികമായി പൂട്ടിയിരിക്കുന്നു (%ld നിമിഷങ്ങള്‍ ബാക്കി)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "%u പരാജയപ്പെട്ട ലോഗിനുകള്‍ കാരണം അക്കൌണ്ട് താല്‍ക്കാലികമായി പൂട്ടിയിരിക്കുന്നു" @@ -489,11 +489,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: എല്ലാ യൂസറുകളും പൂജ്യം അല്ലാതെ ക്റമികരിക്കുവാന്‍ സാധ്യമല്ല\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "%u പരാജയപ്പെട്ട ലോഗിനുകള്‍ കാരണം അക്കൌണ്ട് താല്‍ക്കാലികമായി പൂട്ടിയിരിക്കുന്നു" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -508,6 +503,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" @@ -563,3 +563,7 @@ msgstr "പുതിയ UNIX പാസ്‌വേറ്‍ഡ് നല്‍ #: modules/pam_unix/pam_unix_passwd.c:678 msgid "Retype new UNIX password: " msgstr "പുതിയ UNIX പാസ്‌വേറ്‍ഡ് വീണ്ടും ടൈപ്പ് ചെയ്യുക: " + +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "%u പരാജയപ്പെട്ട ലോഗിനുകള്‍ കാരണം അക്കൌണ്ട് താല്‍ക്കാലികമായി പൂട്ടിയിരിക്കുന്നു" diff --git a/po/mr.po b/po/mr.po index 1299782c..5b716436 100644 --- a/po/mr.po +++ b/po/mr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-10 07:07+0530\n" "Last-Translator: Sandeep Shedmake \n" "Language-Team: marathi\n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "अपरिचीत PAM त्रुटी" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "नविन गुप्तशब्द %s%sp: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "नविन गुप्तशब्द %s%sp पुन्हा टाइप करा: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "माफ करा, गुप्तशब्द जुळत नाही." @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "गुप्तशब्द बदलविला नाही" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "अयोग्य गुप्तशब्द: %s" @@ -353,14 +353,14 @@ msgstr "संचयीका '%s' बनवित आहे." msgid "Unable to create directory %s: %m" msgstr "संचयीका %s बनवू शकत नाही: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "गुप्तशब्द बदलविला नाही" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "ह्या गुप्तशब्दचा आधीच वापर झाला आहे. दुसरा निवडा." @@ -425,20 +425,20 @@ msgstr "pam_set_item() कार्यान्वीत करण्यास msgid "login: failure forking: %m" msgstr "दाखलन: विभाजन अपयशी: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "%s करीता STRESS गुप्तशब्द बदलवित आहे." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "नविन STRESS गुप्तशब्द प्रविष्ट करा: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "नविन STRESS गुप्तशब्द पुन्हा प्रविष्ट करा: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "तपासणी पूर्ण झाली नाही; गुप्तशब्द बदलविले नाही" @@ -447,7 +447,7 @@ msgstr "तपासणी पूर्ण झाली नाही; गुप msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -490,11 +490,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: सर्व वापरकर्ता विना-शून्य असे पुन्हस्थापन करू शकत नाही\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -509,6 +504,11 @@ msgid "" msgstr "" "%s: [--file रूटेड-फाइलनाव] [--user वापरकर्त्याचे नाव] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "तुमचे खाते बंद झाले आहे, कृपया तुमच्या संगणक व्यवस्थापकाकडे जा" diff --git a/po/ms.po b/po/ms.po index e5df671a..300697c4 100644 --- a/po/ms.po +++ b/po/ms.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: linux-pam\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-09-25 23:52+0800\n" "Last-Translator: Sharuzzaman Ahmat Raslan \n" "Language-Team: Malay \n" @@ -182,19 +182,19 @@ msgid "Unknown PAM error" msgstr "Ralat sistem tidak diketahui" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, fuzzy, c-format msgid "New %s%spassword: " msgstr "&Tetingkap Baru" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, fuzzy, c-format msgid "Retype new %s%spassword: " msgstr "Baru me&nggunakan Template" #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 #, fuzzy msgid "Sorry, passwords do not match." msgstr "Sijil dan kekunci diberi tidak sepadan." @@ -254,7 +254,7 @@ msgid "Password unchanged" msgstr "Biarkan tanpa diubah" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, fuzzy, c-format msgid "BAD PASSWORD: %s" msgstr "Katalaluan Tidak Betul" @@ -382,14 +382,14 @@ msgstr "Menbuat direktori initrd" msgid "Unable to create directory %s: %m" msgstr "gagal untuk mencipta direktori %s: %s\n" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Biarkan tanpa diubah" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "" @@ -458,21 +458,21 @@ msgstr "" msgid "login: failure forking: %m" msgstr "Ben_arkan logmasuk luartalian" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "Greek 'astator' untuk 'menukar'" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 #, fuzzy msgid "Enter new STRESS password: " msgstr "Masukkkan Katalaluan Pemuat But" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "" -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "" @@ -481,7 +481,7 @@ msgstr "" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -527,11 +527,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -545,6 +540,11 @@ msgid "" " [-r] [--reset[=n]] [--quiet]\n" msgstr "" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" diff --git a/po/nb.po b/po/nb.po index 06f041b3..cddf89ff 100644 --- a/po/nb.po +++ b/po/nb.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-04-30 12:59+0200\n" "Last-Translator: Olav Pettershagen \n" "Language-Team: \n" @@ -166,19 +166,19 @@ msgid "Unknown PAM error" msgstr "Ukjent PAM-feil" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nytt %s%spassord: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Bekreft nytt %s%s-passord: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Beklager, ikke samsvar mellom passord." @@ -229,7 +229,7 @@ msgid "Password unchanged" msgstr "Passord uendret" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "SVAKT PASSORD: %s" @@ -352,14 +352,14 @@ msgstr "Oppretter katalog «%s»." msgid "Unable to create directory %s: %m" msgstr "Kan ikke opprette katalog %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Passord uendret" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Passordet er allerede benyttet. Velg et annet." @@ -424,20 +424,20 @@ msgstr "kunne ikke pam_set_item()\n" msgid "login: failure forking: %m" msgstr "login: feil under forgrening: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Endrer STRESS-passord for %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Angi nytt STRESS-passord: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Bekreft nytt STRESS-passord: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Bekreftelse feil skrevet; passord uendret" @@ -446,7 +446,7 @@ msgstr "Bekreftelse feil skrevet; passord uendret" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -489,11 +489,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Kan ikke tilbakestille alle brukere til non-zero\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -508,6 +503,11 @@ msgid "" msgstr "" "%s: [--file rooted-filnavn] [--user brukernavn] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Din konto er utløpt; kontakt systemadministratoren" diff --git a/po/nl.po b/po/nl.po index c04ee38a..1a3e71c7 100644 --- a/po/nl.po +++ b/po/nl.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-20 23:45+0200\n" "Last-Translator: Peter van Egdom \n" "Language-Team: Dutch \n" @@ -168,19 +168,19 @@ msgid "Unknown PAM error" msgstr "Onbekende PAM-fout" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nieuw %s%swachtwoord: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Nieuw %s%swachtwoord herhalen: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Sorry, wachtwoorden komen niet overeen." @@ -231,7 +231,7 @@ msgid "Password unchanged" msgstr "Wachtwoord is niet gewijzigd" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "SLECHT WACHTWOORD: %s" @@ -359,13 +359,13 @@ msgstr "Aanmaken van map '%s'." msgid "Unable to create directory %s: %m" msgstr "Niet in staat om map %s aan te maken: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "Wachtwoord wijzigen afgebroken." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Wachtwoord is al gebruikt. Kies een ander wachtwoord." @@ -430,20 +430,20 @@ msgstr "pam_set_item() is mislukt\n" msgid "login: failure forking: %m" msgstr "login: beginnen van nieuw proces mislukt: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Veranderen van STRESS-wachtwoord voor %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Nieuw STRESS-wachtwoord invoeren: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Nieuw STRESS-wachtwoord herhalen: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Verificatie onjuist getypt; wachtwoord blijft ongewijzigd" @@ -452,7 +452,7 @@ msgstr "Verificatie onjuist getypt; wachtwoord blijft ongewijzigd" msgid "Account temporary locked (%ld seconds left)" msgstr "Account tijdelijk vergrendeld (%ld seconden resterend)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "Account vergrendeld wegens %u mislukte aanmeldingen" @@ -496,11 +496,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: kan niet alle gebruikers terugzetten naar non-zero\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "Account vergrendeld wegens %u mislukte aanmeldingen" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -516,6 +511,11 @@ msgstr "" "%s [--file rooted-bestandsnaam] [--user gebruikersnaam] [--reset[=n]] [--" "quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Uw account is verlopen; neem contact op met uw systeembeheerder" @@ -572,6 +572,10 @@ msgstr "Nieuw UNIX-wachtwoord invoeren: " msgid "Retype new UNIX password: " msgstr "Nieuw UNIX-wachtwoord herhalen: " +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "Account vergrendeld wegens %u mislukte aanmeldingen" + #~ msgid "has been already used" #~ msgstr "is al gebruikt" diff --git a/po/or.po b/po/or.po index 117e5375..f4db9a90 100644 --- a/po/or.po +++ b/po/or.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip.or\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-09-30 11:42+0530\n" "Last-Translator: Manoj Kumar Giri \n" "Language-Team: Oriya\n" @@ -171,19 +171,19 @@ msgid "Unknown PAM error" msgstr "ଅଜଣା PAM ତୃଟି" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "ନୂତନ %s%s ପ୍ରବେଶ ସଙ୍କେତ: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "ନୂତନ %s%s ପ୍ରବେଶ ସଙ୍କେତକୁ ପୁନର୍ବାର ଟାଇପ କରନ୍ତୁ: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "କ୍ଷମା କରିବେ, ପ୍ରବେଶ ସଙ୍କେତ ମିଶୁ ନାହିଁ।" @@ -234,7 +234,7 @@ msgid "Password unchanged" msgstr "ପ୍ରବେଶ ସଙ୍କେତ ଅପରିବର୍ତ୍ତିତ ଅଛି" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "ଖରାପ ପ୍ରବେଶ ସଙ୍କେତ: %s" @@ -357,14 +357,14 @@ msgstr "ଡ଼ିରେକ୍ଟୋରୀ '%s' ନିର୍ମାଣ କରୁ msgid "Unable to create directory %s: %m" msgstr "ଡ଼ିରେକ୍ଟୋରୀ '%s' ନିର୍ମାଣ କରିବାରେ ଅସମର୍ଥ: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "ପ୍ରବେଶ ସଙ୍କେତ ଅପରିବର୍ତ୍ତିତ ଅଛି" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "ପ୍ରବେଶ ସଙ୍କେତଟି ପୂର୍ବରୁ ବ୍ଯବହୃତ ହେଉଛି। ଅନ୍ଯ ଗୋଟିଏ ପ୍ରବେଶ ସଙ୍କେତ ଚୟନ କରନ୍ତୁ।" @@ -429,20 +429,20 @@ msgstr "pam_set_item() କରିବାରେ ବିଫଳ\n" msgid "login: failure forking: %m" msgstr "ଲଗଇନ: fork କରିବାରେ ବିଫଳ: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "%s ପାଇଁ STRESS ପ୍ରବେଶ ସଙ୍କେତକୁ ବଦଳାଉଛି." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "ନୂତନ STRESS ପ୍ରବେଶ ସଙ୍କେତ ଭରଣ କରନ୍ତୁ: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "ନୂତନ STRESS ପ୍ରବେଶ ସଙ୍କେତକୁ ପୁନର୍ବାର ଟାଇପ କରନ୍ତୁ: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "ଯାଞ୍ଚକରଣ ସମୟରେ ଭୂଲ ଟାଇପ କରିଛନ୍ତି, ପ୍ରବେଶ ସଙ୍କେତଟି ବଦଳି ନାହିଁ" @@ -451,7 +451,7 @@ msgstr "ଯାଞ୍ଚକରଣ ସମୟରେ ଭୂଲ ଟାଇପ କର msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -494,11 +494,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: ସମସ୍ତ ଚାଳକ ମାନଙ୍କୁ ଶୂନ୍ଯ ବିହୀନ ଭାବରେ ପୁନର୍ବାର ବିନ୍ଯାସ କରିପାରିବ ନାହିଁ\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -513,6 +508,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "ଆପଣଙ୍କର ଖାତା ଅଚଳ ହୋଇଯାଇଛି; ଦୟାକରି ଆପଣଙ୍କ ତନ୍ତ୍ର ପ୍ରଶାସକଙ୍କ ସହିତ ଯୋଗାଯୋଗ କରନ୍ତୁ" diff --git a/po/pa.po b/po/pa.po index 61bbaa22..ddd22104 100644 --- a/po/pa.po +++ b/po/pa.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.pa\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2005-08-06 08:34+0530\n" "Last-Translator: Amanpreet Singh Alam[ਆਲਮ] \n" "Language-Team: Panjabi \n" @@ -169,19 +169,19 @@ msgid "Unknown PAM error" msgstr "ਅਣਜਾਣ PAM ਗਲਤੀ" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, fuzzy, c-format msgid "New %s%spassword: " msgstr "ਗੁਪਤ-ਕੋਡ ਨਾ-ਤਬਦੀਲ ਹੈ" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, fuzzy, c-format msgid "Retype new %s%spassword: " msgstr "ਨਵਾਂ STRESS ਗੁਪਤ-ਕੋਡ ਮੁੜ-ਲਿਖੋ: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 #, fuzzy msgid "Sorry, passwords do not match." msgstr "NIS ਗੁਪਤ-ਕੋਡ ਤਬਦੀਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ ਹੈ।" @@ -233,7 +233,7 @@ msgid "Password unchanged" msgstr "ਗੁਪਤ-ਕੋਡ ਨਾ-ਤਬਦੀਲ ਹੈ" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "" @@ -357,14 +357,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "ਗੁਪਤ-ਕੋਡ ਨਾ-ਤਬਦੀਲ ਹੈ" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "ਗੁਪਤ-ਕੋਡ ਪਹਿਲਾਂ ਵੀ ਵਰਤਿਆ ਗਿਆ ਹੈ। ਵੱਖਰਾ ਚੁਣੋ।" @@ -433,20 +433,20 @@ msgstr "pam_set_item() ਲਈ ਫੇਲ\n" msgid "login: failure forking: %m" msgstr "" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "ਨਵਾਂ STRESS ਗੁਪਤ-ਕੋਡ ਦਿਓ: " -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "ਨਵਾਂ STRESS ਗੁਪਤ-ਕੋਡ ਦਿਓ: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "ਨਵਾਂ STRESS ਗੁਪਤ-ਕੋਡ ਮੁੜ-ਲਿਖੋ: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "" @@ -455,7 +455,7 @@ msgstr "" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -498,11 +498,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -517,6 +512,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" diff --git a/po/pl.po b/po/pl.po index 62c92a45..9ceda20b 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-14 23:49+0200\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" @@ -168,19 +168,19 @@ msgid "Unknown PAM error" msgstr "Nieznany błąd PAM" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nowe hasło %s%s: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Ponownie podaj nowe hasło %s%s: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Podane hasła nie są zgodne." @@ -231,7 +231,7 @@ msgid "Password unchanged" msgstr "Hasło nie zostało zmienione" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "BŁĘDNE HASŁO: %s" @@ -359,13 +359,13 @@ msgstr "Tworzenie katalogu \"%s\"." msgid "Unable to create directory %s: %m" msgstr "Nie można utworzyć katalogu %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "Przerwano zmianę hasła." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Hasło było już używane. Wybierz inne." @@ -430,20 +430,20 @@ msgstr "pam_set_item() nie powiodło się\n" msgid "login: failure forking: %m" msgstr "login: rozdzielenie nie powiodło się: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Zmienianie hasła STRESS dla %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Podaj nowe hasło STRESS: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Ponownie podaj hasła STRESS: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Sprawdzenie nie powiodło się; hasło nie zostało zmienione" @@ -452,7 +452,7 @@ msgstr "Sprawdzenie nie powiodło się; hasło nie zostało zmienione" msgid "Account temporary locked (%ld seconds left)" msgstr "Konto zostało tymczasowo zablokowane (pozostało %ld sekund)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "Konto zostało zablokowane z powodu %u nieudanych logowań" @@ -496,11 +496,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: nie można przywrócić wszystkich użytkowników\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "Konto zostało zablokowane z powodu %u nieudanych logowań" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -516,6 +511,11 @@ msgstr "" "%s: [--file nazwa-pliku-root] [--user nazwa-użytkownika] [--reset[=n]] [--" "quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Konto wygasło; skontaktuj się z administratorem systemu" @@ -570,3 +570,7 @@ msgstr "Podaj nowe hasło UNIX: " #: modules/pam_unix/pam_unix_passwd.c:678 msgid "Retype new UNIX password: " msgstr "Ponownie podaj hasło UNIX: " + +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "Konto zostało zablokowane z powodu %u nieudanych logowań" diff --git a/po/pt.po b/po/pt.po index acfeaf7f..303c6208 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.pt\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2006-05-03 21:54+0200\n" "Last-Translator: Antonio Cardoso Martins \n" "Language-Team: portuguese\n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "Erro PAM desconhecido" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nova %s%spalavra passe: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Digite novamente a nova %s%spalavra passe: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Lamento, as palavras passe não coincidem." @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "Palavra passe inalterada" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "MÁ PALAVRA PASSE: %s" @@ -353,14 +353,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Palavra passe inalterada" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "A palavra passe já foi anteriormente utilizada. Escolha outra." @@ -429,20 +429,20 @@ msgstr "falha em pam_set_item()\n" msgid "login: failure forking: %m" msgstr "sessão: falha ao executar o forking: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "A alterar a palavra passe de STRESS para " -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Digite a nova palavra passe de STRESS: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Digite novamente a nova palavra passe de STRESS: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "A verificação não coincide; palavra passe inalterada" @@ -451,7 +451,7 @@ msgstr "A verificação não coincide; palavra passe inalterada" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -494,11 +494,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Não foi possível reiniciar todos os utilizadores para não zero\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -513,6 +508,11 @@ msgid "" msgstr "" "%s: [--file ficheiro-raiz] [--user nome-utilizador] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index f34c072c..f235f646 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-22 17:25-0300\n" "Last-Translator: Taylon \n" "Language-Team: Brazilian Portuguese \n" @@ -169,19 +169,19 @@ msgid "Unknown PAM error" msgstr "Erro desconhecido no PAM" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nova %s%ssenha:" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Redigite a nova %s%ssenha:" #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "As senhas não são iguais." @@ -232,7 +232,7 @@ msgid "Password unchanged" msgstr "Senha inalterada" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "SENHA INCORRETA: %s" @@ -355,13 +355,13 @@ msgstr "Criando o diretório '%s'." msgid "Unable to create directory %s: %m" msgstr "Impossível criar o diretório %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "A alteração de senha foi abortada." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "A senha já foi usada. Escolha outra." @@ -426,20 +426,20 @@ msgstr "falha em pam_set_item()\n" msgid "login: failure forking: %m" msgstr "login: falha na bifurcação: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Mudando senha STRESS para %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Digite a nova senha STRESS:" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Digite novamente a nova senha STRESS:" -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Verificação digitada incorretamente; senha inalterada" @@ -448,7 +448,7 @@ msgstr "Verificação digitada incorretamente; senha inalterada" msgid "Account temporary locked (%ld seconds left)" msgstr "Conta temporariamente bloqueada (restam %ld segundos)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "Conta bloqueada devido a %u falhas de login" @@ -491,11 +491,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Impossível redefinir todos os usuários para não-zero\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "Conta bloqueada devido a %u falhas de login" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -510,6 +505,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Sua conta expirou; entre em contato com o administrador do sistema" @@ -564,6 +564,10 @@ msgstr "Digite a nova senha UNIX:" msgid "Retype new UNIX password: " msgstr "Redigite a nova senha UNIX:" +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "Conta bloqueada devido a %u falhas de login" + #~ msgid "has been already used" #~ msgstr "já foi usada" diff --git a/po/ru.po b/po/ru.po index e2708a2b..0cc6d9dd 100644 --- a/po/ru.po +++ b/po/ru.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-02-23 20:11+0300\n" "Last-Translator: Andrew Martynov \n" "Language-Team: Russian \n" @@ -175,20 +175,20 @@ msgid "Unknown PAM error" msgstr "Неизвестная ошибка PAM" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Новый пароль %s%s: " # Keep the newlines and spaces after ':'! #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Повторите ввод нового пароля %s%s: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Извините, но пароли не совпадают." @@ -240,7 +240,7 @@ msgid "Password unchanged" msgstr "Пароль не изменен" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "НЕВЕРНЫЙ ПАРОЛЬ: %s" @@ -365,14 +365,14 @@ msgid "Unable to create directory %s: %m" msgstr "Невозможно создать каталог %s: %m" # password dialog title -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Пароль не изменен" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Этот пароль уже был использован. Выберите другой." @@ -439,21 +439,21 @@ msgstr "не удалось выполнить pam_set_item()\n" msgid "login: failure forking: %m" msgstr "регистрация: сбой при создании нового процесса: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Смена пароля STRESS для %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Введите новый пароль STRESS: " # Keep the newlines and spaces after ':'! -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Повторите ввод нового пароля STRESS: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Подтверждение введено неправильно; пароль не изменен" @@ -462,7 +462,7 @@ msgstr "Подтверждение введено неправильно; пар msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -507,11 +507,6 @@ msgid "%s: Can't reset all users to non-zero\n" msgstr "" "%s: не удается выполнить сброс всех пользователей в ненулевое значение\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -527,6 +522,11 @@ msgstr "" "%s: [--file имя_корневого_файла] [--user имя_пользователя] [--reset[=n]] [--" "quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" diff --git a/po/si.po b/po/si.po index a8fa2d1f..ac57fe16 100644 --- a/po/si.po +++ b/po/si.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: si\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2007-06-22 12:24+0530\n" "Last-Translator: Danishka Navin \n" "Language-Team: Sinhala \n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "නොදන්නා PAM දෝෂය" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "නව %s%sරහස්පදය: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "නව %s%sරහස්පදය නැවත ඇතුළත් කරන්න: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "සමාවෙන්න, රහස්පද ගැලපෙන්නේ නැත." @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "රහස්පදය වෙනස් නොවිනි" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "BAD PASSWORD: %s" @@ -353,14 +353,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "රහස්පදය වෙනස් නොවිනි" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "රහස්පදය දැනටමත් භාවිතා වේ. වෙනත් එකක් තෝරාගන්න." @@ -429,20 +429,20 @@ msgstr "pam_set_item() අසමත් විය\n" msgid "login: failure forking: %m" msgstr "පිවිසුම: ෆොර්කින් බිදවැටීමක්: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "STRESS රහස්පදය වෙනස් කරමින්" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "නව STRESS රහස්පදය ඇතුළත් කරන්න:" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "නව STRESS රහස්පදය නැවත ඇතුළත් කරන්න:" -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "ස්ථිරකර ගැනීම සඳහා වැරදි ඇතුලත් කිරීමක්; රහස්පදය වෙනස් කළ නොහැක" @@ -451,7 +451,7 @@ msgstr "ස්ථිරකර ගැනීම සඳහා වැරදි ඇ msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -494,11 +494,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: ශුන්‍ය නොවන අගයට සියළුම පරිශීලකයින් නැවත සැකසිය නොහැක\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -513,6 +508,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "ඔබගේ ගිණුම කල්ඉකුත් වී ඇත; කරුණාකර ඔබගේ පද්ධති කළමණාකරු හමුවන්න" diff --git a/po/sk.po b/po/sk.po index 01e13953..7e7c7612 100644 --- a/po/sk.po +++ b/po/sk.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-21 09:13+0200\n" "Last-Translator: Ondrej Šulek \n" "Language-Team: Slovak \n" @@ -166,19 +166,19 @@ msgid "Unknown PAM error" msgstr "Neznáme chyba PAM" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nové %s%sheslo: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Opakujte nové %s%sheslo: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Heslá sa nezhodujú." @@ -229,7 +229,7 @@ msgid "Password unchanged" msgstr "Heslo nebolo zmenené" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "NESPRÁVNE HESLO: %s" @@ -361,13 +361,13 @@ msgstr "Vytváranie priečinka '%s'." msgid "Unable to create directory %s: %m" msgstr "Nedá sa vytvoriť priečinok %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "Zmena hesla prerušená." -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Heslo už bolo použité. Vyberte iné." @@ -432,20 +432,20 @@ msgstr "chyba pam_set_item()\n" msgid "login: failure forking: %m" msgstr "login: chyba forku: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Zmena STRESS hesla pre %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Zadajte nové STRESS heslo: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Znovu zadajte nové STRESS heslo: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Chybné potvrdenie; heslo nezmenené" @@ -454,7 +454,7 @@ msgstr "Chybné potvrdenie; heslo nezmenené" msgid "Account temporary locked (%ld seconds left)" msgstr "Účet dočasne uzamknutý (zostáva %ld sekúnd)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "Účet uzamknutý z dôvodu %u neúspešných prihlásení" @@ -498,11 +498,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Nedá sa resetovať všetkých používateľov nenulovo\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "Účet uzamknutý z dôvodu %u neúspešných prihlásení" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -518,6 +513,11 @@ msgstr "" "%s: [--file meno_suboru] [--user pouzivatelske_meno] [--reset[=n]] [--" "quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" @@ -574,6 +574,10 @@ msgstr "Zadajte nové UNIX heslo: " msgid "Retype new UNIX password: " msgstr "Opakujte nové UNIX heslo: " +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "Účet uzamknutý z dôvodu %u neúspešných prihlásení" + #~ msgid "has been already used" #~ msgstr "už bolo použité" diff --git a/po/sr.po b/po/sr.po index 2696833a..10b664fb 100644 --- a/po/sr.po +++ b/po/sr.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-04-05 10:48+0100\n" "Last-Translator: Miloš Komarčević \n" "Language-Team: Serbian (sr) \n" @@ -171,19 +171,19 @@ msgid "Unknown PAM error" msgstr "Непозната PAM грешка" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Нова %s%sлозинка: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Поновите нову %s%sлозинку: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Извините, лозинке се не подударају." @@ -234,7 +234,7 @@ msgid "Password unchanged" msgstr "Лозинка непромењена" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "ЛОША ЛОЗИНКА: %s" @@ -358,14 +358,14 @@ msgstr "Правим директоријум „%s“." msgid "Unable to create directory %s: %m" msgstr "Не могу да направим директоријум %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Лозинка непромењена" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Лозинка је већ у употреби. Изаберите другу." @@ -430,20 +430,20 @@ msgstr "неуспешно покретање функције pam_set_item()\n" msgid "login: failure forking: %m" msgstr "пријава: грешка при гранању: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Промена STRESS лозинке за %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Унесите нову STRESS лозинку: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Поново унесите нову STRESS лозинку: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Провера неуспешна; лозинка непромењена" @@ -452,7 +452,7 @@ msgstr "Провера неуспешна; лозинка непромењена msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -496,11 +496,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: не могу да поништим све кориснике на не-нулту вредност\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -516,6 +511,11 @@ msgstr "" "%s: [--file коренски-називдатотеке] [--user корисничкоиме] [--reset[=n]] [--" "quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Ваш налог је истекао; молим контактирајте администратора система" diff --git a/po/sr@latin.po b/po/sr@latin.po index ff5743fe..117774fe 100644 --- a/po/sr@latin.po +++ b/po/sr@latin.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-04-05 10:48+0100\n" "Last-Translator: Miloš Komarčević \n" "Language-Team: Serbian (sr) \n" @@ -171,19 +171,19 @@ msgid "Unknown PAM error" msgstr "Nepoznata PAM greška" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nova %s%slozinka: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Ponovite novu %s%slozinku: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Izvinite, lozinke se ne podudaraju." @@ -234,7 +234,7 @@ msgid "Password unchanged" msgstr "Lozinka nepromenjena" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "LOŠA LOZINKA: %s" @@ -358,14 +358,14 @@ msgstr "Pravim direktorijum „%s“." msgid "Unable to create directory %s: %m" msgstr "Ne mogu da napravim direktorijum %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Lozinka nepromenjena" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Lozinka je već u upotrebi. Izaberite drugu." @@ -430,20 +430,20 @@ msgstr "neuspešno pokretanje funkcije pam_set_item()\n" msgid "login: failure forking: %m" msgstr "prijava: greška pri grananju: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "Promena STRESS lozinke za %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Unesite novu STRESS lozinku: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Ponovo unesite novu STRESS lozinku: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Provera neuspešna; lozinka nepromenjena" @@ -452,7 +452,7 @@ msgstr "Provera neuspešna; lozinka nepromenjena" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -496,11 +496,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: ne mogu da poništim sve korisnike na ne-nultu vrednost\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -516,6 +511,11 @@ msgstr "" "%s: [--file korenski-nazivdatoteke] [--user korisničkoime] [--reset[=n]] [--" "quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Vaš nalog je istekao; molim kontaktirajte administratora sistema" diff --git a/po/sv.po b/po/sv.po index f7b88bb7..be104909 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2007-12-24 13:39+0100\n" "Last-Translator: Christer Andersson \n" "Language-Team: Swedish \n" @@ -166,19 +166,19 @@ msgid "Unknown PAM error" msgstr "Oknt PAM-fel" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Nytt %s%slsenord: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Ange nytt %s%slsenord igen: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Ledsen, lsenorden stmmer inte verens." @@ -229,7 +229,7 @@ msgid "Password unchanged" msgstr "Ofrndrat lsenord" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "DLIGT LSENORD: %s" @@ -352,14 +352,14 @@ msgstr "Skapar katalogen \"%s\"." msgid "Unable to create directory %s: %m" msgstr "Kan inte skapa katalogen %s: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Ofrndrat lsenord" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Lsenordet har redan anvnds. Vlj ett annat." @@ -424,20 +424,20 @@ msgstr "pam_set_item() misslyckades\n" msgid "login: failure forking: %m" msgstr "inloggning: fel vid grening: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "ndrar STRESS-lsenord fr %s." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Ange nytt STRESS-lsenord: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Ange nytt STRESS-lsenord igen: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Felskriven verifikation, lsenord ofrndrat" @@ -446,7 +446,7 @@ msgstr "Felskriven verifikation, l msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -489,11 +489,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Kan inte stlla om alla anvndare till nollskilt vrde\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -508,6 +503,11 @@ msgid "" msgstr "" "%s: [--file absolut-filnamn] [--user anvndarnamn] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Ditt konto har gtt ut. Kontakta din systemadministratr" diff --git a/po/ta.po b/po/ta.po index eec8d21c..7deb035d 100644 --- a/po/ta.po +++ b/po/ta.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ta\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2007-06-21 15:33+0530\n" "Last-Translator: I felix \n" "Language-Team: Tamil \n" @@ -169,19 +169,19 @@ msgid "Unknown PAM error" msgstr "தெரியாத PAM பிழை" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "புதிய %s%spassword: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "புதிய %s%spassword மீண்டும் உள்ளிடவும்: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "கடவுச்சொல் பொருந்தவில்லை." @@ -232,7 +232,7 @@ msgid "Password unchanged" msgstr "கடவுச்சொல் மாற்றப்படவில்லை" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "தவறான கடவுச்சொல்: %s" @@ -355,14 +355,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "கடவுச்சொல் மாற்றப்படவில்லை" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "கடவுச்சொல் ஏற்கனவே பயன்படுத்தப்பட்டது. வேறொன்றை பயன்படுத்தவும்." @@ -431,20 +431,20 @@ msgstr "pam_set_item() செயலிழக்கப்பட்டது\n" msgid "login: failure forking: %m" msgstr "login: failure forking: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "STRESS கடவுச்சொல்லை மாற்றுகிறது" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "புதிய STRESS கடவுச்சொல்லை உள்ளிடவும்: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "புதிய STRESS கடவுச்சொல்லை மீண்டும் உள்ளிடவும்: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "உறுதிப்படுத்தல் முரண்பாடு; கடவுச்சொல் மாற்றப்படவில்லை" @@ -453,7 +453,7 @@ msgstr "உறுதிப்படுத்தல் முரண்பாட msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -496,11 +496,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: பூஜ்ஜியமில்லாததற்கு அனைத்து பயனர்களையும் மறு அமைக்க முடியவில்லை\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -515,6 +510,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "உங்கள் கணக்கு முடிவுற்றது, உங்கள் கணினி நிர்வாகியை அணுகவும்" diff --git a/po/te.po b/po/te.po index 1cfffc13..702a53fe 100644 --- a/po/te.po +++ b/po/te.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: te\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-22 16:24+0530\n" "Last-Translator: Krishna Babu K \n" "Language-Team: Telugu \n" @@ -170,19 +170,19 @@ msgid "Unknown PAM error" msgstr "తెలియని PAM దోషము" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "కొత్త %s%sసంకేతపదము: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "కొత్త %s%sసంకేతపదమును మరలాటైపుచేయుము: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "క్షమించాలి, సంకేతపదము సరిపోలలేదు." @@ -233,7 +233,7 @@ msgid "Password unchanged" msgstr "సంకేతపదము మార్చలేదు" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "చెడ్డ సంకేతపదము: %s" @@ -356,13 +356,13 @@ msgstr "డెరెక్టరీ '%s' సృష్టించుట." msgid "Unable to create directory %s: %m" msgstr "డైరెక్టరీ %sను సృష్టించలేక పోయింది: %m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "సంకేతపదము మార్పు తప్పించబడింది" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "సంకేతపదము యిప్పటికే వుపయోగించబడింది. మరియొకదానిని యెంచుకొనుము." @@ -427,20 +427,20 @@ msgstr "pam_set_item() విఫలమైంది\n" msgid "login: failure forking: %m" msgstr "login: failure forking: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "STRESS సంకేతపదమును %sకొరకు మార్చబడింది." -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "కొత్త STRESS సంకేతపదమును ప్రవేశపెట్టుము: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "కొత్త STRESS సంకేతపదమును తిరిగిటైపుచేయుము: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "తప్పుగా-చేసినటైపు నిర్ధారణ; సంకేతపదము మార్చబడలేదు" @@ -449,7 +449,7 @@ msgstr "తప్పుగా-చేసినటైపు నిర్ధార msgid "Account temporary locked (%ld seconds left)" msgstr "ఖాతా తాత్కాలికంగా లాక్‌చేయబడింది (%ld సెకనులు మిగిలినవి)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "%u లాగిన్‌ల వైఫల్యం కారణంగా ఖాతా లాక్అయింది" @@ -492,11 +492,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: వినియోగదారులనందరిని సున్నా-కానిదానికి తిరిగివుంచలేము\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "%u లాగిన్‌ల వైఫల్యం కారణంగా ఖాతా లాక్అయింది" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -511,6 +506,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "మీ ఖాతా కాలముతీరినది; దయచేసి మీ సిస్టమ్ నిర్వాహకుడిని సంప్రదించండి" @@ -564,3 +564,7 @@ msgstr "కొత్త UNIX సంకేతపదమును ప్రవే #: modules/pam_unix/pam_unix_passwd.c:678 msgid "Retype new UNIX password: " msgstr "కొత్త UNIX సంకేతపదమును తిరిగిటైపు చేయుము: " + +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "%u లాగిన్‌ల వైఫల్యం కారణంగా ఖాతా లాక్అయింది" diff --git a/po/tr.po b/po/tr.po index df141f73..9ad9187f 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2006-05-03 19:00+0200\n" "Last-Translator: Koray Löker \n" "Language-Team: Türkçe \n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "Bilinmeyen PAM hatası" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Yeni %s%sparolası: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Yeni %s%sparolasını tekrar girin: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Üzgünüm, parolalar birbirine uymuyor." @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "Parola değiştirilmedi" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "YANLIŞ PAROLA: %s" @@ -352,14 +352,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Parola değiştirilmedi" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Parola kullanımda. Lütfen başka bir parola seçin." @@ -428,20 +428,20 @@ msgstr "pam_set_item() çalıştırılamadı\n" msgid "login: failure forking: %m" msgstr "giriş: çatallama yapılamadı: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "STRESS parolası değiştiriliyor " -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Yeni STRESS parolası girin: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Yeni STRESS parolasını tekrar girin: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Doğrulama hatalı: parola değiştirilmedi" @@ -450,7 +450,7 @@ msgstr "Doğrulama hatalı: parola değiştirilmedi" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -493,11 +493,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -512,6 +507,11 @@ msgid "" msgstr "" "%s: [--file DosyanınTamYolu] [--user KullanıcıAdı] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "Hesabınızın süresi doldu; lütfen sistem yöneticinizle bağlantıya geçin" diff --git a/po/uk.po b/po/uk.po index 67525024..e258e6ae 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.uk\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2006-05-03 18:59+0200\n" "Last-Translator: Ivan Petrouchtchak \n" "Language-Team: Ukrainian \n" @@ -168,19 +168,19 @@ msgid "Unknown PAM error" msgstr "Невідома помилка PAM" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "Новий пароль %s%s:" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Повторіть новий пароль %s%s: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Ваші нові паролі не співпадають." @@ -231,7 +231,7 @@ msgid "Password unchanged" msgstr "Пароль не змінено" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "ПОГАНИЙ ПАРОЛЬ: %s" @@ -355,14 +355,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Пароль не змінено" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Пароль вже вживається. Виберіть інший." @@ -431,20 +431,20 @@ msgstr "помилка pam_set_item()\n" msgid "login: failure forking: %m" msgstr "вхід: помилка розгалуження: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "Зміна пароля STRESS для " -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Введіть новий пароль STRESS: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Повторіть новий пароль STRESS: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Перевірку не пройдено; пароль не змінено" @@ -453,7 +453,7 @@ msgstr "Перевірку не пройдено; пароль не змінен msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -497,11 +497,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: Не вдається скинути всіх користувачів до не-нуль\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -517,6 +512,11 @@ msgstr "" "%s: [--file rooted-filename] [--user ім'я користувача] [--reset[=n]] [--" "quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index 4d251989..32e41700 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-20 15:43+1000\n" "Last-Translator: Leah Liu \n" "Language-Team: Simplified Chinese \n" @@ -169,19 +169,19 @@ msgid "Unknown PAM error" msgstr "未知的 PAM 错误" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "新的 %s%s密码:" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "重新输入新的 %s%s密码:" #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "抱歉,密码不匹配。" @@ -232,7 +232,7 @@ msgid "Password unchanged" msgstr "密码未更改" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "无效的密码: %s" @@ -354,13 +354,13 @@ msgstr "创建目录 '%s'。" msgid "Unable to create directory %s: %m" msgstr "无法创建目录 %s:%m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 msgid "Password change aborted." msgstr "密码更改取消。" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "密码已使用。请选择其他密码。" @@ -425,20 +425,20 @@ msgstr "未能 pam_set_item()\n" msgid "login: failure forking: %m" msgstr "登录:故障派生:%m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "为 %s 更改 STRESS 密码。" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "输入新的 STRESS 密码:" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "重新输入新的 STRESS 密码:" -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "校验类型错误;密码未更改" @@ -447,7 +447,7 @@ msgstr "校验类型错误;密码未更改" msgid "Account temporary locked (%ld seconds left)" msgstr "帐户暂时锁住(还有 %ld 秒)" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "因为 %u 失败登录而锁定帐户" @@ -489,11 +489,6 @@ msgstr "%s: [--文件 根文件名] [--用户 用户名] [--重设置[=n]] [-- msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: 无法将所有用户重设置为非零\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, fuzzy, c-format -msgid "Account locked due to %hu failed logins" -msgstr "因为 %u 失败登录而锁定帐户" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -507,6 +502,11 @@ msgid "" " [-r] [--reset[=n]] [--quiet]\n" msgstr "%s: [--文件 根文件名] [--用户 用户名] [--重设置[=n]] [--安静]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "您的帐户已失效;请与系统管理员取得联系" @@ -559,3 +559,7 @@ msgstr "输入新的 UNIX 密码:" #: modules/pam_unix/pam_unix_passwd.c:678 msgid "Retype new UNIX password: " msgstr "重新输入新的 UNIX 密码:" + +#, fuzzy +#~ msgid "Account locked due to %hu failed logins" +#~ msgstr "因为 %u 失败登录而锁定帐户" diff --git a/po/zh_TW.po b/po/zh_TW.po index a712bb58..d1682ebe 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM.tip\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2008-10-21 15:51+1000\n" "Last-Translator: Terry Chuang \n" "Language-Team: \n" @@ -167,19 +167,19 @@ msgid "Unknown PAM error" msgstr "未知的 PAM 錯誤" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "新 %s%s密碼:" #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "再次輸入新的 %s%s密碼:" #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "抱歉,密碼不符合。" @@ -230,7 +230,7 @@ msgid "Password unchanged" msgstr "密碼未變更" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "不良的密碼: %s" @@ -353,14 +353,14 @@ msgstr "建立目錄「%s」。" msgid "Unable to create directory %s: %m" msgstr "無法建立 %s 目錄:%m" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "密碼未變更" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "密碼已經由其他使用者使用。請選擇其他密碼。" @@ -425,20 +425,20 @@ msgstr "pam_set_item() 失敗\n" msgid "login: failure forking: %m" msgstr "登入:失敗的分叉:%m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, c-format msgid "Changing STRESS password for %s." msgstr "正在更改 %s 的 STRESS 密碼。" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "輸入新的 STRESS 密碼:" -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "再次輸入新的 STRESS 密碼:" -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "確認錯誤輸入;密碼未變更" @@ -447,7 +447,7 @@ msgstr "確認錯誤輸入;密碼未變更" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -490,11 +490,6 @@ msgstr "" msgid "%s: Can't reset all users to non-zero\n" msgstr "%s: 無法將所有使用者重新設定為非零\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -509,6 +504,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "您的帳戶已經逾期,請洽詢您的系統管理員" diff --git a/po/zu.po b/po/zu.po index a9c0afc1..195b8939 100644 --- a/po/zu.po +++ b/po/zu.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Linux-PAM\n" "Report-Msgid-Bugs-To: http://sourceforge.net/projects/pam\n" -"POT-Creation-Date: 2008-10-22 20:01+0200\n" +"POT-Creation-Date: 2008-11-28 15:16+0100\n" "PO-Revision-Date: 2006-11-03 12:03\n" "Last-Translator: Novell Language \n" "Language-Team: Novell Language \n" @@ -163,19 +163,19 @@ msgid "Unknown PAM error" msgstr "Iphutha le-PAM elingaziwa" #: modules/pam_cracklib/pam_cracklib.c:64 -#: modules/pam_pwhistory/pam_pwhistory.c:61 +#: modules/pam_pwhistory/pam_pwhistory.c:62 #, c-format msgid "New %s%spassword: " msgstr "%s%siphasiwedi entsha: " #: modules/pam_cracklib/pam_cracklib.c:66 -#: modules/pam_pwhistory/pam_pwhistory.c:62 +#: modules/pam_pwhistory/pam_pwhistory.c:64 #, c-format msgid "Retype new %s%spassword: " msgstr "Thayipha kabusha %s%siphasiwedi entsha: " #: modules/pam_cracklib/pam_cracklib.c:67 -#: modules/pam_pwhistory/pam_pwhistory.c:63 +#: modules/pam_pwhistory/pam_pwhistory.c:65 msgid "Sorry, passwords do not match." msgstr "Uxolo, amaphasiwedi awahambelani." @@ -226,7 +226,7 @@ msgid "Password unchanged" msgstr "Iphasiwedi ayishintshwanga" #: modules/pam_cracklib/pam_cracklib.c:584 -#: modules/pam_cracklib/pam_cracklib.c:709 +#: modules/pam_cracklib/pam_cracklib.c:710 #, c-format msgid "BAD PASSWORD: %s" msgstr "IPHASIWEDI ENGASEBENZI: %s" @@ -349,14 +349,14 @@ msgstr "" msgid "Unable to create directory %s: %m" msgstr "" -#: modules/pam_pwhistory/pam_pwhistory.c:224 -#: modules/pam_pwhistory/pam_pwhistory.c:258 +#: modules/pam_pwhistory/pam_pwhistory.c:231 +#: modules/pam_pwhistory/pam_pwhistory.c:267 #, fuzzy msgid "Password change aborted." msgstr "Iphasiwedi ayishintshwanga" -#: modules/pam_pwhistory/pam_pwhistory.c:235 -#: modules/pam_pwhistory/pam_pwhistory.c:295 +#: modules/pam_pwhistory/pam_pwhistory.c:242 +#: modules/pam_pwhistory/pam_pwhistory.c:304 #: modules/pam_unix/pam_unix_passwd.c:470 msgid "Password has been already used. Choose another." msgstr "Le phasiwedi isetshenziswa ngothile. Khetha enye." @@ -425,20 +425,20 @@ msgstr "Ihlulekile ukwenza i-pam_set_item()\n" msgid "login: failure forking: %m" msgstr "ngena: Ihlulekile ukuhlukanisa: %m" -#: modules/pam_stress/pam_stress.c:476 +#: modules/pam_stress/pam_stress.c:475 #, fuzzy, c-format msgid "Changing STRESS password for %s." msgstr "Ukushintsha iphasiwedi ye-STRESS ye-" -#: modules/pam_stress/pam_stress.c:490 +#: modules/pam_stress/pam_stress.c:489 msgid "Enter new STRESS password: " msgstr "Faka iphasiwedi entsha ye-STRESS: " -#: modules/pam_stress/pam_stress.c:493 +#: modules/pam_stress/pam_stress.c:492 msgid "Retype new STRESS password: " msgstr "Thayipha iphasiwedi entsha ye-STRESS: " -#: modules/pam_stress/pam_stress.c:522 +#: modules/pam_stress/pam_stress.c:521 msgid "Verification mis-typed; password unchanged" msgstr "Ukufakazela akuthayiphiwanga kahle; iphasiwedi ayishintshwanga" @@ -447,7 +447,7 @@ msgstr "Ukufakazela akuthayiphiwanga kahle; iphasiwedi ayishintshwanga" msgid "Account temporary locked (%ld seconds left)" msgstr "" -#: modules/pam_tally/pam_tally.c:566 +#: modules/pam_tally/pam_tally.c:566 modules/pam_tally2/pam_tally2.c:520 #, c-format msgid "Account locked due to %u failed logins" msgstr "" @@ -492,11 +492,6 @@ msgstr "" "%s: Ayikwazi ukusetha kabusha bonke abasebenzisi ibase enombolweni ongelona " "iqanda\n" -#: modules/pam_tally2/pam_tally2.c:520 -#, c-format -msgid "Account locked due to %hu failed logins" -msgstr "" - #: modules/pam_tally2/pam_tally2.c:865 #, c-format msgid "Login Failures Latest failure From\n" @@ -511,6 +506,11 @@ msgid "" msgstr "" "%s: [--file rooted-filename] [--user username] [--reset[=n]] [--quiet]\n" +#: modules/pam_timestamp/pam_timestamp.c:339 +#, c-format +msgid "Access granted (last access was %ld seconds ago)." +msgstr "" + #: modules/pam_unix/pam_unix_acct.c:228 modules/pam_unix/pam_unix_acct.c:250 msgid "Your account has expired; please contact your system administrator" msgstr "" -- cgit v1.2.3